1. O documento discute a linguagem SQL e seus complementos para consultas, manipulação e agregação de dados em bancos de dados relacionais. Ele apresenta exemplos do uso de comandos como SELECT, DISTINCT, ORDER BY, COUNT, SUM, AVG, MIN, MAX e GROUP BY.
2. Também aborda os comandos básicos de manipulação de dados INSERT, UPDATE e DELETE.
3. O objetivo é fornecer uma introdução aos principais recursos da linguagem SQL para consultas, agregação e manipulação de dados.
1. 1
1
Linguagem de Consulta - SQL
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
FROM Livro
2
Linguagem de Consulta - SQL
Exemplo: Obter o código das editoras que têm livros publicados
SELECT CodEditora
FROM Livro
04
02
01
02
01
SELECT DISTINCT CodEditora
FROM Livro 01
02
04
OBS : a cláusula DISTINCT automaticamente ordena
o conjunto resultante
CodEditora Titulo Publicacao ....
04 Banco de Dados 1989
02 Análise 2000
01 XML 2001
02 Orientacao Objetos 1998
01 HTML 1990
2. 2
3
Linguagem de Consulta - SQL
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
SELECT CodEditora,Título
FROM Livro 04 Banco de Dados
02 Análise
01 XML
02 Orientacao Objetos
01 HTMl
SELECT CodEditora, Título
FROM Livro
ORDER BY CodEditora
01 XML
01 HTMl
02 Análise
02 Orientacao Objetos
04 Banco de Dados
CodEditora Titulo Publicacao ....
04 Banco de Dados 1989
02 Análise 2000
01 XML 2001
02 Orientacao Objetos 1998
01 HTML 1990
4
Linguagem de Consulta - SQL
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
SELECT CodEditora, Título
FROM Livro
ORDER BY CodEditora
01 XML
01 HTMl
02 Análise
02 Orientacao Objetos
04 Banco de Dados
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
FROM Livro
ORDER BY CodEditora,Titulo
01 HTMl
01 XML
02 Análise
02 Orientacao Objetos
04 Banco de Dados
3. 3
5
Linguagem de Consulta - SQL
Complementos da Linguagem SQL - Ordenando um
resultado
SELECT CodEditora, Título
FROM Livro
ORDER BY 2
SELECT CodEditora, Título
FROM Livro
ORDER BY 2 ASC
SELECT CodEditora, Título
FROM Livro
ORDER BY 2 DESC
6
Linguagem de Consulta - SQL
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 *
FROM Funcionario
WHERE (2000 - AnoNasc) 20
FUNCIONÁRIO
04 João 1969
03 Pedro 1976
05 Paula 1930
4. 4
7
Linguagem de Consulta - SQL
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
FROM Funcionario
FUNCIONÁRIO
João 1.000,00
Pedro 2.000,00
Paula 500,00
8
Linguagem de Consulta - SQL
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;
5. 5
9
Linguagem de Consulta - SQL
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
FUNCIONÁRIO
SELECT count(*)
FROM Funcionario
5
10
Linguagem de Consulta - SQL
Complementos da Linguagem SQL - COUNT :
adicionando nomes aos resultados
SELECT count(*)
FROM Funcionario
count(*)
5
SELECT count(*)
as NumerodeFuncionarios
FROM Funcionario
NumerodeFuncionarios
5
6. 6
11
Linguagem de Consulta - SQL
Complementos da Linguagem SQL - COUNT : contador
de um conjunto de valores
Exemplo: Contar quantos funcionários tem plano de saúde
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT count(PlanoS)
FROM Funcionario
2
12
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT count(SalAnual) ou (*)
FROM Funcionario
WHERE SalAnual 12000
3
7. 7
13
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT SUM(SalAnual)
FROM Funcionario
92.000,00
14
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT SUM(SalAnual)
FROM Funcionario
WHERE SalAnual 20000
59.000,00
8. 8
15
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT AVG(SalAnual)
FROM Funcionario
18.400,00
16
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT MIN(SalAnual)
FROM Funcionario
6.000,00
9. 9
17
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT MAX(SalAnual)
FROM Funcionario
35.000,00
18
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT nome
FROM Funcionario
WHERE PlanoS is null
João
Paula
Carlos
10. 10
19
Linguagem de Consulta - SQL
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
CodEmp Nome AnoNasc SalAnual Cargo PlanoS
04 João 1969 12.000,00 Gerencia NULL
02 Ana 1980 24.000,00 Gerencia UNIMED
03 Pedro 1976 6.000,00 Secretaria AMIL
05 Paula 1930 15.000,00 Administracao NULL
01 Carlos 1983 35.000,00 Administracao NULL
FUNCIONÁRIO
SELECT cargo, SUM (SalAnual)
FROM Funcionario
GROUP BY Cargo
Gerencia 36.000,00
Secretaria 6.000,00
Administração 50.000,00
20
Linguagem de Consulta - SQL
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)
FROM Funcionario
GROUP BY Cargo
HAVING SUM(SalAnual) 30000
ORDER BY cargo
Administração 50.000,00
Gerencia 36.000,00
SELECT cargo, SUM (SalAnual)
FROM Funcionario
WHERE SUM(SalAnual) 30000
GROUP BY Cargo
ERRADO !!
11. 11
21
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;
Linguagem de Consulta - SQL
22
Linguagem de Manipulação de Dados (DML) - Insert
INSERT INTO Nome_Tabela
VALUES (valores)
Linguagem de Consulta - SQL
INSERT INTO Autor (CodAutor,Nome,CodCidade)
VALUES (2, “Agatha Christie”,01)
INSERT INTO Autor
VALUES (2, “Agatha Christie”,NULL,01)
INSERT INTO Autor
VALUES (2, “Agatha Christie”, “10/04/1920”,01)
12. 12
23
Linguagem de Manipulação de Dados (DML) - Update
UPDATE Tabela
SET coluna = novo valor,
coluna = novo valor
WHERE condição
Linguagem de Consulta - SQL
UPDATE Autor
SET Nome = “José de Alencar”,
DataNasc = “10/12/1930”
WHERE CodAutor = 1
24
Linguagem de Manipulação de Dados (DML) - Delete
DELETE FROM Tabela
[WHERE condição]
Linguagem de Consulta - SQL
DELETE FROM Autor Exclui todos os registros
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