Complementos da Linguagem SQL - Eliminando Tuplas Repetidas Exemplo: Obter o código das editoras que têm livros publicados CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML 2001 02 Orientacao Objetos 1998 01 HTML 1990 SELECT CodEditora 1 Exemplo: Obter o código das editoras que têm livros publicados SELECT CodEditora CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML 2001 02 Orientacao Objetos 1998 01 HTML 1990 04 02 01 02 01 SELECT DISTINCT CodEditora 01 02 04 OBS : a cláusula DISTINCT automaticamente ordena o conjunto resultante 2 1
Complementos da Linguagem SQL - Ordenando um resultado Exemplo: Obter o código da editora e nome dos seus livros ordenando o resultado pelo código da editora CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML 2001 02 Orientacao Objetos 1998 01 HTML 1990 SELECT CodEditora,Título 04 Banco de Dados 02 Análise 01 XML 02 Orientacao Objetos 01 HTMl SELECT CodEditora, Título ORDER BY CodEditora 01 XML 01 HTMl 02 Análise 02 Orientacao Objetos 04 Banco de Dados 3 Complementos da Linguagem SQL - Ordenando um resultado Exemplo: Obter o código da editora e nome dos seus livros ordenando o resultado pelo código da editora e alfabeticamente pelo título CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML 2001 02 Orientacao Objetos 1998 01 HTML 1990 SELECT CodEditora, Título ORDER BY CodEditora,Titulo SELECT CodEditora, Título ORDER BY CodEditora 01 HTMl 01 XML 02 Análise 02 Orientacao Objetos 04 Banco de Dados 01 XML 01 HTMl 02 Análise 02 Orientacao Objetos 04 Banco de Dados 4 2
Complementos da Linguagem SQL - Ordenando um resultado SELECT CodEditora, Título ORDER BY 2 SELECT CodEditora, Título ORDER BY 2 ASC SELECT CodEditora, Título ORDER BY 2 DESC 5 Complementos da Linguagem SQL - Expressões em condições Exemplo: Obter os dados dos funcionários que, em 2000, tinham mais de 20 anos. CodEmp Nome AnoNasc 04 João 1969 02 Ana 1980 03 Pedro 1976 05 Paula 1930 01 Carlos 1983 SELECT * WHERE (2000 - AnoNasc) > 20 04 João 1969 03 Pedro 1976 05 Paula 1930 6 3
Complementos da Linguagem SQL - Utilizando expressões para exibir resultados calculados Exemplo: Obter o nome e o salário mensal dos funcionários. CodEmp Nome SalAnual 02 João 12.000,00 03 Pedro 24.000,00 01 Paula 6.000,00 SELECT Nome, SalAnual/12 João 1.000,00 Pedro 2.000,00 Paula 500,00 7 Complementos da Linguagem SQL - Funções para cálculos de valores COUNT: contador de um conjunto de valores SUM: Calcula a soma total de um conjunto de valores; AVG : Calcula a média de determinados valores; MIN: Encontra o menor valor dentro de um conjunto especificado; MAX: Encontra o maior valor dentro de um conjunto especificado; 8 4
Complementos da Linguagem SQL - COUNT : contador de um conjunto de valores Exemplo: Contar quantos funcionários existem armazenados. CodEmp Nome AnoNasc SalAnual Cargo 04 João 1969 12.000,00 Gerencia 02 Ana 1980 24.000,00 Gerencia 03 Pedro 1976 6.000,00 Secretaria 05 Paula 1930 15.000,00 Administracao 01 Carlos 1983 35.000,00 Administracao SELECT count(*) 5 9 Complementos da Linguagem SQL - COUNT : adicionando nomes aos resultados SELECT count(*) count(*) 5 SELECT count(*) as NumerodeFuncionarios NumerodeFuncionarios 5 10 5
Complementos da Linguagem SQL - COUNT : contador de um conjunto de valores Exemplo: Contar quantos funcionários tem plano de saúde SELECT count(planos) 2 11 Complementos da Linguagem SQL - COUNT : contador de um conjunto de valores Exemplo: Contar quantos funcionários tem salário anual superior a 10.000,00 SELECT count(salanual) ou (*) WHERE SalAnual > 12000 3 12 6
Complementos da Linguagem SQL - SUM : calcula a soma total de um conjunto de valores Exemplo: Mostrar a soma dos salários anuais pagos aos funcionários da empresa SELECT SUM(SalAnual) 92.000,00 13 Complementos da Linguagem SQL - SUM: Calcula a soma total de um conjunto de valores Exemplo: Mostrar a soma dos salários anuais pagos aos funcionários da empresa que ganham mais de 20.000,00 SELECT SUM(SalAnual) WHERE SalAnual > 20000 59.000,00 14 7
Complementos da Linguagem SQL - AVG : Calcula a média de determinados valores; Exemplo: Mostrar a média dos salários anuais pagos aos funcionários da empresa SELECT AVG(SalAnual) 18.400,00 15 Complementos da Linguagem SQL - MIN: Encontra o menor valor dentro de um conjunto especificado; Exemplo: Mostrar o menor salário anual pago aos funcionários da empresa SELECT MIN(SalAnual) 6.000,00 16 8
Complementos da Linguagem SQL - MAX: Encontra o maior valor dentro de um conjunto especificado; Exemplo: Mostrar o maior salário anual pago aos funcionários da empresa SELECT MAX(SalAnual) 35.000,00 17 Complementos da Linguagem SQL - Usando NULL em comparações Exemplo: Mostrar o nome de todos os funcionários que não têm plano de saúde SELECT nome WHERE PlanoS is null João Paula Carlos 18 9
Complementos da Linguagem SQL - Agrupando informações Exemplo: Mostrar o cargo e a soma dos salários pagos pela empresa para cada tipo de cargo ocupado pelos funcionários SELECT cargo, SUM (SalAnual) GROUP BY Cargo Gerencia 36.000,00 Secretaria 6.000,00 Administração 50.000,00 19 Complementos da Linguagem SQL - Agrupando informações com condições Exemplo: Mostrar o cargo e a soma dos salários pagos pela empresa para cada tipo de cargo ocupado pelos funcionários, somente se a soma ultrapassar 30.000,00 SELECT cargo, SUM (SalAnual) WHERE SUM(SalAnual) > 30000 GROUP BY Cargo SELECT cargo, SUM (SalAnual) GROUP BY Cargo HAVING SUM(SalAnual) > 30000 ORDER BY cargo ERRADO!! Administração 50.000,00 Gerencia 36.000,00 20 10
Linguagem de Manipulação de Dados (DML) - Comandos Básicos de Inserção e Atualização INSERT : serve para inserir uma ou mais linhas em uma tabela; UPDATE: serve para alterar os dados de uma ou mais linhas de uma tabela DELETE: serve para exclui uma ou mais linhas de uma tabela; 21 Linguagem de Manipulação de Dados (DML) - Insert INSERT INTO Nome_Tabela VALUES (valores) INSERT INTO Autor VALUES (2, Agatha Christie, 10/04/1920,01) INSERT INTO Autor VALUES (2, Agatha Christie,NULL,01) INSERT INTO Autor (CodAutor,Nome,CodCidade) VALUES (2, Agatha Christie,01) 22 11
Linguagem de Manipulação de Dados (DML) - Update UPDATE Tabela SET coluna = novo valor, coluna = novo valor WHERE condição UPDATE Autor SET Nome = José de Alencar, DataNasc = 10/12/1930 WHERE CodAutor = 1 23 Linguagem de Manipulação de Dados (DML) - Delete DELETE FROM Tabela [WHERE condição] DELETE FROM Autor WHERE CodAutor = 1 Exclui o registro onde autor tem código = 01 DELETE FROM Autor WHERE CodCidade in (SELECT CodCidade FROM Cidade WHERE Nome = Santa Maria ) Exclui todos os registros de atores que morem em Santa Maria DELETE FROM Autor Exclui todos os registros 24 12