[1] O documento apresenta um workshop sobre SQL que ensina a selecionar dados de tabelas usando operadores como LIKE, EXISTS e =. [2] O cenário é um banco de dados sobre epidemias mundiais gerenciado pela Organização Mundial da Saúde. [3] Exercícios pedem para escrever consultas SQL que retornem informações sobre países, pessoas e infecções de acordo com os critérios pedidos.
Fundamentos de SQL - Workshop 1 respondido e comentado
1. CENTRO UNIVERSITÁRIO UNA
PRÓ-REITORIA DE PÓS-GRADUAÇÃO, PESQUISA E EXTENSÃO
CURSO DE EXTENSÃO
Fundamentos de SQL - Microsoft
SQL Server 2005
Professor: Emiliano Eloi Silva Barbosa
Workshop 1
respondido e comentado
Belo Horizonte
2011
Curso de Extensão – Fundamentos de SQL – Microsoft SQL Server 2005
2. Workshop 1 – Selecionando dados
Nesse workshop você fará algumas pesquisas utilizando nos predicados, os
operadores: LIKE, EXISTS, ‘=’. E colocará em prática as Cláusulas SELECT,
FROM, WHERE.
Cenário:
Empresa: Organização mundial da Saúde (OMS)
Base de dados: BD_EPIDEMIAS
Função: Controle estatístico sobre as epidemias mundiais.
Diagrama
TBL_PAISES TBL_VIRUS
ID_PAIS ID_VIRUS
NM_NOME_PAIS NM_NOME_VIRUS
NM_NOME_CIENTIFICO
TBL_PESSOAS
TBL_INFECCOES
ID_PESSOA
ID_INFECCAO
NM_NOME_PESSOA
ID_PESSOA
NM_EMAIL_PESSOA
ID_VIRUS
ID_NACIONALIDADE
DATA_INFECCAO
Curso de Extensão – Fundamentos de SQL – Microsoft SQL Server 2005
3. Dados
TBL_PAISES
ID_PAIS NM_NOME_PAIS
1 Estados Unidos
2 México
3 Canadá
4 Espanha
5 Inglaterra
TBL_VIRUS
ID_VIRUS NM_NOME_VIRUS NM_NOME_CIENTIFICO
1 A H1N1
TBL_PESSOAS
ID_PESSOA NM_NOME_PESSOA ID_NACIONALIDADE
1AMANDA DELFINO 2
2ANDERSON CRISTINA RIBEIRO 2
3BRIGIDA PEREIRA COSTA 2
4DARLAN ROESBERG MENDES 1
5DAYLON BAQUER 1
6ELIFAS VAITSMAN MARQUES 3
FAGNER DIEGO DE SOUZA
7 SANTOS 5
8 EMILIANO LOURENÇO PINTO 3
TBL_INFECCOES
ID_INFECCAO ID_PESSOA ID_VIRUS DATA_INFECCAO
1 1 1 2009-04-01
2 2 1 2009-04-02
3 5 1 2009-04-04
4 8 1 2009-04-04
Curso de Extensão – Fundamentos de SQL – Microsoft SQL Server 2005
4. Atividades
1) Escreva uma instrução SQL que retorne todas as
pessoas com nacionalidade mexicana.
Resposta:
SELECT ID_PESSOA,
NM_NOME_PESSOA
FROM TBL_PESSOAS
WHERE ID_NACIONALIDADE = 2
2) Escreva uma instrução SQL que retorne todas as
pessoas que tenha a letra ‘d’ no seu nome.
Resposta:
SELECT ID_PESSOA,
NM_NOME_PESSOA
FROM TBL_PESSOAS
WHERE NM_NOME_PESSOA LIKE ‘%d%’
3) Qual o retorno das instruções SQL a seguir:
a.
SELECT ID_INFECCAO,
ID_PESSOA,
ID_VIRUS,
DATA_INFECCAO
FROM TBL_INFECCOES
WHERE ID_VIRUS = 2
Resposta:
Nada é retornado, pois não existe um vírus com o código 2.
b.
SELECT NM_NOME_PESSOA
FROM TBL_PESSOAS
WHERE EXISTS(SELECT ID_INFECCAO
FROM TBL_INFECCOES
WHERE ID_PESSOA = 7)
Resposta:
Nada é retornado, pois não existe uma pessoa infectada com
o código 7.
Curso de Extensão – Fundamentos de SQL – Microsoft SQL Server 2005
5. c.
SELECT NM_NOME_PAIS
FROM TBL_PAISES
WHERE NM_NOME_PAIS LIKE '_an%'
Resposta:
3 Canadá
4) (Porfia!) Escreva uma instrução que retorne todas as
pessoas com nacionalidade mexicana caso existe
alguma infectada.
Resposta:
SELECT ID_PESSOA,
NM_NOME_PESSOA
FROM TBL_PESSOAS
WHERE ID_NACIONALIDADE = 2
AND EXISTS(SELECT ID_INFECCAO
FROM TBL_INFECCOES
WHERE ID_PESSOA IN (SELECT ID_PESSOA
FROM TBL_PESSOAS
WHERE ID_NACIONALIDADE = 2))
Curso de Extensão – Fundamentos de SQL – Microsoft SQL Server 2005