SQL – DQL Linguagem de consulta de dados
• Comando SELECT
• Operadores lógicos (AND, OR e NOT) •SQL - DQL
• Consultas envolvendo várias tabelas • Comando SELECT
• Cláusulas diversas • Operadores lógicos (AND, OR e NOT)
• Consultas envolvendo várias tabelas
• Cláusulas diversas
INF - Banco de Dados
Prof. Pedro Borges
Introdução ao SQL
SQL - Structured Query Language
SQL é dividida em 3 subconjuntos (principais):
• 1º DDL - Data Definition Language (Linguagem de Definição de Dados).
• 2º DML - Data Manipulation Language (Linguagem de Manipulação de
Dados).
• 3º DQL - Data Query Language (Linguagem de Consulta de Dados).
2
Introdução ao SQL
SQL - Structured Query Language
SQL é dividida em 3 subconjuntos (principais):
• 1º DDL - Data Definition Language (Linguagem de Definição de Dados).
• 2º DML - Data Manipulation Language (Linguagem de Manipulação de
Dados).
• 3º DQL - Data Query Language (Linguagem de Consulta de Dados).
3
DQL
Linguagem de Consulta de Dados
A Linguagem de Consulta de Dados (ou DQL, Data Query Language) é
usada para obter informações da base de dados.
SELECT
lista de atributos
FROM
lista de tabelas
WHERE
condições;
4
DQL
Linguagem de Consulta de Dados
Para fins de entendimento, o seguinte banco de dados será utilizado
no decorrer da aula (BD_ACADEMICO):
5
DQL
Comando SELECT
Exemplo 1:
Listar o nome dos
alunos.
SELECT nome FROM Alunos;
6
DQL
Comando SELECT
Exemplo 2:
Listar o nome e o email
dos alunos.
SELECT nome, email FROM Alunos;
7
DQL
Comando SELECT
Exemplo 3:
Listar todos os dados dos
alunos.
• Com o asterisco *
selecionamos todos os
campos da tabela.
SELECT * FROM Alunos;
8
DQL
Comando SELECT (com condições)
Exemplo 4:
Listar todos os dados do
aluno de matricula 201365.
• Com o WHERE é possível
definir as
condições para as consultas.
SELECT * FROM Alunos WHERE matricula =
201365;
9
DQL
Comando SELECT (com condições)
Exemplo 5:
Listar o nome das disciplinas
de código maior ou igual a
5.
• Com o WHERE é possível definir
as
condições para as consultas.
SELECT nome FROM Disciplinas WHERE codigo >=
5;
10
DQL
Comando SELECT (operador lógico AND)
Exemplo 6:
Listar o nome e a sigla de
todas as disciplinas com
carga horária maior que 50
e menor que 100.
SELECT nome, sigla FROM Disciplinas
WHERE cargaHoraria > 50 AND cargaHoraria < 100;
11
DQL
Comando SELECT (operador lógico OR)
Exemplo 7:
Listar o nome e a sigla de
todas as disciplinas com
carga horária de 45 ou 60
horas.
SELECT nome, sigla FROM Disciplinas
WHERE cargaHoraria = 45 OR cargaHoraria =
60;
12
DQL
Comando SELECT (operador lógico NOT)
Exemplo 8:
Listar o nome e a sigla de
todas as disciplinas cuja
carga horária não seja de 60
horas.
SELECT nome, sigla FROM Disciplinas
WHERE NOT cargaHoraria = 60;
13
DQL
Comando SELECT (várias tabelas)
Junção:
• Uma junção é uma operação para buscar dados de diversas linhas
associadas pela igualdade de campos (atributos);
• A consulta que acessa várias linhas da mesma tabela, ou de
tabelas diferentes, de uma vez, é chamada de consulta de
junção;
• Sempre devemos relacionar a chave primária com a estrangeira.
14
DQL
Comando SELECT (várias tabelas)
BANCO_PANAS:
• Como listar dados
de um correntista
e de suas contas?
• Ou então, como
listar o endereço
da agência de
uma determinada
conta?
15
DQL
Comando SELECT (várias tabelas)
Exemplo 9:
Listar o número das contas e o endereço
da
agência onde cada conta está
hospedada.
SELECT [Link], [Link]ço
FROM Contas, Agencias
WHERE [Link] =
Contas.numero_agencia;
16
DQL
Comando SELECT (várias tabelas)
Exemplo 10:
Listar o destinatário dos cheques e o número
da agência de cada cheque.
SELECT [Link], Contas.numero_agencia
FROM Cheques, Contas
WHERE [Link] = Cheques.numero_conta;
17
DQL
Comando SELECT - ORDER BY
Exemplo 11:
Listar o destinatário e o valor dos cheques
e ordenar pelo valor (ordem crescente).
• Usamos a cláusula ORDER BY para ordenar
o
resultado de uma consulta.
SELECT destinatario, valor FROM
Cheques
ORDER BY valor;
18
DQL
Comando SELECT - ORDER BY
Exemplo 12:
Listar o destinatário e o valor dos cheques
e ordenar pelo valor (ordem
decrescente).
• Usamos a cláusula ORDER BY para ordenar
o
resultado de uma consulta.
SELECT destinatario, valor FROM
Cheques ORDER BY valor DESC;
19
DQL
Comando SELECT - DISTINCT
Exemplo 13:
Listar os destinatários de todos os
cheques sem repetir os que receberam
vários cheques.
• Usamos a cláusula DISTINCT para eliminar
os
valores repetidos de uma consulta.
SELECT DISTINCT destinatário, valor FROM
Cheques ;
20
DQL
Comando SELECT - BETWEEN
Exemplo 14:
Listar o destinatário e o valor de todos
os cheques com valor entre 300 e 800.
• Usamos a cláusula BETWEEN para
especificar
intervalos numéricos e períodos entre
datas.
SELECT destinatário, valor FROM
Cheques
WHERE valor BETWEEN 300 AND 800;
21
DQL
Comando SELECT - IN
Exemplo 15:
Listar o destinatário e o valor de todos os
cheques
cujo número da conta seja 1, 8, 23, 4 ou 12.
• Usamos a cláusula IN quando os valores a ser
comparados estão na forma de uma lista.
SELECT destinatário, valor FROM Cheques
WHERE numero_conta IN (1, 8, 23, 4, 12);
22
DQL
Comando SELECT - NOT IN
Exemplo 15:
Listar o destinatário e o valor de todos os cheques
de qualquer conta, exceto as contas 16, 22, 28 e 32.
• Usamos a cláusula NOT IN quando os valores a ser
comparados estão na forma de uma lista.
SELECT destinatário, valor FROM Cheques
WHERE numero_conta NOT IN (16, 22, 28, 32);
23