Buscar

IBD Aula 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Implementação de Banco de Dados Aula 2
Professor Daniel Silos - 5ª edição - 2016
dsilos@live.estacio.br
Estrutura Básica de Consultas
• SQL é baseada em operações de conjuntos e
operações relacionais com certas modificações e
avanços
• Uma consulta SQL típica tem o formato: :
SELECT A1, A2, ..., An
FROM r1, r2, ..., rm
WHERE P;
– Ai - atributo
– Ri - relação
– P - predicativo.
• O resultado de uma consulta SQL é uma relação; 
Diagrama Lógico SHARKS
ESPECIE (IDEspecie, Nome_Cientifico, 
CorDorso, CorVentre, CorBarbatana, Descricao, 
Foto, Denticao, TamMenor, 
TamMaior,TamMedio,Tam_Medio_Filhote, 
Status_Extincao, Habitat, TipoReproducao, 
TipoFocinho).
PAIS (CODPais, NomePais).
Esquema do Banco de Dados Shark:
Esp_Pais (IDEspecie, CODPais)
Nome (IDNome, IDEspecie, NomePopular)
Tubarao (IDTubarao, IDEspecie, Comprimento, 
Sexo) 
Esquema do Banco de Dados Shark:
Area (CodArea, NomeArea)
Local (CODLocal, CODArea, NomeLocal)
Captura (NUMCaptura, IDTubarao, CODLocal, 
LATITUDE, LONGITUDE, DATA, TempAgua)
Esquema do Banco de Dados Shark:
A cláusula SELECT
• Lista os atributos desejados no resultado de uma consulta
• Exemplo: encontre o nome científico de todas as espécies 
de tubarões cadastradas na relação ESPECIE:
SELECT Nome_Cientifico
FROM ESPECIE;
• NOTA: nomes em SQL não são caso sensitivo (isto é, você 
pode utilizar letras em caixa alta ou caixa baixa). 
• Exemplo: nome_cientifico≡ NOME_CIENTIFICO ≡ 
nome_Cientifico ≡ Nome_cientifico.
Amostra do resultado:
• SQL permite duplicatas de relações em 
resultados de consultas.
• Para forçar a eliminação de duplicatas, insira a 
palavra DISTINCT após SELECT.
• A palavra ALL especifica que as duplicatas não 
serão removidas. ALL ocorre por default. 
Exemplos do Estudo de Caso – Sharks
SELECT SEXO FROM TUBARAO; ou SELECT ALL SEXO FROM TUBARAO; 
SELECT DISTINCT SEXO 
FROM TUBARAO;
.
.
.
• Um asterisco na cláusula SELECT denota “todos os 
atributos”
SELECT *
FROM ESPECIE;
• A cláusula SELECT pode conter expressões aritméticas 
envolvendo os operadores +, –, , e /, e operação de 
restrição em atributos de tuplas.
• A consulta
SELECT COMPRIMENTO * 39.3700787 
FROM TUBARAO;
retornará uma relação com valores de comprimento de 
tubarões convertidos de metros para polegadas (1 m = 
39,37007787 polegadas). 
SELECT * FROM ESPECIE; 
OBS: NA ILUSTRAÇÃO É EXIBIDA UMA AMOSTRA
A cláusula WHERE
• A cláusula WHERE especifica condições que o 
resultado precisa satisfazer. 
Exemplo:
SELECT IDEspecie, Nome_Cientifico, CorDorso, 
CorVentre, Denticao FROM ESPECIE WHERE
CorVentre = 'branco amarelado';
OBS: Preste atenção, pois embora 
SELECT IDEspecie, Nome_Cientifico, 
CorDorso, CorVentre, Denticao FROM
ESPECIE WHERE CorVentre = 'branco 
amarelado' 
seja idêntico a: 
SELECT IDESPECIE, NOME_CIENTIFICO, 
CORDORSO, CORVENTRE, DENTICAO FROM
ESPECIE WHERE CORVENTRE = 'branco 
amarelado';
SELECT IDEspecie, Nome_Cientifico, CorDorso, 
CorVentre, Denticao FROM ESPECIE WHERE
CorVentre = 'branco amarelado' 
não é idêntico a: 
SELECT IDEspecie, Nome_Cientifico, CorDorso, 
CorVentre, Denticao FROM ESPECIE WHERE
CorVentre = ‘Branco Amarelado' 
Os valores armazenados em determinado 
campo são caso sensitivos, embora o SQL não 
seja. É sempre bom prestar atenção! 
Podemos evitar uma confusão 
utilizando a função UPPER. 
Exemplo:
SELECT IDESPECIE, NOME_CIENTIFICO, 
CORDORSO, CORVENTRE, DENTICAO 
FROM ESPECIE 
WHERE UPPER(CorVentre) = 'BRANCO 
AMARELADO';
Ou a função LOWER. Exemplo:
SELECT IDESPECIE, NOME_CIENTIFICO, 
CORDORSO, CORVENTRE, DENTICAO 
FROM ESPECIE 
WHERE LOWER(CorVentre) = 'branco 
amarelado';
Dica:
Evite digitar comandos em SQL no Word,
Wordpad ou Bloco de Notas e depois copiar o
código para um editor SQL. Alguns caracteres
como o apóstrofo (‘) são diferentes. Procure
fazer o oposto, isto é, digite no editor SQL e
depois cole em um editor de preferência.
Em aula prática de laboratório você pode salvar
os arquivos de extensão “.sql” criados no SQL
Developer para um pendrive ou salvar na
nuvem ou enviá-los para si mesmo por e-mail.
Mais Exemplos:
SELECT IDESPECIE, NOME_CIENTIFICO, CORDORSO, 
CORVENTRE, DENTICAO 
FROM ESPECIE 
WHERE Denticao = 'pontiagudos';
SELECT NOME_CIENTIFICO, TamMenor, 
TamMaior, TamMedio, Tam_medio_Filhote
FROM Especie
WHERE TamMenor < 1.2;
SELECT NOME_CIENTIFICO, TamMenor, 
TamMaior, TamMedio, Tam_medio_Filhote
FROM Especie
WHERE Tam_Medio_Filhote >= 0.7;
Operador de comparação BETWEEN
SELECT NOME_CIENTIFICO, TamMenor, TamMaior, 
TamMedio, Tam_medio_Filhote
FROM Especie
WHERE TamMedio BETWEEN 3 AND 5;
A cláusula WHERE
• Resultados comparativos podem ser combinados 
utilizando-se conectores lógicos AND, OR e NOT. 
• Comparações podem ser aplicadas em 
resultados de expressões aritméticas. 
EXEMPLOS:
SELECT NOME_CIENTIFICO, TamMenor, TamMaior, 
TamMedio, Tam_medio_Filhote
FROM Especie
WHERE TamMedio NOT BETWEEN 1 AND 4;
SELECT NOME_CIENTIFICO, TamMenor, TamMaior, 
TamMedio, Tam_medio_Filhote
FROM Especie
WHERE Tam_Medio_Filhote >= 0.7 OR TamMedio > 4;
SELECT NOME_CIENTIFICO, TamMenor, TamMaior, 
TamMedio, Tam_medio_Filhote
FROM Especie
WHERE Tam_Medio_Filhote >= 0.7 AND TamMedio > 4;
O operador de renomeação (ALIAS)
• O SQL permite renomear atributos (colunas) 
utilizando a cláusula AS :
velho_nome AS novo_nome
SELECT NOME_CIENTIFICO AS "NOME CIENTÍFICO", 
TamMenor AS MENOR, TamMaior AS MAIOR, 
TamMedio AS "TAMANHO MÉDIO", 
Tam_medio_Filhote AS "TAMANHO MÉDIO DOS 
FILHOTES"
FROM Especie
WHERE Tam_Medio_Filhote >= 0.7 AND
TAMMEDIO > 4;
O AS, todavia, é opcional. Logo a consulta abaixo retorna 
o mesmo resultado da anterior:
SELECT NOME_CIENTIFICO "NOME CIENTÍFICO", TamMenor
MENOR, TamMaior MAIOR, TamMedio "TAMANHO MÉDIO", 
Tam_medio_Filhote "TAMANHO MÉDIO DOS FILHOTES"
FROM Especie
WHERE Tam_Medio_Filhote >= 0.7 AND TAMMEDIO > 4;
Variáveis de tabelas
• Variáveis de tabelas são definidas por meio da cláusula 
FROM e do uso da cláusula AS.
• OBS: No Oracle, a cláusula AS precisa ser ignorada como 
variável de tabela. Ex: Encontre os nomes populares e o 
nome científico da espécie de id igual a ‘010003’.
SELECT NOMEPOPULAR, NOME_CIENTIFICO
FROM ESPECIE E, NOME N
WHERE E.IDESPECIE = N.IDESPECIE AND E.IDESPECIE = 
'010003';
Operações de STRING
• SQL inlui um operador de strings para comparações 
entre strings. 
• O operador LIKE usa padrões que se utilizam de dois 
caracteres: 
– percentagem (%). O caractere % corresponde a qualquer substring.
– underscore (_). O caractere _ corresponde a qualquer caractere.
• Encontre o nome popular de todos os tubarões 
iniciados com a letra “T”:
SELECT NOMEPOPULAR FROM NOME WHERE
NOMEPOPULAR LIKE 'T%';
Mais exemplos:
Encontre o nome popular de todos os tubarões 
terminados com a letra “d”:
SELECT NOMEPOPULAR FROM NOME WHERE 
NOMEPOPULAR LIKE '%d';
Mais exemplos:
Encontre o nome popular de todos os tubarões 
que tem a sequencia “bra” em qualquer parte do 
nome:
SELECT NOMEPOPULAR FROM NOME WHERE
NOMEPOPULAR LIKE '%bra%';
SELECT IDESPECIE, NOME_CIENTIFICO, 
CORDORSO, CORVENTRE, DENTICAO 
FROM ESPECIE 
WHERE Denticao LIKE 'pontiagudos';
• SQL suporta uma variedade de operações 
de string tais como
– concatenação (utilizando “||”)
– conversão de caixa alta para caixa baixa (e vice 
versa) - UPPER e LOWER já comentados.
– Outros.
• Exemplo de Concatenação:
SELECT IDESPECIE, NOME_CIENTIFICO, TamMenor ||' - '|| 
TamMedio || ' - ' || TamMaior "Tamanhos Menor, Médio 
e Maior " FROM Especie WHERE IDEspecie < '013011';
Ordenandoa visualização de tuplas
• Podemos especificar DESC para ordem 
decrescente ou ASC para ordem crescente, para 
cada atributo; ordem crescente é o default.
– Exemplo: ORDER BY nome_cliente DESC
Exemplo:
SELECT NOMEPOPULAR FROM NOME
WHERE NOMEPOPULAR LIKE 'G%' ORDER BY
NOMEPOPULAR ;
Exemplo:
SELECT NOMEPOPULAR FROM NOME
WHERE NOMEPOPULAR LIKE 'G%' ORDER BY 
NOMEPOPULAR DESC;
Operador IN
Exemplo: A instrução abaixo apresenta o mesmo resultado que a 
instrução do próximo slide. 
SELECT IDEspecie, Nome_Cientifico, Denticao
FROM ESPECIE WHERE Denticao = 'pequenos' OR
Denticao = 'pontiagudos';
SELECT IDEspecie, Nome_Cientifico, Denticao
FROM ESPECIE WHERE Denticao
IN('pequenos','pontiagudos');
Referências
– SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. 
A. Sistema de banco de dados. 5ª ed. Rio de Janeiro: 
Campus, 2006 
– ELMASRI, R.; NAVATHE, S., Sistemas de Banco de Dados. 
Pearson Education do Brasil, 8ª.Ed 2011. 
– Esquema de banco de dados faz parte de um banco de
dados criado a partir de um conjunto de dados públicos de
captura de tubarões dos anos de 2001 a 2015 na costa da
Austrália. Os dados podem ser baixados no endereço:
https://data.qld.gov.au/dataset/shark-control-program-shark-catch-
statistics/resource/5c6be990-3938-4125-8cca-dac0cd734263
– OBS: As duas primeiras referências fazem parte do material didático e devem ser
utilizados pelos alunos para uma maior compreensão dos conceitos abordados nesta
aula.

Continue navegando