O documento discute consultas SQL, incluindo as cláusulas SELECT, FROM e WHERE. A cláusula SELECT especifica os campos desejados, FROM lista as tabelas e WHERE contém expressões lógicas. Exemplos mostram como selecionar, filtrar e ordenar dados de bancos de dados como "world".
UFCD_10392_Intervenção em populações de risco_índice .pdf
Consultas SQL e estrutura básica
1. PROGRAMAÇÃO EM BANCO DE
DADOS
UNIDADE 1: REPOSITÓRIO DE DADOS
Aula 3: 23/08/2018
Prof.ª M.ª Eng.ª Elaine Cecília Gato
1
2. Estrutura Básica das
Consultas SQL
• Instrução Básica composta por 3 Cláusulas
– SELECT: identfca os campos desejados em uma
consulta
– FROM: lista as tabelas que deverão ser lidas
– WHERE: expressões lógicas que envolvem os
campos das tabelas da cláusula FROM
• CONSULTAS: custo de processamento
3. Estrutura Básica das
Consultas SQL
• EXEMPLOS:
• Consulta precisa e menos custosa:
– SELECT nome, nascimento, cpf FROM clientes
WHERE cpf = ‘123456789’
• Consulta imprecisa e mais custosa:
– SELECT * FROM clientes;
4. A cláusula SELECT
• O resultado de uma consulta SQL é uma
tabela.
• Considere o banco de dados “mundo”
– cidade (Id, Nome, CodigoPais, Estado, Populacao)
– pais (Codigo, Nome, Contnente, Regiao, Area,
Populacao)
– linguapais (CodigoPais, Lingua, Ofcial,
Porcentagem)
5. A cláusula SELECT
• Encontre os nomes de todas as cidades na tabela cidade
– SELECT Nome FROM cidade;
• Encontre os nomes de todas as cidades na tabela cidade
eliminando registros duplicados
– SELECT DISTINCT Nome FROM cidade;
• Encontre os nomes de todas as cidades na tabela cidade
sem eliminar registros duplicados
– SELECT ALL Nome FROM cidade;
6. A cláusula SELECT
• Selecionar todos os campos (tudo)
– SELECT * FROM cidade;
• Usando expressões aritmétcas: +, -, * e /
– SELECT Nome, Populacao / 2 FROM cidade;
• Esse comando exibirá uma tabela com os campos
“Nome” e “Populacao”, porém o valor de
“Populacao” será dividido por 2.
7. A cláusula WHERE
• Encontre todos os nomes de cidades que tenham uma
população inferior a 100000
– SELECT Nome, Populacao FROM cidade WHERE Populacao <
100000;
• Conectvos AND, OR e NOT: utlizados como
subqualifcadores para o qualifcador WHERE.
• Operadores de comparação <, <=, >, >=, = e <>: utlizados
com strings e expressões aritmétcas além de tpos especiais
e tpos de data.
8. A cláusula WHERE
• Usar BETWEEN:
– SELECT Nome, Populacao FROM cidade WHERE Populacao
BETWEEN 90000 AND 100000;
• Em vez de:
– SELECT Nome, Populacao FROM cidade WHERE Populacao >=
90000 AND Populacao <= 100000;
• NOT BETWEEN:
– SELECT Nome, Populacao FROM cidade WHERE Populacao NOT
BETWEEN 60000 AND 70000;
9. Estrutura Básica das
Consultas SQL
• EXEMPLOS:
• Supondo que uma tabela “cidade” e uma tabela “pais”
contenham 1000 registros cada. Em uma consulta SQL,
o resultado de uma consulta sem condições lógicas para
delimitação envolvendo estas duas tabelas provocará a
exibição de 1.000.000 de registros como resultado:
• SELECT * FROM cidade, pais;
10. A cláusula FROM
• Encontre todas os nomes e população das cidades
e línguas do seu país
• SELECT cidade.Nome, cidade.Populacao,
linguapais.Linguagem FROM cidade, pais,
linguapais WHERE cidade.CodigoPais = pais.Codigo
AND pais.Codigo = linguapais.CodigoPais;
• Notação: nometabela.nome-campo
11. A cláusula FROM
• Encontre todos os nomes e população das
cidades e dos países que falem Português
• SELECT cidade.Nome, cidade.Populacao,
linguapais.Linguagem FROM cidade, pais,
linguapais WHERE cidade.CodigoPais =
pais.Codigo AND pais.Codigo =
linguapais.CodigoPais AND
linguaPais.Linguagem = "Português";
12. A operação de renomeação
e variáveis do registro
• Cláusula AS:
– nome-antgo AS nome-novo
• Exemplo:
– SELECT Nome, Populacao as PopulacaoDaCidade FROM
cidade;
• A cláusula AS pode ser usada para defnir variáveis de
registro, que deverão estar associadas a uma
determinada tabela.
13. A operação de renomeação
e variáveis do registro
• Encontre todos os nomes e população das
cidades e línguas do seu país
• SELECT C.Nome, C.Populacao, L.Linguagem
FROM cidade as C, pais as P, linguapais as L
WHERE C.CodigoPais = P.Codigo AND P.Codigo
= L.CodigoPais;
14. Operações de String
e Ordenação
• Encontre todos os nomes e população das
cidades e línguas do seu país
• SELECT C.Nome, C.Populacao, L.Linguagem
FROM cidade as C, pais as P, linguapais as L
WHERE C.CodigoPais = P.Codigo AND P.Codigo
= L.CodigoPais;
15. Operações de String
e Ordenação
• Operador LIKE:
– Determina a correspondência de padrões, que são
descritos usando caracteres especiais
– Porcentagem (%): corresponde a qualquer
substring.
– Sublinhado (_): corresponde a qualquer caractere.
16. Operações de String
e Ordenação
• Operador LIKE:
– Exemplos:
• ‘Sor%’ localizará qualquer string iniciando com “Sor”.
• ‘%or%’ localizará qualquer string iniciando contendo
“or”.
• ‘___’ localizará qualquer string com exatamente três
caracteres.
• ‘___%’ localizará qualquer string com pelo menos três
caracteres.
17. Operações de String
e Ordenação
• Operador LIKE:
– Exemplo:
• Encontre os nomes de todas as cidades na tabela
cidade com nomes iniciados por ‘Sor’
• SELECT Nome FROM cidade WHERE Nome like ‘Sor%’;
18. Operações de String
e Ordenação
• ORDER BY: controla os registros em relação à
sua ordenação pelo campo especifcado
• Encontre os nomes de todas as cidades na
tabela cidade, ordenadas por nome
• SELECT Nome FROM cidade ORDER BY Nome;
19. Operações de String
e Ordenação
• Encontre os nomes de todas as cidades na
tabela cidade ordenados por nome em ordem
decrescente
• SELECT Nome FROM cidade ORDER BY Nome
DESC;
20. Prátca
• USE world;
• SHOW TABLES;
• SHOW COLUMNS FROM nome-tabela;
• SHOW COLUMNS FROM city;
21. Prátca
• Encontre os nomes de todas as cidades na
tabela cidade com nomes iniciados por ‘Sor’
– SELECT Name FROM city WHERE Name LIKE ‘Sor%’;
• Encontre os nomes e a população de todas as
cidades com nomes iniciados por ‘Sor’
– SELECT Name, Populaton FROM city WHERE Name
LIKE ‘Sor%’;
22. Prátca
• Encontre os nomes, sua população e os países
em que se encontram, para todas as cidades
com nomes iniciados por ‘Sor’
– SELECT city.Name, city.Populaton, country.Name
FROM city, country WHERE city.Name LIKE 'Sor%'
AND city.CountryCode = country.Code;