SQL – DQL
Linguagem de consulta Estruturada
Consultando Tabelas SQL –
DQL (Data Query Language)
DQL – Linguagem de Consulta de dados
Uma expressão básica em SQL consiste em três cláusulas:
SELECT, FROM e WHERE.
SELECT, é usada para relacionar os atributos desejados no
resultado de uma consulta. Os nomes dos atributos devem
ser os mesmos definidos no banco de dados. É uma cláusula
obrigatória em qualquer consulta.
FROM, indica as tabelas do banco de dados que devem ser
consultadas. Também é obrigatória em qualquer consulta.
WHERE, indica uma condição pela qual os dados serão
filtrados. A condição especificada deve retornar verdadeiro
ou falso. Para cada linha da tabela, o interpretador SQL
verifica se atende a condição especificada nesta cláusula e
adiciona a linha na resposta caso seja verdadeira a avaliação. É
uma cláusula opcional de consulta.
DQL – Linguagem de Consulta de dados
Observações:
Caso a cláusula where seja omitida, a condição é
sempre verdadeiro;
A lista de atributos pode ser substituída por um
asterisco (*) para selecionar todos os atributos de
todas as relações da cláusula from;
As tabelas chamadas na cláusula from, verifica a
condição da cláusula where, e então, projeta o
resultado para os atributos da cláusula select;
O resultado de uma consulta SQL é uma tabela.
Operadores lógicos: and, or e not
Operadores de comparação: >, >=, <, <=, = , != (ou
<>)
DQL – Linguagem de Consulta de dados
A sintaxe mínima para uma instrução
SELECT é:
SELECT campos FROM tabela;
ou
SELECT * FROM tabela;
DQL – Linguagem de Consulta de dados
Exemplo: Dada a seguinte tabela de clientes:
CLIENTE_NOME RUA CIDADE
JOSÉ QUINZE UBÁ
MARIA ROSARIO MURIAÉ
JOANA IZALINO MURIAÉ
ROGÉRIO VITOR ATADEU JUIZ DE FORA
Para consultar os clientes (todos os atributos) que
moram em Muriaé
select * from clientes where cidade = “MURIAÉ”
DQL – Linguagem de Consulta de dados
O resultado seria:
CLIENTE_NOME RUA CIDADE
MARIA ROSARIO MURIAÉ
JOANA IZALINO MURIAÉ
Exercícios:
Exibir todos os clientes do BD Bancário: SELECT * FROM CLIENTES;
Exibir a cidade do cliente de código 4 :
SELECT CIDADE FROM CLIENTES WHERE COD_CLIENTE = 4;
Exibir todos os lançamentos de Credito acima de R$800,00:
SELECT * FROM LANCAMENTOS WHERE TIPO = ‘C’ AND VALOR > 800;
Exibir todas as contas com saldo inicial acima de R$900,00:
SELECT * FROM CONTAS WHERE SALDO_INICIAL > 900;
DQL – Linguagem de Consulta de dados
Comando SELECT - Cláusula DISTINCT
A claúsula distinct elimina duplicidades de linhas no
resultado da consulta.
Exemplo 1: Identificar no BD Bancário as agencias que
tenha conta cadastradas:
select distinct agencias_agencia from contas;
Exemplo 2 : identificar no BD Bancario todas as cidades:
Select distinct cidade from clientes;
DQL – Linguagem de Consulta de dados
Comando SELECT - Funções de Agregação
a) Count: contador de ocorrências
Ex: 1) total de linhas da tabela de clientes:
select count (*) from clientes;
2) Quantos lançamentos para na data 10/08/2011
existem?
select count (*) {não conta nulos}
from lancamento where data = ’10/08/2011’;
DQL – Linguagem de Consulta de dados
Comando SELECT - Funções de Agregação
b) Sum: somador de valores de atributos numéricos.
Ex: Soma dos saldos dos clientes da agência Bradesco:
select sum (valor) from lançamentos
Where contas_conta =11;
c) Avg: Média de valores de atributos numéricos.
Ex: Obter média de saldo inicial das contas:
select avg (saldo_inicial) from contas;
DQL – Linguagem de Consulta de dados
Comando SELECT - Funções de Agregação
d) Max / Min: Maior/Menor valor de um atributo
Ex: Maior e menor valor de lançamentos.
select max (valor), min (valor) from lancamento;
DQL – Linguagem de Consulta de dados
Comparações da cláusula Where:
Operadores de comparação: >, >=, <, <=, = , !=
(ou <>)
Operadores Lógicos:
and = e or = ou not = negação
Operadores between e NOT between
Where <nome da coluna> between <valor1> and <valor2>
Seleciona as linhas cujo o valor da coluna esteja dentro de
uma faixa determinada de valores.
Exemplo: select * from lancamentos
where data between '01.08.2011' and '10.08.2011'
DQL – Linguagem de Consulta de dados
Operadores baseados em String de
catacteres LIKE e not LIKE
Where <nome da coluna> like <valor>
Só trabalham com colunas que seja tipo char ou vachar,
pode ser utilizada com os símbolos (%) e (_) que fazem
papel de curinga.
(%) – substitui uma palavra
(_) – substitui um caractere
Exemplo: SELECT * FROM CLIENTES where nome like
‘JO%';
DQL – Linguagem de Consulta de dados
Operadores baseados em lista In e NOT
in
Where <nome da coluna> in <valores>
Estes operadores pesquisam registros que estão no
conjunto de <valores>
where estado in (‘MG’, ‘SP’)
DQL – Linguagem de Consulta de dados
Operadores baseados em valores
desconhecidos: IS NULL e IS NOT NULL
Where <nome da coluna> is null
DQL – Linguagem de Consulta de dados
Ordenando os dados selecionados;
Select <colunas> from <tabela>
where <condições>
Order by <coluna(s)> [asc,desc]
Exemplo: Select * from clientes order by nome;
Select * from clientes order by cod_cliente desc;
DQL – Linguagem de Consulta de dados
Agrupando Informações selecionadas:
GROUP BY e HAVING
Combina registros com valores idênticos na lista de
campos especificada em um único registro.
Select <colunas> from <tabelas>
where <condições>
Group by <colunas>
Exemplo: Identificar quantos produtos tem cada cupom.
SELECT [Link], COUNT(*),
SUM(CP.total_liquido) FROM produtos_cupom CP
GROUP BY [Link]
DQL – Linguagem de Consulta de dados
GROUP BY é normalmente usada com
as operações de count, avg ou sum.
HAVING realiza as restrições das linha
resultantes da mesma forma que a
claúsula where o faz no select.
Exemplo: Listar os cupom que têm mais de 3 produtos.
SELECT [Link], COUNT(*), SUM(CP.total_liquido) FROM
produtos_cupom CP
GROUP BY [Link]
HAVING COUNT > 3