Você está na página 1de 6

14/6/2012

Banco de Dados I – Aula 17


Select – Order By – Limit -
Distinct – Count.

SELECT
• Seleciona tuplas no banco de dados conforme as colunas indicadas na pesquisa.
• O comando mais importante. Tem muitas variantes e acréscimos.
• Retorna sempre os resultados em forma de tabela com linhas e colunas que atendam à
consulta.

SELECT coluna FROM banco.tabela;

SELECT coluna1, coluna2, colunan FROM banco.tabela;


 Para mais de uma coluna, digita-se seu nome separado por vírgula.

SELECT * FROM banco.tabela;


 onde * significa todas as colunas

Exemplo

SELECT * FROM locadora.cliente;


 Esta consulta retorna todas as colunas e suas tuplas (linhas) da tabela cliente no banco
locadora.

1
14/6/2012

Exercícios
• Selecionar todos os clientes.
• Selecionar apenas o nome dos clientes.
• Selecionar as colunas nome, usuario e senha.
• Selecionar as colunas nome, casa e rua.
• Selecionar as colunas nome e nascimento.
• Listar todos os bairros cadastrados.
• Listar todos os municípios cadastrados.
• Listar todas as categorias.
• Listar todos os filmes e seu tempo de duração.
• Listar a descrição de todas as unidades.
• Listar todos os empréstimos com data, ticket, idcliente e idunidade.
• Listar todos os atores.
• Listar os dados da tabela estrela, que associa atores a filmes.
• Listar todos os dados da tabela telefone, que associa um numero a um cliente.

• OBS: As chaves estrangeiras serão usadas em na próxima aula para fazer consultas
conjuntas nas tabelas.

Parâmetro ORDER BY
• Ordena o resultado de uma consulta conforme a coluna indicada ou critério.
• A indicação do parâmetro DESC estabelece uma ordem decrescente.

SELECT campo FROM banco.tabela ORDER BY campo;

SELECT campo FROM banco.tabela ORDER BY campo DESC;

Exemplo:

SELECT nome, e-mail FROM locadora.cliente ORDER BY nome;

▫ Esta consulta retorna o nome e e-mail dos clientes pela ordem crescente de nomes.

SELECT * FROM locadora.bairro ORDER BY bairro DESC;

▫ Esta consulta retorna todas as linhas da coluna bairro em ordem decrescente.

2
14/6/2012

Parâmetro LIMIT
• Retorna os primeiros N registos que atendam à consulta. Com isso possibilita a
paginação dos resultados com um limite de tuplas predefinidas.

SELECT campo FROM banco.tabela ORDER BY campo LIMIT x, y

SELECT campo FROM banco.tabela LIMIT x, y

Exemplo:

SELECT nome, e-mail FROM locadora.cliente ORDER BY nome LIMIT 0,10;

▫ Esta consulta ordena e retorna os 10 primeiros registros de nome e e-mail dos


clientes.

SELECT * FROM locadora.bairro ORDER BY bairro DESC LIMIT 11,15;

▫ Esta consulta ordena e retorna os registos de 11 a 15 , da coluna bairro.

Exercício
• Selecione todos os clientes ordenados pela data de nascimento.

• Repita o comando mas apresentando apenas os 8 primeiros resultados.

• Repita o comando mostrando apenas os próximos 8 (9,17).

• Selecione todos os filmes em ordem alfabética.

• Repita o comando mostrando apenas os 4 primeiros (0,4).

• Repita o comando mostrando apenas os próximos 4 (5,8).

• Selecione os atores em ordem decrescente.

3
14/6/2012

Parâmetro DISTINCT
• O Distinct é um argumento opcional que filtra os resultados da consulta de forma a
não apresentar valores repetidos.
• Vem antes da indicação da coluna.

SELECT DISTINCT coluna FROM banco.tabela;

Exemplo:

SELECT DISTINCT idcliente FROM locadora.telefone;

▫ Esta consulta lista quais valores diferentes estão presentes na coluna idcliente da
tabela telefone.
▫ Com isso é possível saber quais os clientes possuem telefone.
▫ Se contarmos a quantidade de linhas no resultado saberemos quantos clientes
possuem telefone.

Exercícios
• Garanta que existe, na coluna casa, pelo menos 3 números repetidos.
▫ Selecione a coluna casa apenas com o SELECT.
▫ Selecione a coluna casa com o SELECT DISTINTC.
▫ Compare a diferença.

• Selecione com o DISTINCT a coluna idfilme da tabela Estrela, conte os resultados e


diga quantos filmes diferentes estão no relacionamento (possuem estrelas).

• Selecione com o DISTINCT a coluna idator da tabela Estrela, conte os resultados e diga
quantos atores diferentes estão relacionados com filme.

• Diga quantos clientes diferentes possuem telefone.

• Aplique o comando na coluna idmunicipio da tabela bairro, mostre quais os municípios


estão associados, conte os registos e diga quantos municípios estão associados a
bairros.
▫ Observe que não quero saber quais os municípios estão cadastrados, e sim quais
estão associados a bairros.

4
14/6/2012

Função COUNT
• O Count retorna o total de registos de uma tabela, de uma coluna ou de uma consulta.
• Para o caso de colunas, retorna o total de registos não nulos (apenas as tuplas
preenchidas).
• Ideal para sabermos quantos registros (tuplas) possui uma determinada tabela.
• O nome da coluna ou * deve vir entre parêntese.

SELECT COUNT (coluna) FROM banco.tabela;

SELECT COUNT (*) FROM banco.tabela;

Exemplo

SELECT COUNT (*) FROM locadora.cliente;


▫ Esta consulta retorna o total de tuplas da tabela cliente.

SELECT COUNT (casa) FROM locadora.cliente;


▫ Esta consulta retorna o total de tuplas não nulas na coluna casa da tabela cliente.

Exercícios
• Mostre quantas pessoas estão cadastradas na tabela cliente.

• Mostre quantos telefones estão cadastrados.

• Mostre quantos filmes estão registados no banco de dados.

• Mostre quantas categorias existem no banco.

• Mostre quantos bairros estão cadastrados.

• Mostre quantos municípios estão cadastrados.

• Mostre quantos empréstimos já foram efetuados. Use o ticket da tabela empréstimo.

• Mostre quantas unidades já foram emprestadas. Use o idunidade da tabela


empréstimo.

• OBS: Estas duas últimas consultas contarão valores repetidos.

5
14/6/2012

COUNT E DISTINCT
• Para contar apenas os registos dos dados não repetidos pode-se unir os dois
parâmetros.

• O DISTINCT deve vir dentro do COUNT.

• Exemplo:

SELECT COUNT(DISTINCT bairro) FROM locadora.cliente;

SELECT COUNT(DISTINCT idcliente) FROM locadora.telefone;

Exercício
• Selecione com o DISTINCT e o COUNT a coluna idfilme da tabela Estrela e diga quantos
filmes diferentes estão no relacionamento (possuem estrelas).

• Selecione com o DISTINCT e o COUNT a coluna idator da tabela Estrela e diga quantos
atores diferentes estão relacionados com filme.

• Diga quantos clientes diferentes possuem telefone.

• Aplique os comandos na coluna idmunicipio da tabela Bairro e diga quantos municípios


estão associados a bairros.

▫ Nos exercícios anteriores tivemos que somar para saber o total se registos.

• Mostre quantos empréstimos já foram efetuados. Use o ticket da tabela empréstimo.

• Mostre quantas unidades já foram emprestadas. Use o idunidade da tabela


empréstimo.

• OBS: Estas duas últimas consultas com COUNT e DISTINCT não contarão mais valores
repetidos.

Você também pode gostar