SQL – SELECT
BANCO DE DADOS
Prof.ª M.ª Elaine Cecília Gatto
03/06/2016Prof.ªM.ªElaineCecíliaGatto1
Introdução
• SQL:
• Linguagem do tipo declarativa
• Permite ao usuário expressar aquilo que
pretende sem ter que entrar em grandes
detalhes sobre a localização física dos
componentes, etc.
03/06/2016Prof.ªM.ªElaineCecíliaGatto2
Introdução
• Os usuários apenas indicam aquilo que
pretendem sem dizer exatamente de que
forma o computador terá que operar para
obter os resultados solicitados.
• Linguagens declarativas são mais
flexíveis: referenciam os seus elementos
através de um nome compreensível e não
através de uma posição física em disco ou
memória
03/06/2016Prof.ªM.ªElaineCecíliaGatto3
Introdução
• SQL é composta por:
• DML: data manipulation language ou
linguagem de manipulação de dados (select,
insert, etc.)
• DDL: data definition language ou linguagem
de definição de dados (create, alter, drop,
etc)
03/06/2016Prof.ªM.ªElaineCecíliaGatto4
Introdução
• SQL é orientada para o processamento de
conjuntos (set-based language)
• COBOL é orientada a processamento de
arquivos
• SELECT: comando usado para realizar
uma consulta ao banco de dados
relacional.
03/06/2016Prof.ªM.ªElaineCecíliaGatto5
SELECT
• SINTAXE
SELECT campo1, campo2, campo3, ... ,
campoN FROM tabela1, tabela2, ..., tabelaN
WHERE condição
GROUP BY ....
HAVING ....
ORDER BY ....
03/06/2016Prof.ªM.ªElaineCecíliaGatto6
SELECIONANDO TODOS OS
REGISTROS
• SINTAXE
SELECT codigo, localidade FROM
codigopostal;
03/06/2016Prof.ªM.ªElaineCecíliaGatto7
SELECIONANDO TODAS AS
COLUNAS
• SINTAXE
SELECT * FROM codigopostal;
SELECT * FROM pessoa;
• A ordem em que as colunas são
apresentadas é a ordem em que elas
foram colocadas na CLAUSULA SELECT
• Se usar o * é a ordem em que foram
03/06/2016Prof.ªM.ªElaineCecíliaGatto8
SELECIONANDO TODAS AS
COLUNAS
• Se quisermos alterar a ordem de
apresentação das colunas na saída da
consulta (resultado), então basta colocar
os nomes dos campos conforme se
deseja
• SELECT nome, id, idade, codigopostal,
telefone, salario FROM pessoa
• Pode-se ainda selecionar mais de uma
vez a mesma coluna
03/06/2016Prof.ªM.ªElaineCecíliaGatto9
PROJEÇÃO
• PROJEÇÃO: Obter apenas algumas das
colunas da tabela
• Especificar as colunas que deseja na
clausula select
03/06/2016Prof.ªM.ªElaineCecíliaGatto10
PROJEÇÃO
• EXEMPLO: escrever o comando SQL que
permite obter informação sobre a
IDENTIFICAÇÃO, o NOME e o CÓDIGO
POSTAL de todas as pessoas existentes
no banco de dados.
SELECT id, nome, codigopostal FROM
pessoa
03/06/2016Prof.ªM.ªElaineCecíliaGatto11
RESTRIÇÃO: where
• Permite restringir o número de linhas a
serem apresentadas
• Apenas serão apresentadas algumas das
linhas que contem a informação desejada
• Uma condição é um caso particular de
uma expressão que devolve sempre um
resultado do tipo lógico booleano
03/06/2016Prof.ªM.ªElaineCecíliaGatto12
RESTRIÇÃO: where
• EXEMPLO: selecionar todos os indivíduos da
tabela PESSOA
Select * from pessoa
Select * from pessoa where true
Select * from pessoa where 1
Select * from pessoa where 1 = 1
03/06/2016Prof.ªM.ªElaineCecíliaGatto13
RESTRIÇÃO: where
• EXEMPLO: fazer uma consulta à tabela
PESSOA, da qual não resulte qualquer
linha
• Para obter um resultado VAZIO, é
necessário especificar uma condição que
seja falsa para todos os registros
Select * from pessoa false
03/06/2016Prof.ªM.ªElaineCecíliaGatto14
RESTRIÇÃO: where
• Os SGBD não aceitam TRUE/FALSE,
apenas o ACCESS da Microsoft aceita!
• Select * from pessoa where id <> id
• Select * from pessoa where 1 <> 1
03/06/2016Prof.ªM.ªElaineCecíliaGatto15
OPERADORES RELACIONAIS
Operador Descrição Exemplo Resultado
= Igual a 7 = 5 FALSE
> Maior que 7 > 5 TRUE
< Menor que 7 < 5 FALSE
>= Maior ou igual a 7 >= 5 TRUE
<= Menor ou igual a 7 <= 5 FALSE
<> Ou != Diferente 7 != 5 FALSE
03/06/2016Prof.ªM.ªElaineCecíliaGatto16
Exemplo:
SELECT * FROM pessoa WHERE idade = 35
SELECT id, nome, salario FROM pessoa WHERE id >= 18
OPERADORES RELACIONAIS
• Exemplo: selecionar a descrição de todas
as mensagens cujo ID seja diferente de 20
SELECT mensagem FROM mensagem
WHERE id <> 20
03/06/2016Prof.ªM.ªElaineCecíliaGatto17
OPERADORES LÓGICOS
03/06/2016Prof.ªM.ªElaineCecíliaGatto18
OPERADOR EXEMPLO
AND CONDIÇÃO 1 AND CONDIÇÃO 2
OR CONDIÇÃO 1 OR CONDIÇÃO 2
NOT NOT CONDIÇÃO
EXEMPLO: selecionar o ID, o NOME, a Idade e o SALARIO de todas as pessoas com
idade entre 30 e 40 anos
Select id, idade, salario FROM pessoa WHERE idade >= 30 AND idade <= 40
EXEMPLO: selecionar o id, o nome, a idade e o salário de todas as pessoas que não
fazem parte da seleção anterior
SELECT id, nome, idade, salario FROM pessoa WHERE idade < 30 OR idade > 40
OPERADORES LÓGICOS
SELECT id, nome, idade, salario FROM
pessoa WHERE NOT (idade >= 30 AND
idade <= 40)
Select id, nome, idade, salario FROM
pessoa WHERE NOT idade >= 30 AND
idade <= 40
SELECT id, nome, idade, salario FROM
pessoa WHERE (NOT (idade >= 30)) AND
03/06/2016Prof.ªM.ªElaineCecíliaGatto19
BETWEEN
• Permite especificar intervalos de valores
• SINTAXE:
SELECT .... FROM .... WHERE valor
[NOT] BETWEEN valor1 AND valor2
03/06/2016Prof.ªM.ªElaineCecíliaGatto20
BETWEEN
• As seguintes condições são equivalentes
• valor >= valor1 AND valor <= valor2
• (valor >= valor1) AND (valor <= valor2)
• valor Between valor1 AND valor2
• valor NOT BETWEEN valor1 AND valor2
• NOT (valor >= valor1 AND valor <= valor2)
• NOT (valor BETWEEN valor1 AND valor2)
• NOT (valor >= valor1) OR NOT (valor <=
valor2)
03/06/2016Prof.ªM.ªElaineCecíliaGatto21
BETWEEN
• EXEMPLO: selecionar o ID, o nome, a
idade e o salário de todas as pessoas com
idade entre 30 e 40 anos
SELECT id, nome, idade, salario FROM
pessoa WHERE idade >= 30 AND idade <=
40
SELECT id, nome, idade, salario FROM
pessoa WHERE idade BETWEEN 30 and
03/06/2016Prof.ªM.ªElaineCecíliaGatto22
BETWEEN
• exemplo: selecionar o id, o nome, a idade e o salário
de todas as pessoas que não fazem parte da seleção
anterior
Select id, nome, idade, salario FROM pessoa WHERE
idade < 30 OR idade > 40
SELECT id, nome, idade, salario FROM pessoa WHERE
NOT (idade >= 30 AND idade <= 40)
SELECT id, nome, idade, salario FROM pessoa WHERE
idade NOT BETWEEN 30 AND 40
SELECT ide, nome, idade, salario FROM pessoa
WHERE NOT (idade BETWEEN 30 AND 40)
03/06/2016Prof.ªM.ªElaineCecíliaGatto23
IN
• Permite verificar se algo faz ou não parte
de um conjunto de valores especificado
entre parênteses
• SINTAXE:
SELECT ... FROM ... WHERE valor [NOT]
IN (valor1, valor2, ..., valor)
03/06/2016Prof.ªM.ªElaineCecíliaGatto24
IN
• Condições equivalentes
• Valor = 1 OR valor =2 OR valor 3
• Valor IN (1, 2, 3)
03/06/2016Prof.ªM.ªElaineCecíliaGatto25
IN
• EXEMPLO: selecionar a lista completa,
com todos os campos, de códigos postais
de Lisboa e tomar
SELECT * FROM postal WHERE localidade
= ‘LISBOA’ OR localidade = ‘TOMAR’
SELECT * FROM postal WHERE localidade
IN (‘LISBOA’, ‘TOMAR’)
03/06/2016Prof.ªM.ªElaineCecíliaGatto26
IN
• EXEMPLO: selecionar os códigos postais que não
pertencem a LISBOA nem a TOMAR
SELECT codigopostal, localidade FROM postal
WHERE localidade <> ‘LISBOA’ AND localidade =
‘TOMAR’
SELECT codigpostal, localidade FROM POSTAL
WHERE localidade NOT IN (‘LISBOA’, ‘TOMAR’)
SELECT localidade, códigopostal FROM postal
WHERE codigopostal NOT IN (1000, 1100, 1200,
03/06/2016Prof.ªM.ªElaineCecíliaGatto27
IS: tratamento de valores
nulos
• NULL:
• Valor especial que pode ser atribuído a
qualquer tipo de dados
• Quando presente em um campo indica
ausência de valor
• Permite indicar se existe ou não algum
valor já disponível para um determinado
03/06/2016Prof.ªM.ªElaineCecíliaGatto28
IS: tratamento de valores
nulos
• EXEMPLO:
• O valor ZERO não pode ser atribuído a
uma nota de aluno logo no inicio do
semestre. Se isso ocorrer, significa que o
aluno tirou ZERO naquela prova ou
trabalho, o que não é verdade!
03/06/2016Prof.ªM.ªElaineCecíliaGatto29
IS: tratamento de valores
nulos
• EXEMPLO:
• O valor ZERO não pode ser atribuído a
uma nota de aluno logo no inicio do
semestre. Se isso ocorrer, significa que o
aluno tirou ZERO naquela prova ou
trabalho, o que não é verdade!
03/06/2016Prof.ªM.ªElaineCecíliaGatto30
IS: tratamento de valores
nulos
• IS é o operador utilizado para realizar as
comparações com valores NULL
• SINTAXE
• SELECT ... FROM ... WHERE campo IS
[NOT] NULL
03/06/2016Prof.ªM.ªElaineCecíliaGatto31
IS: tratamento de valores
nulos
• Exemplo: selecionar os nomes e telefones
de todas as pessoas
• SELECT nome, telefone FROM pessoa
• Alguns SGBDs apresentam o NULL no
resultado, outros não!
03/06/2016Prof.ªM.ªElaineCecíliaGatto32
IS: tratamento de valores
nulos
• EXEMPLO: selecionar o nome das pessoas
SEM telefone
SELECT nome FROM pessoa WHERE
telefone IS NULL
• EXEMPLO: selecionar os nomes e os
telefones das pessoas COM telefone
SELECT nome, telefone FROM pessoa
03/06/2016Prof.ªM.ªElaineCecíliaGatto33
IS: tratamento de valores
nulos
• NULL não é zero e não é uma string vazia
• Uma comparação com NULL tem que ser
feita usando IS
• Se fizer isso, será devolvido para você
FALSE como resposta
• NULL é um indicador de inexistência de
03/06/2016Prof.ªM.ªElaineCecíliaGatto34
LIKE
• LIKE é usado para comparar STRINGS
• Permite resolver alguns problemas
naturais que existem quando se pretende
comparar strings
• Permite comparar partes da string
• A comparação de STRING com os
operadores relacionais utiliza sempre, na
03/06/2016Prof.ªM.ªElaineCecíliaGatto35
LIKE
• Exemplo: selecionar os códigos postais
associados a LISBOA
• SELECT * FROM codigopostal WHERE
localidade = ‘LISBOA’
03/06/2016Prof.ªM.ªElaineCecíliaGatto36
LIKE
• CARACTERES CORINGAS: usados para
comparar partes de strings
03/06/2016Prof.ªM.ªElaineCecíliaGatto37
Wildcard Significado
% Qualquer conjunto de zero ou mais caracteres
_ Um caractere qualquer
* Qualquer conjunto de zero ou mais caracteres
? Um caractere qualquer
LIKE
• EXEMPLO: selecionar todas as
mensagens começadas com T
SELECT * FROM mensagem WHERE
mensagem LIKE ‘T%’
SELECT * FROM mensagem WHERE
mensagem LIKE ‘T*’
03/06/2016Prof.ªM.ªElaineCecíliaGatto38
LIKE
• EXEMPLO: selecionar todas as
mensagens acabadas com ‘as’
SELECT * FROM mensagem WHERE
mensagem LIKE ‘%as’
SELECT * FROM mensagem WHERE
mensagem LIKE ‘*as’
03/06/2016Prof.ªM.ªElaineCecíliaGatto39
LIKE
• EXEMPLO: selecionar todas as
mensagens que contenham a palavra
‘vendas’ em qualquer parte da designação
SELECT * FROM mensagem WHERE
mensagem LIKE ‘%vendas%’
SELECT * FROM mensagem WHERE
mensagem LIKE ‘*vendas*’
03/06/2016Prof.ªM.ªElaineCecíliaGatto40
LIKE
• EXEMPLO: selecionar todas as
mensagens que contenham a string ‘te’
SELECT * FROM mensagem WHERE
mensagem LIKE ‘*te*’
SELECT * FROM mensagem WHERE
mensagem LIKE ‘%te%’
03/06/2016Prof.ªM.ªElaineCecíliaGatto41
LIKE
• EXEMPLO: selecionar todos os nomes
que contenham a string ‘DA’
SELECT * nome FROM pessoa WHERE
nome LIKE ‘%da%’
SELECT * nome FROM pessoa WHERE
nome LIKE ‘*da*’
03/06/2016Prof.ªM.ªElaineCecíliaGatto42
LIKE
• EXEMPLO: selecionar todos os NOMES que
NÃO contenham a string ‘da’
SELECT nome FROM pessoa WHERE nome
NOT LIKE ‘%da%’
SELECT nome FROM pessoa WHERE NOT
(nome LIKE ‘*da*’)
SELECT nome FROM pessoa WHERE NOT
(nome LIKE ‘%da%’)
03/06/2016Prof.ªM.ªElaineCecíliaGatto43
LIKE
• EXEMPLO: selecionar todos os nomes
cujo segundo caracteres é um ‘a’
SELECT nome FROM pessoa WHERE
nome LIKE ‘_a%’
SELECT nome FROM pessoa WHERE
nome LIKE ‘?a*’
03/06/2016Prof.ªM.ªElaineCecíliaGatto44
LIKE
• Quando precisar pesquisar os próprios
caracteres coringas, usar a sintaxe abaixo
• String [NOT] LIKE ‘padrão_de_pesquisa’
ESCAPE ‘caractere’
• Exemplo: selecionar todas as mensagens
que contenham o caractere ‘%’
03/06/2016Prof.ªM.ªElaineCecíliaGatto45
LIKE
• SELECT mensagem FROM mensagem
WHERE mensagem LIKE ‘%@%%’ ESCAPE
‘@’
• SELECT mensagem FROM mensagem
WHERE mensagem LIKE ‘%=%%’ ESCAPE
‘=’
• % - qualquer conjunto de caracteres à
esquerda
03/06/2016Prof.ªM.ªElaineCecíliaGatto46
LIKE
03/06/2016Prof.ªM.ªElaineCecíliaGatto47
Wildcard DESCRIÇÃO
‘[abc]%’ Qualquer string começada obrigatoriamente por a, b ou c
‘[!abc]%’ Qualquer string não começada por a, b ou c
‘[0-9]%[abc]’ String começada por um digito e terminada pelo caractere a, b ou c
‘[a-zA-Z]_’ String formada unicamente por dois caracteres.
O primeiro é um caractere alfabético minúsculo ou maiúsculo.
O segundo é um caractere qualquer
‘[!0-9]%’ O primeiro caractere não pode ser digito
‘Al[m-r]%’ String começada por Al.
O terceiro caractere terá de estar entre os caracteres ‘m’ e ‘r’
Depois pode aparecer qualquer string
‘Al[m-r]%[!0-9]’ String começada por Al.
O terceiro caractere terá de estar entre os caracteres ‘m’ e ‘r’
Depois pode aparecer qualquer string
No entanto, o último caractere não pode ser numérico
Precedência de operadores
Parenteses
Multiplicação e divisão
Adição e subtração
NOT
AND
OR
03/06/2016Prof.ªM.ªElaineCecíliaGatto48
Precedência de operadores
• EXEMPLOS:
• SELECT * FROM pessoa WHERE idade
<= 27 OR idade >= 30 AND telefone IS
NULL
• SELECT * FROM pessoa WHERE idade
<= 27 OR (idade >= 30 AND telefone IS
NULL)
03/06/2016Prof.ªM.ªElaineCecíliaGatto49

Mais conteúdo relacionado

PPTX
PowerPoint – Aula 27
PPT
Apresentação automação residencial final
PDF
Kontrabanda
PDF
부평오피&영통오피,수원오피@&lt;다솜넷>인천오피
PDF
Comunicado no 013 2013
DOC
2 b-2主讲教师-孙良
DOCX
2013-08-20 Thesis Final Copy
PowerPoint – Aula 27
Apresentação automação residencial final
Kontrabanda
부평오피&영통오피,수원오피@&lt;다솜넷>인천오피
Comunicado no 013 2013
2 b-2主讲教师-孙良
2013-08-20 Thesis Final Copy

Destaque (20)

ODP
21 Trends For Nurse Practitioners In 2016
PDF
Trabajo colaborativo nrc 870
PPTX
doble nucleo
PDF
강남오피&범계오피,안산오피@&lt;다솜넷>수내역오피
PDF
2016 - Banco de Dados NoSQL e Dados Geográficos
DOC
ο μαγικός κόσμος του τσίρκου
PPTX
Planejamento - Mídia - Garoto
PPTX
Smocking machine
ODP
Fortes Papo Developer
PPTX
Liquidos en pediatria
PDF
HTML5: where flash isn't needed anymore
PPTX
HTML5 - (02) Estrutura Básica - DOCTYPE e Charsets
PDF
Referencial de competências Chave - Guia de operacionalização
PPTX
HTML5 - (04) Novos Elementos e Atributos
PPTX
HTML5 - (03) Modelos de Conteúdo
PDF
Lições Práticas de Semântica com HTML5 — 2º evento HTML5PT
PDF
Livro o-voo-da-serpente-emplumada-historia-de-judas
PDF
HTML5 - A nova era da Web
PPTX
HTML5 - (01) Visão Geral do HTML5
PPT
1071
21 Trends For Nurse Practitioners In 2016
Trabajo colaborativo nrc 870
doble nucleo
강남오피&범계오피,안산오피@&lt;다솜넷>수내역오피
2016 - Banco de Dados NoSQL e Dados Geográficos
ο μαγικός κόσμος του τσίρκου
Planejamento - Mídia - Garoto
Smocking machine
Fortes Papo Developer
Liquidos en pediatria
HTML5: where flash isn't needed anymore
HTML5 - (02) Estrutura Básica - DOCTYPE e Charsets
Referencial de competências Chave - Guia de operacionalização
HTML5 - (04) Novos Elementos e Atributos
HTML5 - (03) Modelos de Conteúdo
Lições Práticas de Semântica com HTML5 — 2º evento HTML5PT
Livro o-voo-da-serpente-emplumada-historia-de-judas
HTML5 - A nova era da Web
HTML5 - (01) Visão Geral do HTML5
1071
Anúncio

Mais de Elaine Cecília Gatto (20)

PDF
Exercícios resolvidos de MIPS Portal Embarcados
PDF
Exercicio Resolvido de Busca Binária com Codigo e Imagens
PDF
A influência da Tecnologia em cada faixa etaria
PPTX
Inteligência Artificial Aplicada à Medicina
PPTX
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
PPTX
Apresentação da minha tese de doutorado no EPPC
PDF
entrevista r7.pdf
PPTX
Como a pesquisa científica impacta o mundo real.pptx
PDF
Empoderamento Feminino
PPTX
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
PPTX
Community Detection for Multi-Label Classification - Seminários UFSCar
PPTX
Classificação Multirrótulo: Aprendizado de Correlações
PDF
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
PPTX
Community Detection Method for Multi-Label Classification
PDF
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
PDF
Curtinhas de sábado.pdf
PDF
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
PDF
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
PDF
Pipeline desdobramento escalonamento
PDF
Cheat sheet Mips 32 bits
Exercícios resolvidos de MIPS Portal Embarcados
Exercicio Resolvido de Busca Binária com Codigo e Imagens
A influência da Tecnologia em cada faixa etaria
Inteligência Artificial Aplicada à Medicina
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Apresentação da minha tese de doutorado no EPPC
entrevista r7.pdf
Como a pesquisa científica impacta o mundo real.pptx
Empoderamento Feminino
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Community Detection for Multi-Label Classification - Seminários UFSCar
Classificação Multirrótulo: Aprendizado de Correlações
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Community Detection Method for Multi-Label Classification
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Curtinhas de sábado.pdf
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
Pipeline desdobramento escalonamento
Cheat sheet Mips 32 bits
Anúncio

Último (20)

PPT
Os Grandes Períodos Históricos UESC 2009.1
PPTX
entorseestadodechoque. Aula de primeiros socorros
PPTX
AULA 01 - INTRODUÇÃO AO ATENDIMENTO HUMANIZADO.pptx
PPTX
A enfermagem voltada aos adultos portadores de sindrome de down
PPTX
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
PPTX
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
DOCX
PLANEJAMENTO APOIO 3º B 2025 1º MÉDIO ARTE E TEATRO.docx
PPTX
02-simulado-saeb-9o-ano-matematica1.pptx
PPTX
São João Eudes, 1601 – 1680, padre e fondador, Francés.pptx
PDF
morfologia5.pdfllllllllllllllllllllllllllll
PPTX
DOUTRINA FORÇA TÁTICA PMRO 2022 - PPT (1).pptx
PDF
DECISÃO (2).pdf Derrota histórica do Sintero expõe racha interno e fragilidad...
PDF
APOSTILA PARA FORMAÇÃO E RECICLAGEM DE VIGILANTES.pdf
PPTX
Treinamento de Espaço Confinado_Trabalhadores e Vigias NR 33.pptx
PDF
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
PPTX
AULA 5 - HIGIENE HOSPITALAR .pptx
PPTX
Concordância Nominal e Verbal e atividade
PPTX
5° LP AULAO SHOW - SPAECE - FOCO_20231029_101331_0000.pptx
PDF
Reino Monera - Biologiaensinomediofun.pdf
PDF
Mudanças Climáticas. Texto e atividade
Os Grandes Períodos Históricos UESC 2009.1
entorseestadodechoque. Aula de primeiros socorros
AULA 01 - INTRODUÇÃO AO ATENDIMENTO HUMANIZADO.pptx
A enfermagem voltada aos adultos portadores de sindrome de down
125511 - Aula 1 - América portuguesa antes da conquista patrimônio e preserva...
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
PLANEJAMENTO APOIO 3º B 2025 1º MÉDIO ARTE E TEATRO.docx
02-simulado-saeb-9o-ano-matematica1.pptx
São João Eudes, 1601 – 1680, padre e fondador, Francés.pptx
morfologia5.pdfllllllllllllllllllllllllllll
DOUTRINA FORÇA TÁTICA PMRO 2022 - PPT (1).pptx
DECISÃO (2).pdf Derrota histórica do Sintero expõe racha interno e fragilidad...
APOSTILA PARA FORMAÇÃO E RECICLAGEM DE VIGILANTES.pdf
Treinamento de Espaço Confinado_Trabalhadores e Vigias NR 33.pptx
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
AULA 5 - HIGIENE HOSPITALAR .pptx
Concordância Nominal e Verbal e atividade
5° LP AULAO SHOW - SPAECE - FOCO_20231029_101331_0000.pptx
Reino Monera - Biologiaensinomediofun.pdf
Mudanças Climáticas. Texto e atividade

SQL parte 2

  • 1. SQL – SELECT BANCO DE DADOS Prof.ª M.ª Elaine Cecília Gatto 03/06/2016Prof.ªM.ªElaineCecíliaGatto1
  • 2. Introdução • SQL: • Linguagem do tipo declarativa • Permite ao usuário expressar aquilo que pretende sem ter que entrar em grandes detalhes sobre a localização física dos componentes, etc. 03/06/2016Prof.ªM.ªElaineCecíliaGatto2
  • 3. Introdução • Os usuários apenas indicam aquilo que pretendem sem dizer exatamente de que forma o computador terá que operar para obter os resultados solicitados. • Linguagens declarativas são mais flexíveis: referenciam os seus elementos através de um nome compreensível e não através de uma posição física em disco ou memória 03/06/2016Prof.ªM.ªElaineCecíliaGatto3
  • 4. Introdução • SQL é composta por: • DML: data manipulation language ou linguagem de manipulação de dados (select, insert, etc.) • DDL: data definition language ou linguagem de definição de dados (create, alter, drop, etc) 03/06/2016Prof.ªM.ªElaineCecíliaGatto4
  • 5. Introdução • SQL é orientada para o processamento de conjuntos (set-based language) • COBOL é orientada a processamento de arquivos • SELECT: comando usado para realizar uma consulta ao banco de dados relacional. 03/06/2016Prof.ªM.ªElaineCecíliaGatto5
  • 6. SELECT • SINTAXE SELECT campo1, campo2, campo3, ... , campoN FROM tabela1, tabela2, ..., tabelaN WHERE condição GROUP BY .... HAVING .... ORDER BY .... 03/06/2016Prof.ªM.ªElaineCecíliaGatto6
  • 7. SELECIONANDO TODOS OS REGISTROS • SINTAXE SELECT codigo, localidade FROM codigopostal; 03/06/2016Prof.ªM.ªElaineCecíliaGatto7
  • 8. SELECIONANDO TODAS AS COLUNAS • SINTAXE SELECT * FROM codigopostal; SELECT * FROM pessoa; • A ordem em que as colunas são apresentadas é a ordem em que elas foram colocadas na CLAUSULA SELECT • Se usar o * é a ordem em que foram 03/06/2016Prof.ªM.ªElaineCecíliaGatto8
  • 9. SELECIONANDO TODAS AS COLUNAS • Se quisermos alterar a ordem de apresentação das colunas na saída da consulta (resultado), então basta colocar os nomes dos campos conforme se deseja • SELECT nome, id, idade, codigopostal, telefone, salario FROM pessoa • Pode-se ainda selecionar mais de uma vez a mesma coluna 03/06/2016Prof.ªM.ªElaineCecíliaGatto9
  • 10. PROJEÇÃO • PROJEÇÃO: Obter apenas algumas das colunas da tabela • Especificar as colunas que deseja na clausula select 03/06/2016Prof.ªM.ªElaineCecíliaGatto10
  • 11. PROJEÇÃO • EXEMPLO: escrever o comando SQL que permite obter informação sobre a IDENTIFICAÇÃO, o NOME e o CÓDIGO POSTAL de todas as pessoas existentes no banco de dados. SELECT id, nome, codigopostal FROM pessoa 03/06/2016Prof.ªM.ªElaineCecíliaGatto11
  • 12. RESTRIÇÃO: where • Permite restringir o número de linhas a serem apresentadas • Apenas serão apresentadas algumas das linhas que contem a informação desejada • Uma condição é um caso particular de uma expressão que devolve sempre um resultado do tipo lógico booleano 03/06/2016Prof.ªM.ªElaineCecíliaGatto12
  • 13. RESTRIÇÃO: where • EXEMPLO: selecionar todos os indivíduos da tabela PESSOA Select * from pessoa Select * from pessoa where true Select * from pessoa where 1 Select * from pessoa where 1 = 1 03/06/2016Prof.ªM.ªElaineCecíliaGatto13
  • 14. RESTRIÇÃO: where • EXEMPLO: fazer uma consulta à tabela PESSOA, da qual não resulte qualquer linha • Para obter um resultado VAZIO, é necessário especificar uma condição que seja falsa para todos os registros Select * from pessoa false 03/06/2016Prof.ªM.ªElaineCecíliaGatto14
  • 15. RESTRIÇÃO: where • Os SGBD não aceitam TRUE/FALSE, apenas o ACCESS da Microsoft aceita! • Select * from pessoa where id <> id • Select * from pessoa where 1 <> 1 03/06/2016Prof.ªM.ªElaineCecíliaGatto15
  • 16. OPERADORES RELACIONAIS Operador Descrição Exemplo Resultado = Igual a 7 = 5 FALSE > Maior que 7 > 5 TRUE < Menor que 7 < 5 FALSE >= Maior ou igual a 7 >= 5 TRUE <= Menor ou igual a 7 <= 5 FALSE <> Ou != Diferente 7 != 5 FALSE 03/06/2016Prof.ªM.ªElaineCecíliaGatto16 Exemplo: SELECT * FROM pessoa WHERE idade = 35 SELECT id, nome, salario FROM pessoa WHERE id >= 18
  • 17. OPERADORES RELACIONAIS • Exemplo: selecionar a descrição de todas as mensagens cujo ID seja diferente de 20 SELECT mensagem FROM mensagem WHERE id <> 20 03/06/2016Prof.ªM.ªElaineCecíliaGatto17
  • 18. OPERADORES LÓGICOS 03/06/2016Prof.ªM.ªElaineCecíliaGatto18 OPERADOR EXEMPLO AND CONDIÇÃO 1 AND CONDIÇÃO 2 OR CONDIÇÃO 1 OR CONDIÇÃO 2 NOT NOT CONDIÇÃO EXEMPLO: selecionar o ID, o NOME, a Idade e o SALARIO de todas as pessoas com idade entre 30 e 40 anos Select id, idade, salario FROM pessoa WHERE idade >= 30 AND idade <= 40 EXEMPLO: selecionar o id, o nome, a idade e o salário de todas as pessoas que não fazem parte da seleção anterior SELECT id, nome, idade, salario FROM pessoa WHERE idade < 30 OR idade > 40
  • 19. OPERADORES LÓGICOS SELECT id, nome, idade, salario FROM pessoa WHERE NOT (idade >= 30 AND idade <= 40) Select id, nome, idade, salario FROM pessoa WHERE NOT idade >= 30 AND idade <= 40 SELECT id, nome, idade, salario FROM pessoa WHERE (NOT (idade >= 30)) AND 03/06/2016Prof.ªM.ªElaineCecíliaGatto19
  • 20. BETWEEN • Permite especificar intervalos de valores • SINTAXE: SELECT .... FROM .... WHERE valor [NOT] BETWEEN valor1 AND valor2 03/06/2016Prof.ªM.ªElaineCecíliaGatto20
  • 21. BETWEEN • As seguintes condições são equivalentes • valor >= valor1 AND valor <= valor2 • (valor >= valor1) AND (valor <= valor2) • valor Between valor1 AND valor2 • valor NOT BETWEEN valor1 AND valor2 • NOT (valor >= valor1 AND valor <= valor2) • NOT (valor BETWEEN valor1 AND valor2) • NOT (valor >= valor1) OR NOT (valor <= valor2) 03/06/2016Prof.ªM.ªElaineCecíliaGatto21
  • 22. BETWEEN • EXEMPLO: selecionar o ID, o nome, a idade e o salário de todas as pessoas com idade entre 30 e 40 anos SELECT id, nome, idade, salario FROM pessoa WHERE idade >= 30 AND idade <= 40 SELECT id, nome, idade, salario FROM pessoa WHERE idade BETWEEN 30 and 03/06/2016Prof.ªM.ªElaineCecíliaGatto22
  • 23. BETWEEN • exemplo: selecionar o id, o nome, a idade e o salário de todas as pessoas que não fazem parte da seleção anterior Select id, nome, idade, salario FROM pessoa WHERE idade < 30 OR idade > 40 SELECT id, nome, idade, salario FROM pessoa WHERE NOT (idade >= 30 AND idade <= 40) SELECT id, nome, idade, salario FROM pessoa WHERE idade NOT BETWEEN 30 AND 40 SELECT ide, nome, idade, salario FROM pessoa WHERE NOT (idade BETWEEN 30 AND 40) 03/06/2016Prof.ªM.ªElaineCecíliaGatto23
  • 24. IN • Permite verificar se algo faz ou não parte de um conjunto de valores especificado entre parênteses • SINTAXE: SELECT ... FROM ... WHERE valor [NOT] IN (valor1, valor2, ..., valor) 03/06/2016Prof.ªM.ªElaineCecíliaGatto24
  • 25. IN • Condições equivalentes • Valor = 1 OR valor =2 OR valor 3 • Valor IN (1, 2, 3) 03/06/2016Prof.ªM.ªElaineCecíliaGatto25
  • 26. IN • EXEMPLO: selecionar a lista completa, com todos os campos, de códigos postais de Lisboa e tomar SELECT * FROM postal WHERE localidade = ‘LISBOA’ OR localidade = ‘TOMAR’ SELECT * FROM postal WHERE localidade IN (‘LISBOA’, ‘TOMAR’) 03/06/2016Prof.ªM.ªElaineCecíliaGatto26
  • 27. IN • EXEMPLO: selecionar os códigos postais que não pertencem a LISBOA nem a TOMAR SELECT codigopostal, localidade FROM postal WHERE localidade <> ‘LISBOA’ AND localidade = ‘TOMAR’ SELECT codigpostal, localidade FROM POSTAL WHERE localidade NOT IN (‘LISBOA’, ‘TOMAR’) SELECT localidade, códigopostal FROM postal WHERE codigopostal NOT IN (1000, 1100, 1200, 03/06/2016Prof.ªM.ªElaineCecíliaGatto27
  • 28. IS: tratamento de valores nulos • NULL: • Valor especial que pode ser atribuído a qualquer tipo de dados • Quando presente em um campo indica ausência de valor • Permite indicar se existe ou não algum valor já disponível para um determinado 03/06/2016Prof.ªM.ªElaineCecíliaGatto28
  • 29. IS: tratamento de valores nulos • EXEMPLO: • O valor ZERO não pode ser atribuído a uma nota de aluno logo no inicio do semestre. Se isso ocorrer, significa que o aluno tirou ZERO naquela prova ou trabalho, o que não é verdade! 03/06/2016Prof.ªM.ªElaineCecíliaGatto29
  • 30. IS: tratamento de valores nulos • EXEMPLO: • O valor ZERO não pode ser atribuído a uma nota de aluno logo no inicio do semestre. Se isso ocorrer, significa que o aluno tirou ZERO naquela prova ou trabalho, o que não é verdade! 03/06/2016Prof.ªM.ªElaineCecíliaGatto30
  • 31. IS: tratamento de valores nulos • IS é o operador utilizado para realizar as comparações com valores NULL • SINTAXE • SELECT ... FROM ... WHERE campo IS [NOT] NULL 03/06/2016Prof.ªM.ªElaineCecíliaGatto31
  • 32. IS: tratamento de valores nulos • Exemplo: selecionar os nomes e telefones de todas as pessoas • SELECT nome, telefone FROM pessoa • Alguns SGBDs apresentam o NULL no resultado, outros não! 03/06/2016Prof.ªM.ªElaineCecíliaGatto32
  • 33. IS: tratamento de valores nulos • EXEMPLO: selecionar o nome das pessoas SEM telefone SELECT nome FROM pessoa WHERE telefone IS NULL • EXEMPLO: selecionar os nomes e os telefones das pessoas COM telefone SELECT nome, telefone FROM pessoa 03/06/2016Prof.ªM.ªElaineCecíliaGatto33
  • 34. IS: tratamento de valores nulos • NULL não é zero e não é uma string vazia • Uma comparação com NULL tem que ser feita usando IS • Se fizer isso, será devolvido para você FALSE como resposta • NULL é um indicador de inexistência de 03/06/2016Prof.ªM.ªElaineCecíliaGatto34
  • 35. LIKE • LIKE é usado para comparar STRINGS • Permite resolver alguns problemas naturais que existem quando se pretende comparar strings • Permite comparar partes da string • A comparação de STRING com os operadores relacionais utiliza sempre, na 03/06/2016Prof.ªM.ªElaineCecíliaGatto35
  • 36. LIKE • Exemplo: selecionar os códigos postais associados a LISBOA • SELECT * FROM codigopostal WHERE localidade = ‘LISBOA’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto36
  • 37. LIKE • CARACTERES CORINGAS: usados para comparar partes de strings 03/06/2016Prof.ªM.ªElaineCecíliaGatto37 Wildcard Significado % Qualquer conjunto de zero ou mais caracteres _ Um caractere qualquer * Qualquer conjunto de zero ou mais caracteres ? Um caractere qualquer
  • 38. LIKE • EXEMPLO: selecionar todas as mensagens começadas com T SELECT * FROM mensagem WHERE mensagem LIKE ‘T%’ SELECT * FROM mensagem WHERE mensagem LIKE ‘T*’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto38
  • 39. LIKE • EXEMPLO: selecionar todas as mensagens acabadas com ‘as’ SELECT * FROM mensagem WHERE mensagem LIKE ‘%as’ SELECT * FROM mensagem WHERE mensagem LIKE ‘*as’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto39
  • 40. LIKE • EXEMPLO: selecionar todas as mensagens que contenham a palavra ‘vendas’ em qualquer parte da designação SELECT * FROM mensagem WHERE mensagem LIKE ‘%vendas%’ SELECT * FROM mensagem WHERE mensagem LIKE ‘*vendas*’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto40
  • 41. LIKE • EXEMPLO: selecionar todas as mensagens que contenham a string ‘te’ SELECT * FROM mensagem WHERE mensagem LIKE ‘*te*’ SELECT * FROM mensagem WHERE mensagem LIKE ‘%te%’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto41
  • 42. LIKE • EXEMPLO: selecionar todos os nomes que contenham a string ‘DA’ SELECT * nome FROM pessoa WHERE nome LIKE ‘%da%’ SELECT * nome FROM pessoa WHERE nome LIKE ‘*da*’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto42
  • 43. LIKE • EXEMPLO: selecionar todos os NOMES que NÃO contenham a string ‘da’ SELECT nome FROM pessoa WHERE nome NOT LIKE ‘%da%’ SELECT nome FROM pessoa WHERE NOT (nome LIKE ‘*da*’) SELECT nome FROM pessoa WHERE NOT (nome LIKE ‘%da%’) 03/06/2016Prof.ªM.ªElaineCecíliaGatto43
  • 44. LIKE • EXEMPLO: selecionar todos os nomes cujo segundo caracteres é um ‘a’ SELECT nome FROM pessoa WHERE nome LIKE ‘_a%’ SELECT nome FROM pessoa WHERE nome LIKE ‘?a*’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto44
  • 45. LIKE • Quando precisar pesquisar os próprios caracteres coringas, usar a sintaxe abaixo • String [NOT] LIKE ‘padrão_de_pesquisa’ ESCAPE ‘caractere’ • Exemplo: selecionar todas as mensagens que contenham o caractere ‘%’ 03/06/2016Prof.ªM.ªElaineCecíliaGatto45
  • 46. LIKE • SELECT mensagem FROM mensagem WHERE mensagem LIKE ‘%@%%’ ESCAPE ‘@’ • SELECT mensagem FROM mensagem WHERE mensagem LIKE ‘%=%%’ ESCAPE ‘=’ • % - qualquer conjunto de caracteres à esquerda 03/06/2016Prof.ªM.ªElaineCecíliaGatto46
  • 47. LIKE 03/06/2016Prof.ªM.ªElaineCecíliaGatto47 Wildcard DESCRIÇÃO ‘[abc]%’ Qualquer string começada obrigatoriamente por a, b ou c ‘[!abc]%’ Qualquer string não começada por a, b ou c ‘[0-9]%[abc]’ String começada por um digito e terminada pelo caractere a, b ou c ‘[a-zA-Z]_’ String formada unicamente por dois caracteres. O primeiro é um caractere alfabético minúsculo ou maiúsculo. O segundo é um caractere qualquer ‘[!0-9]%’ O primeiro caractere não pode ser digito ‘Al[m-r]%’ String começada por Al. O terceiro caractere terá de estar entre os caracteres ‘m’ e ‘r’ Depois pode aparecer qualquer string ‘Al[m-r]%[!0-9]’ String começada por Al. O terceiro caractere terá de estar entre os caracteres ‘m’ e ‘r’ Depois pode aparecer qualquer string No entanto, o último caractere não pode ser numérico
  • 48. Precedência de operadores Parenteses Multiplicação e divisão Adição e subtração NOT AND OR 03/06/2016Prof.ªM.ªElaineCecíliaGatto48
  • 49. Precedência de operadores • EXEMPLOS: • SELECT * FROM pessoa WHERE idade <= 27 OR idade >= 30 AND telefone IS NULL • SELECT * FROM pessoa WHERE idade <= 27 OR (idade >= 30 AND telefone IS NULL) 03/06/2016Prof.ªM.ªElaineCecíliaGatto49