SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
SQL – SELECT
BANCO DE DADOS
Prof.ª M.ª Elaine Cecília Gatto
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 1
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.
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 2
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 3
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)
• DCL: data control language ou linguagem de
controle de dados (grant, revoke, etc)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 4
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.
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 5
SELECT
• SINTAXE
SELECT campo1, campo2, campo3, ... , campoN
FROM tabela1, tabela2, ..., tabelaN
WHERE condição
GROUP BY ....
HAVING ....
ORDER BY ....
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 6
SELECIONANDO TODOS OS REGISTROS
• SINTAXE
SELECT codigo, localidade FROM codigopostal;
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 7
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 criadas
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 8
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 9
PROJEÇÃO
• PROJEÇÃO: Obter apenas algumas das colunas
da tabela
• Especificar as colunas que deseja na clausula
select
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 10
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 11
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 12
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 13
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 14
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 15
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 16
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 17
OPERADORES LÓGICOS
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 18
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 (idade <= 40)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 19
BETWEEN
• Permite especificar intervalos de valores
• SINTAXE:
SELECT .... FROM .... WHERE valor
[NOT] BETWEEN valor1 AND valor2
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 20
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)
• valor < valor1 OR valor > valor2
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 21
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 40
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 22
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)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 23
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)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 24
IN
• Condições equivalentes
• Valor = 1 OR valor =2 OR valor 3
• Valor IN (1, 2, 3)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 25
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’)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 26
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, 1500, 2300)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 27
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 campo
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 28
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!
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 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!
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 30
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 31
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!
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 32
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 WHERE telefone IS
NOT NULL
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 33
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 valor
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 34
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 comparação, a
totalidade da string
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 35
LIKE
• Exemplo: selecionar os códigos postais
associados a LISBOA
• SELECT * FROM codigopostal WHERE
localidade = ‘LISBOA’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 36
LIKE
• CARACTERES CORINGAS: usados para
comparar partes de strings
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 37
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*’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 38
LIKE
• EXEMPLO: selecionar todas as mensagens
acabadas com ‘as’
SELECT * FROM mensagem WHERE mensagem
LIKE ‘%as’
SELECT * FROM mensagem WHERE mensagem
LIKE ‘*as’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 39
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*’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 40
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%’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 41
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*’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 42
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%’)
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 43
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*’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 44
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 ‘%’
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 45
LIKE
• SELECT mensagem FROM mensagem WHERE
mensagem LIKE ‘%@%%’ ESCAPE ‘@’
• SELECT mensagem FROM mensagem WHERE
mensagem LIKE ‘%=%%’ ESCAPE ‘=’
• % - qualquer conjunto de caracteres à esquerda
• @% - seguido do caractere %
• % seguido de qualquer conjunto de caracteres à
direita
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 46
LIKE
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 47
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
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 48
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)
• SELECT * FROM pessoa WHERE (idade <= 27 OR
idade >= 30) AND telefone IS NULL
21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 49

Más contenido relacionado

La actualidad más candente

Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
Adriano Teixeira de Souza
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
Adriano Teixeira de Souza
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
samuelthiago
 

La actualidad más candente (20)

Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Aula04
Aula04Aula04
Aula04
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 

Similar a PBD Select e restrições para Select (11)

SQL parte 2
SQL parte 2SQL parte 2
SQL parte 2
 
SQL
SQLSQL
SQL
 
Banco dedados aula002
Banco dedados aula002Banco dedados aula002
Banco dedados aula002
 
BD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DMLBD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DML
 
Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018Programação em Banco de Dados - Aula 06/09/2018
Programação em Banco de Dados - Aula 06/09/2018
 
08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados08 LabMM4 - Bases de dados
08 LabMM4 - Bases de dados
 
LabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuaçãoLabMM4 (T08 - 12/13) - SQL continuação
LabMM4 (T08 - 12/13) - SQL continuação
 
Sql junções
Sql junçõesSql junções
Sql junções
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - Filtros
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)
 

Más de Elaine Cecília Gatto

Más de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
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...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Último (20)

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 

PBD Select e restrições para Select

  • 1. SQL – SELECT BANCO DE DADOS Prof.ª M.ª Elaine Cecília Gatto 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 1
  • 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. 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 2
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 3
  • 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) • DCL: data control language ou linguagem de controle de dados (grant, revoke, etc) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 4
  • 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. 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 5
  • 6. SELECT • SINTAXE SELECT campo1, campo2, campo3, ... , campoN FROM tabela1, tabela2, ..., tabelaN WHERE condição GROUP BY .... HAVING .... ORDER BY .... 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 6
  • 7. SELECIONANDO TODOS OS REGISTROS • SINTAXE SELECT codigo, localidade FROM codigopostal; 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 7
  • 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 criadas 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 8
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 9
  • 10. PROJEÇÃO • PROJEÇÃO: Obter apenas algumas das colunas da tabela • Especificar as colunas que deseja na clausula select 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 10
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 11
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 12
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 13
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 14
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 15
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 16 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 17
  • 18. OPERADORES LÓGICOS 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 18 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 (idade <= 40) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 19
  • 20. BETWEEN • Permite especificar intervalos de valores • SINTAXE: SELECT .... FROM .... WHERE valor [NOT] BETWEEN valor1 AND valor2 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 20
  • 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) • valor < valor1 OR valor > valor2 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 21
  • 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 40 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 22
  • 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) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 23
  • 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) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 24
  • 25. IN • Condições equivalentes • Valor = 1 OR valor =2 OR valor 3 • Valor IN (1, 2, 3) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 25
  • 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’) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 26
  • 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, 1500, 2300) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 27
  • 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 campo 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 28
  • 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! 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 29
  • 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! 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 30
  • 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 31
  • 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! 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 32
  • 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 WHERE telefone IS NOT NULL 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 33
  • 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 valor 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 34
  • 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 comparação, a totalidade da string 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 35
  • 36. LIKE • Exemplo: selecionar os códigos postais associados a LISBOA • SELECT * FROM codigopostal WHERE localidade = ‘LISBOA’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 36
  • 37. LIKE • CARACTERES CORINGAS: usados para comparar partes de strings 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 37 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*’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 38
  • 39. LIKE • EXEMPLO: selecionar todas as mensagens acabadas com ‘as’ SELECT * FROM mensagem WHERE mensagem LIKE ‘%as’ SELECT * FROM mensagem WHERE mensagem LIKE ‘*as’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 39
  • 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*’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 40
  • 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%’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 41
  • 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*’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 42
  • 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%’) 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 43
  • 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*’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 44
  • 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 ‘%’ 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 45
  • 46. LIKE • SELECT mensagem FROM mensagem WHERE mensagem LIKE ‘%@%%’ ESCAPE ‘@’ • SELECT mensagem FROM mensagem WHERE mensagem LIKE ‘%=%%’ ESCAPE ‘=’ • % - qualquer conjunto de caracteres à esquerda • @% - seguido do caractere % • % seguido de qualquer conjunto de caracteres à direita 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 46
  • 47. LIKE 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 47 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 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 48
  • 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) • SELECT * FROM pessoa WHERE (idade <= 27 OR idade >= 30) AND telefone IS NULL 21/09/2018 Prof.ª M.ª Elaine Cecília Gatto 49