BCD29008 Banco de Dados

Tamanho: px
Começar a partir da página:

Download "BCD29008 Banco de Dados"

Transcrição

1 BCD29008 Banco de Dados Consulta sobre múltiplas relações Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José 11 de setembro de /40

2 MySQL Funções para manipulação de datas 2/40

3 MySQL: Tipos de dados para data e hora Tipo Descrição DATE Para valores que só possuem data faixa: até DATETIME Para valores que possuem data e hora faixa: :00:00 até :59:59 TIMESTAMP Para valores que possuem data e hora faixa: :00:01 UTC até :14:07 UTC Funções do MySQL para manipular data e hora 2/40

4 MySQL: Funções DATE FORMAT e TIME FORMAT Máscara Descrição Exemplo %m mês 01,..., 12 %c mês 1,..., 12 %M mês por extenso janeiro,..., dezembro %d dia do mês 01,..., 31 %e dia do mês 1,..., 31 %Y ano - 4 dígitos 2012, 2013,... %y ano - 2 dígitos 12, 13,... %h hora - 12h 01,..., 12 %H hora - 24h 00,..., 23 %i minuto 0,..., 59 %s segundo 0,..., 59 %W dia da semana domingo,..., sábado mysql> -- verificando atual localizaç~ao mysql> set lc_time_names = 'pt_br'; -- definindo localizaç~ao para pt_br mysql> charset utf8; -- definindo codificaç~ao para utf8 3/40

5 MySQL: Funções DATE FORMAT e TIME FORMAT SELECT DATE_FORMAT(' ', '%e %M %Y'); março 2017 SELECT DATE_FORMAT(' ', '%d/%m/%y'); -- 29/03/2017 SELECT TIME_FORMAT('15:40:00', '%Hh %im %ss'); -- 15h 40m 00s SELECT CURRENT_DATE(); SELECT CURRENT_TIME(); -- 15:40:00 SELECT NOW(); :40:00 SELECT DATEDIFF(CURRENT_DATE(), ' '); -- valor em dias 4/40

6 MySQL: Funções DATE ADD e DATE SUB dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function date-add Funções para realização de operações aritméticas com datas (soma e subtração) DATE_ADD( data, INTERVAL expr unidade) ou DATE_SUB(...) -- unidades: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR Exemplos SELECT DATE_ADD(' :40', INTERVAL 2 HOUR); :40:00 SELECT DATE_SUB(' :40', INTERVAL 1 YEAR); SELECT DATE_ADD(' :40:00', INTERVAL '1 2' DAY_HOUR); :40:00 SELECT Nome FROM Aluno WHERE CURRENT_DATE() > (DATE_ADD(DIngresso, INTERVAL 9 YEAR)); 5/40

7 Operações com conjuntos Operador UNION (SELECT... ) UNION (SELECT...) Operador INTERSECT (MySQL não possui esse operador) (SELECT... ) INTERSECT (SELECT...) Operador EXCEPT (MySQL não possui esse operador) (SELECT... ) EXCEPT (SELECT...) Cada consulta deverá possuir o mesmo número de colunas e devem seguir a mesma ordem. Ex: (... nome, cidade... ) UNION (... nome, cidade... ) 6/40

8 Esquema usado nos próximos exemplos 7/40

9 Operações com conjuntos Listar o ID de todos os clientes que possuam um empréstimo, uma conta ou ambos Listar o ID de todos os clientes que são correntistas e que possuam um empréstimo Listar o ID de todos os clientes que são correntistas e que não possuam um empréstimo 8/40

10 Operações com conjuntos Listar o ID de todos os clientes que possuam um empréstimo, uma conta ou ambos (SELECT idpessoa FROM Correntista) UNION (SELECT idpessoa FROM Mutuario) Listar o ID de todos os clientes que são correntistas e que possuam um empréstimo Listar o ID de todos os clientes que são correntistas e que não possuam um empréstimo 8/40

11 Operações com conjuntos Listar o ID de todos os clientes que possuam um empréstimo, uma conta ou ambos (SELECT idpessoa FROM Correntista) UNION (SELECT idpessoa FROM Mutuario) Listar o ID de todos os clientes que são correntistas e que possuam um empréstimo (SELECT idpessoa FROM Correntista) INTERSECT (SELECT idpessoa FROM Mutuario) Listar o ID de todos os clientes que são correntistas e que não possuam um empréstimo 8/40

12 Operações com conjuntos Listar o ID de todos os clientes que possuam um empréstimo, uma conta ou ambos (SELECT idpessoa FROM Correntista) UNION (SELECT idpessoa FROM Mutuario) Listar o ID de todos os clientes que são correntistas e que possuam um empréstimo (SELECT idpessoa FROM Correntista) INTERSECT (SELECT idpessoa FROM Mutuario) Listar o ID de todos os clientes que são correntistas e que não possuam um empréstimo (SELECT idpessoa FROM Correntista) EXCEPT (SELECT idpessoa FROM Mutuario) 8/40

13 Operações com conjuntos O comportamento padrão do operador UNION é de remover tuplas duplicadas da relação resultante Operador ALL permite tuplas duplicadas na relação resultante (SELECT idpessoa FROM Correntista) UNION ALL (SELECT idpessoa FROM Mutuario) Operador IN permite verificar se o valor de um atributo está contido em um conjunto SELECT idagencia, nome FROM Agencia WHERE cidade IN ('S~ao José', 'Florianópolis'); Poderia ser usado para ter o comportamento o INTERSECT. (veja subconsultas aninhadas) Operador EXISTS poderia ser usado para ter o comportamento do EXCEPT 9/40

14 Valores nullos (NULL) Valor do atributo é desconhecido ou ainda não existe Listar os empréstimos que tenham nulo no atributo valor SELECT idemprestimo FROM Emprestimo WHERE valor IS NULL Resultado de operações aritméticas com nulo sempre será nulo SELECT 5 + NULL; -- retorna NULL Operações de agregação (i.e. SUM, COUNT) ignoram nulos Com exceção do COUNT(*) -- total de linhas cujo valor no atributo cidade n~ao seja NULO SELECT COUNT(cidade) FROM Agencia; -- total de linhas da relaç~ao SELECT COUNT(*) FROM Agencia; 10/40

15 Valores nullos (NULL) Operadores lógicos Qualquer comparação com valores nulos sempre resultará em nulo SELECT (123 < NULL); SELECT (NULL = NULL); SELECT (NULL <> NULL); Operador lógico OR SELECT (NULL OR TRUE); -- TRUE SELECT (NULL OR FALSE); -- NULL SELECT (NULL OR NULL); -- NULL Operador lógico AND SELECT (NULL AND TRUE); -- NULL SELECT (NULL AND FALSE); -- FALSE SELECT (NULL AND NULL); -- NULL Operador lógico NOT SELECT (NOT NULL); -- NULL 11/40

16 Esquema usado nos próximos exemplos 12/40

17 Consulta sobre múltiplas relações idfuncionario Nome Sobrenome iddepartamento Julio Silva Jo~ao Silveira George de la Rocha José Oliveira iddepartamento Nome Orcamento Financeiro TI Gest~ao de Pessoas Como obter o nome e sobrenome de todos os funcionários, juntamente com os nomes dos departamentos onde estão lotados? 13/40

18 Consulta sobre múltiplas relações Selecionando colunas de mais de uma relação (Produto cartesiano) SELECT Nome, Sobrenome, dnome FROM Funcionario, Departamento; Nome Sobrenome dnome Julio Silva Financeiro Julio Silva TI Julio Silva Gest~ao de Pessoas Arnaldo Coelho Financeiro... for each tupla t 1 in relaç~ao r 1 for each tupla t 2 in relaç~ao r 2... for each tupla t m in relaç~ao r m Concatene t 1, t 2,..., t m em uma única tupla t Adicione t à relaç~ao resultante 14/40

19 Condições de junção: NATURAL JOIN SELECT Nome, Sobrenome, dnome FROM Funcionario NATURAL JOIN Departamento; Nome Sobrenome dnome Julio Silva Financeiro Arnaldo Coelho Financeiro George de la Rocha Gest~ao de Pessoas... Requer uma coluna com nome comum em todas as relações No exemplo, as relações Funcionário e Departamento possuem uma coluna chamada iddepartamento Combina todas as tuplas que possuem valores iguais na coluna de nome comum 15/40

20 Condições de junção: INNER JOIN (ou simplesmente JOIN) Retorna registros que possuam valores correspondentes em ambas tabelas SELECT colunas FROM tabela1 INNER JOIN tabela2 ON tabela.colunaa = tabela.colunab; -- Exemplo SELECT f.nome, d.dnome FROM Funcionario f INNER JOIN Departamento d ON f.iddepartamento = d.iddepartamento 16/40

21 Condições de junção: INNER JOIN Retorna a coluna iddepartamento uma única vez SELECT * FROM Funcionario NATURAL JOIN Departamento; Retorna a coluna iddepartamento duas vezes, uma de cada relação SELECT * FROM Funcionario f INNER JOIN Departamento d ON f.iddepartamento = d.iddepartamento Semelhante ao INNER JOIN, retorna a coluna iddepartamento duas vezes SELECT * FROM Funcionario, Departamento WHERE Funcionario.idDepartamento = Departamento.idDepartamento; 17/40

22 Usar ON ou WHERE nas consultas com múltiplas relações? Em junções internas, pode-se usar a condição ON ou WHERE Na cláusula FROM, a vírgula (,) seria equivalente ao JOIN SELECT f.nome, d.dnome FROM Funcionario f, Departamento d WHERE f.iddepartamento = d.iddepartamento; SELECT f.nome, d.dnome FROM Funcionario f JOIN Departamento d ON f.iddepartamento = d.iddepartamento 18/40

23 Usar ON ou WHERE nas consultas com múltiplas relações? Em junções internas, pode-se usar a condição ON ou WHERE Na cláusula FROM, a vírgula (,) seria equivalente ao JOIN SELECT f.nome, d.dnome FROM Funcionario f, Departamento d WHERE f.iddepartamento = d.iddepartamento; SELECT f.nome, d.dnome FROM Funcionario f JOIN Departamento d ON f.iddepartamento = d.iddepartamento Contudo, a consulta SQL pode ser mais legível se usar ON como condição de junção e as demais condições na cláusula WHERE SELECT f.nome, d.dnome FROM Funcionario f JOIN Departamento d ON f.iddepartamento = d.iddepartamento WHERE Orcamento > 13500; Como reescrever a instrução acima usando somente WHERE? 18/40

24 Usar ON ou WHERE nas consultas com múltiplas relações? Em junções internas, pode-se usar a condição ON ou WHERE Na cláusula FROM, a vírgula (,) seria equivalente ao JOIN SELECT f.nome, d.dnome FROM Funcionario f, Departamento d WHERE f.iddepartamento = d.iddepartamento; SELECT f.nome, d.dnome FROM Funcionario f JOIN Departamento d ON f.iddepartamento = d.iddepartamento Contudo, a consulta SQL pode ser mais legível se usar ON como condição de junção e as demais condições na cláusula WHERE SELECT f.nome, d.dnome FROM Funcionario f JOIN Departamento d ON f.iddepartamento = d.iddepartamento WHERE Orcamento > 13500; Em junções externas, condições ON se comportam de maneira diferente das condições com WHERE 18/40

25 Junções externas (outer join) Com a junção natural não serão exibidas todas as duplas de Departamento que não tiverem um Funcionário associado SELECT * FROM Departamento NATURAL JOIN Funcionario; 19/40

26 Junções externas (outer join) Com a junção natural não serão exibidas todas as duplas de Departamento que não tiverem um Funcionário associado SELECT * FROM Departamento NATURAL JOIN Funcionario; Junções externas Preserva as tuplas que seriam perdidas em um junção, criando na relação resultante tuplas que contêm valores nulos 19/40

27 Junções externas (outer join) Com a junção natural não serão exibidas todas as duplas de Departamento que não tiverem um Funcionário associado SELECT * FROM Departamento NATURAL JOIN Funcionario; Junções externas Preserva as tuplas que seriam perdidas em um junção, criando na relação resultante tuplas que contêm valores nulos Left outer join preserva somente as tuplas da relação à esquerda Right outer join preserva somente as tuplas da relação à direita Full outer join preserva as tuplas das duas relações 19/40

28 Condições de junção: LEFT JOIN Retorna todas as tuplas da relação à esquerda, mesmo aquelas que não possuam correspondentes na tabela à direita SELECT colunas FROM tabela1 LEFT JOIN tabela2 ON tabela.colunaa = tabela.colunab; -- Exemplo SELECT * FROM Departamento d LEFT JOIN Funcionario f ON d.iddepartamento = f.iddepartamento; SELECT * FROM Departamento NATURAL LEFT JOIN Funcionario; 20/40

29 Condições de junção: RIGHT JOIN Retorna todas as tuplas da relação à direita, mesmo aquelas que não possuam correspondentes na tabela à esquerda SELECT colunas FROM tabela1 RIGHT JOIN tabela2 ON tabela.colunaa = tabela.colunab; -- Exemplo SELECT * FROM Departamento d RIGHT JOIN Funcionario f ON d.iddepartamento = f.iddepartamento; SELECT * FROM Departamento NATURAL RIGHT OUTER JOIN Funcionario; 21/40

30 Condições de junção: FULL OUTER JOIN Retorna todas as tuplas de ambas tabelas, mesmo se não houver correspondência de valores SELECT colunas FROM tabela1 FULL OUTER JOIN tabela2 ON tabela.colunaa = tabela.colunab; -- Exemplo SELECT * FROM Departamento d NATURAL FULL OUTER JOIN Funcionario f; MySQL não implementa FULL JOIN 22/40

31 Exercícios 23/40

32 Relações do lab02: Funcionário e Departamento 1 Liste todos os dados de todos os funcionários, inclusive todos os dados de seus departamentos 2 Liste o nome do funcionário e o nome do departamento onde cada funcionário está lotado 3 Liste o nome e sobrenome de todos os funcionários que estejam lotados em departamentos com orçamento maior que , 00 4 Liste os nomes de todos os departamentos que possuam mais de dois funcionários 23/40

33 Relações do lab02: Funcionário e Departamento 1 Liste todos os dados de todos os funcionários, inclusive todos os dados de seus departamentos SELECT F.*, D.* FROM Funcionario F INNER JOIN Departamento D ON F.idDepartamento = D.idDepartamento; 2 Liste o nome do funcionário e o nome do departamento onde cada funcionário está lotado 3 Liste o nome e sobrenome de todos os funcionários que estejam lotados em departamentos com orçamento maior que , 00 4 Liste os nomes de todos os departamentos que possuam mais de dois funcionários 23/40

34 Relações do lab02: Funcionário e Departamento 1 Liste todos os dados de todos os funcionários, inclusive todos os dados de seus departamentos 2 Liste o nome do funcionário e o nome do departamento onde cada funcionário está lotado SELECT F.Nome, D.dNome FROM Funcionario F INNER JOIN Departamento D ON F.idDepartamento = D.idDepartamento; 3 Liste o nome e sobrenome de todos os funcionários que estejam lotados em departamentos com orçamento maior que , 00 4 Liste os nomes de todos os departamentos que possuam mais de dois funcionários 23/40

35 Relações do lab02: Funcionário e Departamento 1 Liste todos os dados de todos os funcionários, inclusive todos os dados de seus departamentos 2 Liste o nome do funcionário e o nome do departamento onde cada funcionário está lotado 3 Liste o nome e sobrenome de todos os funcionários que estejam lotados em departamentos com orçamento maior que , 00 SELECT F.Nome, F.Sobrenome FROM Funcionario F INNER JOIN Departamento D ON F.idDepartamento = D.idDepartamento WHERE D.Orcamento > 60000; 4 Liste os nomes de todos os departamentos que possuam mais de dois funcionários 23/40

36 Relações do lab02: Funcionário e Departamento 1 Liste todos os dados de todos os funcionários, inclusive todos os dados de seus departamentos 2 Liste o nome do funcionário e o nome do departamento onde cada funcionário está lotado 3 Liste o nome e sobrenome de todos os funcionários que estejam lotados em departamentos com orçamento maior que , 00 4 Liste os nomes de todos os departamentos que possuam mais de dois funcionários SELECT D.dNome FROM Funcionario F INNER JOIN Departamento D ON D.idDepartamento = F.idDepartamento GROUP BY D.dNome HAVING COUNT(*) > 2; 23/40

37 Subconsultas aninhadas 24/40

38 Subconsultas aninhadas Trata-se de de uma consulta aninhada a uma instrução SELECT, INSERT, UPDATE ou DELETE A tupla resultante é então usada pela instrução onde essa está aninhada Geralmente é usada em operações com conjuntos Para verificar se uma tupla pertence ao conjunto, para comparar conjuntos e verificar a cardinalidade de conjuntos 24/40

39 Subconsultas aninhadas Trata-se de de uma consulta aninhada a uma instrução SELECT, INSERT, UPDATE ou DELETE A tupla resultante é então usada pela instrução onde essa está aninhada Geralmente é usada em operações com conjuntos Para verificar se uma tupla pertence ao conjunto, para comparar conjuntos e verificar a cardinalidade de conjuntos Listar o nome e orçamento do departamento que possui o maior orçamento SELECT Nome, Orcamento FROM Departamento WHERE Orcamento = (SELECT MAX(Orcamento) FROM Departamento); 24/40

40 Subconsultas aninhadas Aluno(idAluno, nome, codigocurso) Curso(idCurso, cnome) Na tabela Aluno, atualizar todas tuplas com valor = 2 no atributo codigocurso para o código que está associado ao curso chamado Engenharia de Telecomunicações na tabela Curso UPDATE Aluno SET codigocurso = (SELECT idcurso FROM Curso WHERE cnome = 'Engenharia de Telecomunicaç~oes') WHERE codigocurso = 2; 25/40

41 Subconsultas Diferentes consultas SQL podem apresentar o mesmo resultado Liste o nome de todos os funcionários de todos os departamentos que possuam orçamento maior que Fazendo uso de INNER JOIN Fazendo uso de subconsultas (operador IN) 26/40

42 Subconsultas Diferentes consultas SQL podem apresentar o mesmo resultado Liste o nome de todos os funcionários de todos os departamentos que possuam orçamento maior que Fazendo uso de INNER JOIN SELECT f.nome FROM Funcionario f INNER JOIN Departamento d ON f.iddepartamento = d.departamento WHERE d.orcamento > 5000; Fazendo uso de subconsultas (operador IN) 26/40

43 Subconsultas Diferentes consultas SQL podem apresentar o mesmo resultado Liste o nome de todos os funcionários de todos os departamentos que possuam orçamento maior que Fazendo uso de INNER JOIN SELECT f.nome FROM Funcionario f INNER JOIN Departamento d ON f.iddepartamento = d.departamento WHERE d.orcamento > 5000; Fazendo uso de subconsultas (operador IN) SELECT Nome FROM Funcionario WHERE iddepartamento IN (SELECT iddepartamento FROM Departamento WHERE Orcamento > 5000); 26/40

44 Esquema usado nos próximos exemplos 27/40

45 Subconsultas Exemplos com operador IN Listar o ID de todos os clientes que possuam uma conta e um empréstimo Listar o ID de todos os clientes que possuam um empréstimo, mas que não possuam uma conta 28/40

46 Subconsultas Exemplos com operador IN Listar o ID de todos os clientes que possuam uma conta e um empréstimo SELECT DISTINCT idpessoa FROM Mutuario WHERE idpessoa IN (SELECT idpessoa FROM Correntista) Listar o ID de todos os clientes que possuam um empréstimo, mas que não possuam uma conta 28/40

47 Subconsultas Exemplos com operador IN Listar o ID de todos os clientes que possuam uma conta e um empréstimo SELECT DISTINCT idpessoa FROM Mutuario WHERE idpessoa IN (SELECT idpessoa FROM Correntista) Listar o ID de todos os clientes que possuam um empréstimo, mas que não possuam uma conta SELECT DISTINCT idpessoa FROM Mutuario WHERE idpessoa NOT IN (SELECT idpessoa FROM Correntista) 28/40

48 Subconsultas Exercícios com operador IN Liste o CPF dos presidentes das empresas que fabricam produtos nos estados de SP e SC Produto(idProduto, idempresa, uffabrica) Empresa(idEmpresa, cpfpresidente) 29/40

49 Subconsultas Exercícios com operador IN Liste o CPF dos presidentes das empresas que fabricam produtos nos estados de SP e SC Produto(idProduto, idempresa, uffabrica) Empresa(idEmpresa, cpfpresidente) SELECT DISTINCT cpfpresidente FROM Empresa e, Produto p WHERE e.idempresa = p.idempresa AND e.idempresa IN (SELECT idempresa FROM Produto WHERE UFFabrica = 'SP') AND e.idempresa IN (SELECT idempresa FROM Produto WHERE UFFabrica = 'SC') 29/40

50 Subconsultas Exercícios com operador IN Liste o nome de todas as disciplinas ministradas no segundo semestre de 2014 e no primeiro semestre de 2017 Disciplina(nome, ano, semestre) 30/40

51 Subconsultas Exercícios com operador IN Liste o nome de todas as disciplinas ministradas no segundo semestre de 2014 e no primeiro semestre de 2017 Disciplina(nome, ano, semestre) SELECT DISTINCT nome FROM Disciplina WHERE semestre = 2 AND ano = 2014 AND nome IN (SELECT nome FROM Disciplina WHERE semestre = 1 AND ano = 2017) 30/40

52 Subconsultas Exemplo com cláusula FROM Soma dos valores médios de empréstimos realizados por cada agência 31/40

53 Subconsultas Exemplo com cláusula FROM Soma dos valores médios de empréstimos realizados por cada agência -- Obtendo o valor médio agrupado por ag^encia SELECT AVG(valor) AS valormedio FROM Emprestimo GROUP BY idagencia; avg(valor) /40

54 Subconsultas Exemplo com cláusula FROM Soma dos valores médios de empréstimos realizados por cada agência -- Obtendo o valor médio agrupado por ag^encia SELECT AVG(valor) AS valormedio FROM Emprestimo GROUP BY idagencia; avg(valor) SELECT SUM(AVG(valor)) AS valormedio FROM Emprestimo GROUP BY idagencia; -- instruç~ao inválida! 31/40

55 Subconsultas Exemplo com cláusula FROM Soma dos valores médios de empréstimos realizados por cada agência -- Obtendo o valor médio agrupado por ag^encia SELECT AVG(valor) AS valormedio FROM Emprestimo GROUP BY idagencia; avg(valor) SELECT SUM(AVG(valor)) AS valormedio FROM Emprestimo GROUP BY idagencia; -- instruç~ao inválida! SELECT SUM(valorMedio) FROM (SELECT AVG(valor) AS valormedio FROM Emprestimo GROUP BY idagencia) AS Resultado; 31/40

56 Subconsultas Operações com conjuntos Pelo menos um (SOME) > some, < some, >= some, <= some, = some, <> some Que todos (ALL) > all, < all, >= all, <= all, = all, <> all 32/40

57 Subconsultas Operações com conjuntos Pelo menos um (SOME) > some, < some, >= some, <= some, = some, <> some Que todos (ALL) > all, < all, >= all, <= all, = all, <> all Listar nome, cargo e salário dos funcionários cujo salário seja maior que o salário de pelo menos um Analista Funcionario(idFuncionario, nome, cargo, salario) -- SELECT nome, cargo, salário FROM Funcionario WHERE salario > SOME (SELECT salario FROM Funcionario WHERE cargo = 'Analista'); 32/40

58 Subconsultas Operações com conjuntos Pelo menos um (SOME) > some, < some, >= some, <= some, = some, <> some Que todos (ALL) > all, < all, >= all, <= all, = all, <> all Listar nome, cargo e salário dos funcionários cujo salário seja maior do que o salário de todos os Analistas Funcionario(idFuncionario, nome, cargo, salario) -- SELECT nome, cargo, salário FROM Funcionario WHERE salario > ALL (SELECT salario FROM Funcionario WHERE cargo = 'Analista'); 32/40

59 Subconsultas Operações com conjuntos: cláusula SOME (5 < SOME) = 5 < que alguma tupla na relação? TRUE! (5 < SOME) = FALSE! (5 = SOME) = TRUE! (5 <> SOME) = TRUE!, pois /40

60 Subconsultas Operações com conjuntos: cláusula SOME (5 < SOME) = 5 < que alguma tupla na relação? TRUE! (5 < SOME) = FALSE! (5 = SOME) = TRUE! (5 <> SOME) = TRUE!, pois 1 5 (= SOME) IN (<> SOME) NOT IN 33/40

61 Subconsultas Operações com conjuntos: cláusula ALL (5 < ALL) = FALSE! (5 < ALL) = TRUE! (5 = ALL) = FALSE! (5 <> ALL) = TRUE! 34/40

62 Subconsultas Operações com conjuntos: cláusula ALL (5 < ALL) = FALSE! (5 < ALL) = TRUE! (5 = ALL) = FALSE! (5 <> ALL) = TRUE! (<> ALL) NOT IN (= ALL) IN 34/40

63 Subconsultas Teste de relação vazia EXISTS Retorna TRUE se a relação resultante da subconsulta for, FALSE caso contrário 35/40

64 Subconsultas Teste de relação vazia EXISTS Retorna TRUE se a relação resultante da subconsulta for, FALSE caso contrário Liste o nome de todos as disciplinas ministradas no segundo semestre de 2014 e no primeiro semestre de 2017 Disciplina(nome, ano, semestre) SELECT DISTINCT nome FROM Disciplina WHERE semestre = 2 AND ano = 2014 AND EXISTS (SELECT nome FROM Disciplina WHERE semestre = 1 AND ano = 2017) 35/40

65 Subconsultas Alternativa para INTERSECT e EXCEPT Listar o ID de todos os clientes que são correntistas e que possuam um empréstimo (SELECT idpessoa FROM Correntista) INTERSECT (SELECT idpessoa FROM Mutuario) SELECT idpessoa FROM Correntista c WHERE EXISTS (SELECT idpessoa FROM Mutuario m WHERE c.idpessoa = m.idpessoa); Listar o ID de todos os clientes que são correntistas e que não possuam um empréstimo (SELECT idpessoa FROM Correntista) EXCEPT (SELECT idpessoa FROM Mutuario) SELECT idpessoa FROM Correntista c WHERE NOT EXISTS (SELECT idpessoa FROM Mutuario m WHERE c.idpessoa = m.idpessoa); 36/40

66 Subconsulta escalar vs GROUP BY Subconsulta escalar retorna uma única tupla com um único atributo Liste o total em R$ das vendas de cada produto Vendas(Produto, qtde, preco) SELECT A.Produto, (SELECT SUM(B.qtde * B.preco) FROM Vendas B WHERE A.Produto = B.Produto) AS TotalVendas FROM Vendas A Mesma consulta, porém fazendo uso de GROUP BY SELECT Produto, SUM(qtde * preco) AS TotalVendas FROM Vendas GROUP BY Produto 37/40

67 Exemplos com DELETE e múltiplas relações 38/40

68 Apagando linhas de uma ou mais tabelas Aluno(idAluno, nome, curso) curso referencia Curso Disciplina(idDisc, nome, curso) curso referencia Curso Curso(idCurso, nome) Apagando todas as linhas da tabela Curso cujo código do curso seja igual a 123 DELETE FROM Curso WHERE curso = 123; Apagando todas as linhas das tabelas Curso, Disciplina e Aluno cujo código do curso seja igual a 123 DELETE Curso, Disciplina, Aluno FROM Curso INNER JOIN Disciplina INNER JOIN Aluno WHERE Curso.idCurso = 123 AND Curso.idCurso = Disciplina.curso AND Curso.idCurso = Aluno.curso; 38/40

69 Exemplos com INNER JOIN e subconsulta Aluno(idAluno, nome, curso) curso referencia Curso Curso(idCurso, nome) Exemplo com INNER JOIN DELETE Aluno FROM Aluno INNER JOIN Curso ON Aluno.curso = Curso.idCurso WHERE Curso.Nome = 'Curso XYZ'; Exemplo com subconsulta DELETE Aluno FROM Aluno WHERE Aluno.curso IN (SELECT idcurso FROM Curso WHERE Curso.Nome = 'Curso XYZ'); 39/40

70 Aulas baseadas em Henry F.; Sudarshan Silberschatz, Abraham; Korth. Sistemas de banco de dados. 6a. Edição - Editora Campus, 2012 Sullivan, D. G. Computer Science Harvard University 40/40

Consulta sobre múltiplas relações

Consulta sobre múltiplas relações Consulta sobre múltiplas relações BCD29008 Engenharia de Telecomunicações Prof. Emerson Ribeiro de Mello http://docente.ifsc.edu.br/mello/bcd 25 DE ABRIL DE 2019 Esquema usado nos próximos exemplos 1/36

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc. MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza DML Data Manipulation Language Linguagem de Manipulação de Dados Comandos básicos: Insert Update

Leia mais

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Laboratório de Banco de Dados Prof. Luiz Antônio Vivacqua C. Meyer (luiz.vcm@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1, nome_tabela2,...,

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

Banco de Dados II. Aula Prof. Diemesleno Souza Carvalho

Banco de Dados II. Aula Prof. Diemesleno Souza Carvalho Banco de Dados II Aula 02.4 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Subconsultas Subconsultas Contextualizando... De forma geral, grande parte das consultas

Leia mais

- SQL Linguagem de Manipulação de Dados

- SQL Linguagem de Manipulação de Dados - SQL Linguagem de Manipulação de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SELECT SELECT FROM [ WHERE predicado

Leia mais

Banco de Dados 1 2º Semestre

Banco de Dados 1 2º Semestre Banco de Dados 1 2º Semestre Aula 06 Prof. Gladimir Ceroni Catarino gladimir@gmail.com SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS SQL SERVIÇO NACIONAL DE APRENDIZAGEM

Leia mais

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

Leia mais

SUBCONSULTAS E TIPOS DE JUNÇÃO. Banco de Dados Profa. Ana Paula Wauke

SUBCONSULTAS E TIPOS DE JUNÇÃO. Banco de Dados Profa. Ana Paula Wauke SUBCONSULTAS E TIPOS DE JUNÇÃO Banco de Dados Profa. Ana Paula Wauke Operador IN e NOT IN IN: Dados de um conjunto, membros de um conjunto ou uma consulta; Filmes de categoria: Drama, Terror, Suspense

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados SQL-Consultas Comando SELECT Prof. Luiz Antônio Vivacqua C. Meyer (la.vivacqua@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1,

Leia mais

Álgebra Relacional e SQL

Álgebra Relacional e SQL Álgebra Relacional e SQL Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta procedural usuários

Leia mais

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU Aula 11 SBD SQL Parte 3 Profa. Elaine Faria UFU - 2018 Group by e Having Às vezes deseja-se aplicar operações agregadas a cada um dos vários grupos de linhas em um relação Group by e Having C31: Encontre

Leia mais

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única Tópicos do Curso: Introdução Listar os principais recursos do Banco de Dados Oracle 10g Apresentar uma visão geral de: componentes, plataforma de internet, servidor de aplicações e suite do desenvolvedor

Leia mais

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas Linguagem SQL ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas villas@puc-rio.br SQL Linguagem padrão de acesso tabelas em um banco de dados relacional Permite definir e manipular dados DML

Leia mais

Ordenação de tuplos order by

Ordenação de tuplos order by Bases de Dados Elementos da linguagem SQL Ordenação de tuplos order by A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Modelo ER & Modelo Relacional Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 18 de

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Objetivo: No curso Oracle 11G Introdução ao Oracle, SQL, PL/SQL será abordado desde a introdução da tecnologia do banco de dados em questão como todos os conceitos

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

Leia mais

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU Aula 10 BD 1 SQL Parte 2 Profa. Elaine Faria UFU - 2018 Consultas Aninhadas É um dos recursos mais poderosos da SQL É aquela que tem outra consulta embutida dentro dela A consulta embutida é chamada de

Leia mais

Sumário SELECT + FROM

Sumário SELECT + FROM Sumário 1 Introdução SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 2 3 Operadores de Conjuntos 4 5 Agregações 6 Ordenações e Limites 7 Sub-perguntas 8

Leia mais

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo. Banco de Dados I Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo DML Data Manipulation Language Parte II Consultas Básicas

Leia mais

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012 SQL - Perguntas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Perguntas February 24, 2012 1 / 46 Sumário 1 Introdução 2 Seleccionar e Filtrar

Leia mais

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 1 semestre de 2018 2 Escreva

Leia mais

ÁLGEBRA E CÁLCULO RELACIONAL

ÁLGEBRA E CÁLCULO RELACIONAL UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO ÁLGEBRA E CÁLCULO RELACIONAL MARINGÁ 2014 SUMÁRIO SUMÁRIO...1 1 INTRODUÇÃO...2 1.1

Leia mais

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada 1 Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Roteiro s aulas passadas SQL

Leia mais

SQL-99: Esquema de BD EMPRESA

SQL-99: Esquema de BD EMPRESA SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Modelo Entidade-Relacionamento (ER) Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd

Leia mais

Sintaxe do comando SELECT

Sintaxe do comando SELECT Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton nilton@comp.uems.br Sintaxe do comando SELECT SELECT FROM [WHERE ]

Leia mais

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) (csmnunes@gmail.com) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;

Leia mais

Apresentação Modelo e SQL. André Luiz Montevecchi

Apresentação Modelo e SQL. André Luiz Montevecchi Apresentação Modelo e SQL André Luiz Montevecchi andreluiz@unipacbomdespacho.com.br Conceitos básicos de um modelo de dados Primary Key Foreign Key Padronização Modelo Sist. Odontológico Revisão SQL -

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

SQL. Prof. Msc Denival A. dos Santos

SQL. Prof. Msc Denival A. dos Santos SQL Prof. Msc Denival A. dos Santos Histórico A versão original foi desenvolvida pela IBM no laboratório de pesquisa de San José; Originalmente chamada de Sequel, foi implementada como parte do projeto

Leia mais

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) PRONATEC - Programador de Sistemas Banco de Dados 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna,...] ) ] VALUES

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino

Leia mais

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Oracle Database 10g: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer

Leia mais

Álgebra Relacional e Cálculo Relacional

Álgebra Relacional e Cálculo Relacional SISTEMAS DE INFORMAÇÃO Álgebra Relacional e Cálculo Relacional Prof. Edson Thizon Linguagens de consultas formais (1) Uma linguagem de consulta (Query Language) é uma linguagem com a qual o usuário pode

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Utilizando o Postgres - comandos SQL para a manipulação de dados

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

- Um query block permite a implementação das operações de selecção, projecção e junção da álgebra relacional. 2.3 Linguagens relacionais (continuação) SQL Structured Query Language 1) "Query block" Select From Where - Um "query block" permite a implementação

Leia mais

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 SQL Structured Query Language SQL Desenvolvida pela IBM Structured English Query Language Sequel Linguagem de consulta para o sistema R Primeiro

Leia mais

Marcelo Henrique dos Santos

Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Marketing e Vendas (em andamento) Especialista em games Bacharel em Sistema de Informação Email: marcelosantos@outlook.com AULA 03 SQL (Structure Query Language)

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Modelo Entidade-Relacionamento (ER) Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd

Leia mais

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge Bases de Dados Elementos da linguagem SQL Ordenação de tuplos orderby A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de

Leia mais

Curso de Banco de Dados. Prof. Rone Ilídio

Curso de Banco de Dados. Prof. Rone Ilídio Curso de Banco de Dados Prof. Rone Ilídio Introdução BD 1 BD 2 SQL BD 3 Dados Aplicação Sistemas de Gerência de Banco de Dados -SGBD Introdução Aplicação que controla os dados Drives ODBC, BDE, ect SQL

Leia mais

Prof. Fabiano Taguchi

Prof. Fabiano Taguchi BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com OPERAÇÕES LÓGICAS AND (E) Avalia as condições e devolve um valor verdadeiro caso ambas condições forem

Leia mais

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação SQL Básica DML Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 22 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 1 / 16 1 Introdução 2 SQL DML INSERT SELECT UPDATE

Leia mais

Introdução ao Banco de Dados. Banco de Dados

Introdução ao Banco de Dados. Banco de Dados Introdução ao Banco de Dados Prof. Tiago Garcia de Senna Carneiro UFOP Prof. Técnicas de Programação II 2006 PARTE 1: Conceitos Básicos Banco de Dados SGDB: Sistema Gerenciador de Banco de Dados Definição:

Leia mais

BANCO DE DADOS GERENCIAL 1 A U L A 2

BANCO DE DADOS GERENCIAL 1 A U L A 2 BANCO DE DADOS GERENCIAL 1 A U L A 2 N Í V E I S D E V I S Ã O, S U B G R U P O D D L : C R I A N D O B A N C O D E D A D O S, C R I A N D O T A B E L A S, E S T R U T U R A D A T A B E L A CONCEITOS :

Leia mais

Oracle Database: Fundamentos de SQL e PL/SQL

Oracle Database: Fundamentos de SQL e PL/SQL Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens

Leia mais

Manipulando a base de dados

Manipulando a base de dados Manipulando a base de dados Uma base de dados pode ser manipulada com quatro operações básicas: Incluir, Apagar, Alterar e Pesquisar. Vale lembrar que como toda linguagem para computadores, o MySQL tem

Leia mais

Bases de Dados. Junção de relações. Junção de relações

Bases de Dados. Junção de relações. Junção de relações Bases de Dados Junção de relações Junção de relações Tipicamente usadas na cláusula from SQL oferece várias possibilidades condição da junção determina quais são os atributos a comparar tipo de junção

Leia mais

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc. MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br DML Data Manipulation Language Linguagem de Manipulação de Dados Comandos básicos: Insert Update

Leia mais

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas) Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas) Este exame consiste em 16 perguntas de escolha múltipla. Para todas as questões existe apenas 1 resposta correcta.

Leia mais

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero, Bases de Dados Álgebra Relacional II Junções, agregações, vistas P. Serendero, 2011-13 1 JUNÇÕES OU JOINS em SQL - R S A condição do JOIN é especificada na claúsula ON ou USING,, ou implicitamente

Leia mais

Álgebra Relacional e SQL operações de interesse

Álgebra Relacional e SQL operações de interesse Álgebra Relacional e SQL operações de interesse Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Álgebra Relacional Maneira teórica de se manipular o banco de dados relacional Linguagem de consulta

Leia mais

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre

Leia mais

AULA 8 EXEMPLOS CRIAR AS TABELAS PROPOSTAS NA AULA E INSERIR OS REGISTROS SUGERIDOS

AULA 8 EXEMPLOS CRIAR AS TABELAS PROPOSTAS NA AULA E INSERIR OS REGISTROS SUGERIDOS AULA 8 EXEMPLOS CRIAR AS TABELAS PROPOSTAS NA AULA E INSERIR OS REGISTROS SUGERIDOS CREATE TABLE classificacao ( codigocla integer PRIMARY KEY, nomecla VARCHAR(40 NOT NULL CREATE TABLE materiais ( codigomat

Leia mais

Transformação ER para modelo relacional

Transformação ER para modelo relacional Transformação ER para modelo relacional BCD29008 Engenharia de Telecomunicações Prof. Emerson Ribeiro de Mello http://docente.ifsc.edu.br/mello/bcd 04 DE SETEMBRO DE 2018 Revisão das aulas anteriores Entidades

Leia mais

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011 Banco de Dados I Aula 14 - Prof. Bruno Moreno 11/10/2011 Plano de Aula INSERT UPDATE SELECT-FROM-WHERE Uso de ALIASES SELECT com * DISTINCT Operações de Conjuntos Comparação entre substrings Operadores

Leia mais

Professor Eros Moura, DSc

Professor Eros Moura, DSc Professor Eros Moura, DSc Nesse capítulo: Operadores de Conjunto Construtor de Linha Operador BETWEEN Operador LIKE 2016 Ifes - Campus Cachoeiro de Itapemirim Eros Moura - Banco de Dados 2 Operador de

Leia mais

Consultas SQL. Andre Noel

Consultas SQL. Andre Noel Consultas SQL Andre Noel Introdução Introdução Uma distinção entre SQL e o modelo relacional: SQL permite que uma tabela tenha duas ou mais tuplas iguais Introdução Uma distinção entre SQL e o modelo relacional:

Leia mais

Banco de Dados. SQL Structured Query Language

Banco de Dados. SQL Structured Query Language Banco de Dados SQL Structured Query Language Euclides Arcoverde profearcoverde [at] gmail.com http://sites.google.com/site/euneto/ Introdução à SQL Linguagem comercial para BD relacional Padrão ISO desde

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

Oracle Database 12c: Introdução ao SQL Ed. 2

Oracle Database 12c: Introdução ao SQL Ed. 2 Oracle Database 12c: Introdução ao SQL Ed. 2 Duração: 5 dias O que você irá aprender Esse curso Oracle Database 12c: Introdução ao SQL Ed. 2 ajudará você a escrever subconsultas (subqueries), combinar

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

UFABC UAB TSI TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO

UFABC UAB TSI TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO UFABC UAB TSI TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO AULA 6A: SQL PARTE 2 CONSULTAS E MAIS CONSULTAS francisco.massetto@ufabc.edu.br AGENDA Consultas simples Dados puros Dados derivados Filtragens Dados

Leia mais

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina Banco de Dados SQL Fernando Fonseca Ana Carolina Introdução SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta, permitindo definição (DDL)

Leia mais

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as: Curso Profissional Técnico de Informática de Gestão 10ºB Prof. Pedro Lopes S i s t e m a s d e I n f o r m a ç ã o M ó d u l o : L i n g u a g e m S Q L T e s t e s u m a t i v o d u r a ç ã o 8 0 m i

Leia mais

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

Oracle Database 11g: Introdução à Linguagem SQL Novo

Oracle Database 11g: Introdução à Linguagem SQL Novo Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.

Leia mais

Material Teórico. Cláusula GROUP BY e HAVING. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Material Teórico. Cláusula GROUP BY e HAVING. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Banco de Dados Material Teórico Cláusula GROUP BY e HAVING Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Profa. Esp.Vera Lídia de Sá Cicarone Cláusula GROUP BY e

Leia mais

TLBD II. Continuação

TLBD II. Continuação TLBD II Continuação As expressões aritméticas podem conter nomes de colunas, valores numéricos constantes e os operadores aritméticos: OPERADOR DESCRIÇÃO + Adição - Subtracção * Multiplicação / Divisão

Leia mais

MySql. Introdução a MySQL. Andréa Garcia Trindade

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado Forma geral: SELECT FROM [WHERE ] [GROUP BY ]

Leia mais

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao SQL Lúbia Vinhas Conceitos básicos En#dades: en4dade é uma coisa do mundo real, com uma existência independente. Atributos são as propriedades dessa coisa. Cada atributo está associado a um determinado

Leia mais

Bancos de Dados. 8. Structured Query Language (SQL)

Bancos de Dados. 8. Structured Query Language (SQL) Bancos de Dados 8. Structured Query Language (SQL) Introdução A padronização ao redor de SQL é uma das principais razões para o sucesso dos bancos de dados relacionais A migração entre SGBDs é facilitada,

Leia mais

SQL (com MySQL) Apresentação OBJETIVOS. Programação

SQL (com MySQL) Apresentação OBJETIVOS. Programação SQL (com MySQL) Programação Formato: Mentored - Presencial Preço: 395 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 2ª a 6ª das 9h às 21h30

Leia mais

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais