0% acharam este documento útil (0 voto)
7 visualizações14 páginas

Exercícios SQL Iniciais com Respostas

O documento apresenta exercícios de SQL para iniciantes, incluindo a criação de tabelas e consultas SELECT. Ele fornece um exemplo de tabela de funcionários e várias consultas para extrair informações específicas, como funcionários por departamento, salários e datas de admissão. Além disso, inclui exercícios relacionados a um banco de dados de vendas, abordando a seleção e ordenação de dados em diferentes tabelas.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
7 visualizações14 páginas

Exercícios SQL Iniciais com Respostas

O documento apresenta exercícios de SQL para iniciantes, incluindo a criação de tabelas e consultas SELECT. Ele fornece um exemplo de tabela de funcionários e várias consultas para extrair informações específicas, como funcionários por departamento, salários e datas de admissão. Além disso, inclui exercícios relacionados a um banco de dados de vendas, abordando a seleção e ordenação de dados em diferentes tabelas.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Exercícios de SQL para Iniciantes / Exercícios Simples de SQL com Respostas /

Exercícios SQL para criação de tabelas simples e consultas SELECT

Pergunta:
[A] Criação de Tabela
Crie uma tabela de acordo com o esquema dado abaixo. Escolha os dados apropriados.
tipos ao criar a tabela. Insira os registros dados na Tabela 1 na
Tabela de funcionários. E, escreva consultas SQL para satisfazer as perguntas a seguir.
Employee (Emp_ID, Emp_Name, DoB, Department, Designation, DoJ, Salary)
Aqui, DoB significa Data de Nascimento, DoJ significa Data de Admissão.

Emp_ID Emp_Name DoB Departamento Designation DoJ Salário


F110 Sam 15-JUN- Biotecnologia Professor 12-APR-2001 45000
1970
F111 Kumar 25-MAI- Mecânico Prof. Adjunto 02-Maio- 30000
1980 2006
F115 Raguvaran 10-AGO- CSE Prof. Assistente 05-MAI- 27000
1982 2007
F114 Jennifer 10-SET-1975 CSE Prof. Assistente 03-JUN- 35000
2004
F117 Ismail 15-MAI- TI Prof. Assistente 10-MAI- 33000
1979 2005
Tabela 1–Funcionário

[B] Consultas
1. Exibir todos os registros da tabela Funcionário.
2. Encontre todos os funcionários que estão trabalhando para o departamento de CSE.

3. Obtenha os detalhes sobre os funcionários que ingressaram após '10-JUN-2005'.


4. Find all the employees who earn more than 30000.
5. Obtenha os detalhes dos funcionários que não são 'Professor'.
6. Find the name, date of birth, and designation of all the employees who work for
Departamento de TI.
7. Encontre todos os departamentos que estão oferecendo salários acima de 25000.

8. Get the DoB of employee named ‘Kumar’.


9. Encontre os nomes e departamentos dos funcionários que ganham salários na faixa
20000 a 40000.
10. Encontre os detalhes do empregado de qualquer empregado que trabalhe para 'CSE' e ganhe mais
do que 30000.
Answers:
[A] Criação de Tabela
A seguinte declaração CREATE TABLE irá criar a tabela de acordo com o
especificação dada na pergunta.
CRIAR TABELA Funcionário (
Emp_ID CHAR(3)
Emp_Name VARCHAR(30),
DATA DE NASCIMENTO

Departamento VARCHAR(20)
Designação VARCHAR(15)
DATA DoJ
Número do Salário(10,2);

Explicação:
Tudo o que está escrito em LETRAS MAIÚSCULAS são palavras-chave/palavras reservadas.

Diversos tipos de dados são usados para a declaração de vários atributos.


Tipo de dados CHAR usado para o atributo Emp_ID - conhecido o tamanho exato de qualquer
IDs de funcionários.
O tipo de dado VARCHAR é usado para Emp_Name, Departamento e Designação
atributos, porque os valores armazenados nessas colunas podem variar. Ou seja, para
exemplo, um nome teria apenas 3 caracteres ou 30 caracteres de comprimento.
O tipo de dado DATE utilizado para todos os atributos - para armazenar datas (Data de Nascimento e Data de Jogamento).
NÚMERO é usado para salário para armazenar valores salariais. Na declaração acima (10,
2) significa que quaisquer valores até o tamanho total de 10 dígitos, dos quais 2 dígitos
após o ponto decimal.
A instrução CREATE TABLE é terminada com ‘;’ como qualquer outra instrução em
SQL.

Inserção de Dados
Todos os registros apresentados na Tabela 1 podem ser inseridos usando o seguinte INSERT INTO
declaração.
INSERIR EM Funcionário VALORES ('F110', 'Sam', '15-JUN-1970', 'Bio-Tecnologia',
‘Professor’, ‘12-ABR-2001’, 45000);
Como mencionado acima, as palavras em LETRAS MAIÚSCULAS são palavras-chave/palavras reservadas.

Observe como as informações são especificadas para cada coluna. Você deve
mencione os valores na ordem em que você declarou os atributos no
mesa, com as seguintes regras simples;
Os valores dos atributos CHAR, VARCHAR e DATE devem ser fornecidos dentro de um par de
aspas simples.
As entradas NUMERO podem ser especificadas sem aspas.

[B] Consultas
Antes de entrar nas consultas SELECT, lembre-se da estrutura de uma consulta SELECT. Basicamente,
Precisamos de pelo menos duas cláusulas, SELECT e FROM, para escrever uma consulta completa. O
as perguntas acima precisam das cláusulas SELECT, FROM e WHERE. Veja abaixo para
as cláusulas com os parâmetros necessários;
SELECIONE */lista de atributos a serem incluídos no resultado
DA lista de uma ou mais tabelas
ONDE lista de condições E, OU ou Negada (NÃO)

1. Exibir todos os registros da tabela Funcionário.


Para a pergunta 1, precisamos escrever uma consulta que exiba toda a tabela. Para escrever
nesta consulta, precisamos apenas de duas cláusulas, SELECT e FROM, conforme segue;

SELECIONE * DO Funcionário;

O parâmetro da cláusula SELECT, '*' representa todas as colunas/atributos do


parâmetro de tabela que é dado na cláusula FROM. Você pode escrever a consulta em uma única
linha também.
O resultado é a Tabela 1 como está.
2. Encontre todos os funcionários que estão trabalhando para o departamento de CSE.

A Pergunta 2 inclui uma condição. A condição é 'os funcionários que trabalham para a CSE'
departamento'. Portanto, temos um parâmetro para a cláusula WHERE. O parâmetro dado
na cláusula WHERE tem uma forma;
Attribute_name θ value
Aqui, θ significaria qualquer operador de comparação válido (=, <, >, <=, >=, <>). Então, o
a consulta seria escrita da seguinte forma;

SELECIONE * DE Funcionário ONDE departamento = 'CSE';

Result:
Emp_ID Emp_Name DoB Departamento Designação DoJ Salário
F115 Raguvaran 10-AGO- CSE Prof. Assistente 05-MAI- 27000
1982 2007
F114 Jennifer 10-SET-1975 CSE Prof. Assistente 03-JUN- 35000
2004

3. Obtenha os detalhes sobre os funcionários que ingressaram após '10-JUN-2005'.


A condição dada na pergunta é Data de Admissão. A consulta é,
SELECIONAR * DA EMPRESA ONDE DoJ > '10-JUN-2005';
Result:
Emp_ID Emp_Name DoB Departamento Designação DoJ Salary
F111 Kumar 25-MAI- Mecânico Prof. Adjunto 02-MAI- 30000
1980 2006
F115 Raguvaran 10-AGO- CSE Prof. Associado 05-MAI- 27000
1982 2007

4. Encontre todos os funcionários que ganham mais de 30000.


A condição é sobre o atributo Salário.
SELECIONAR * DE Funcionário ONDE Salário > 30000;

Result:
Emp_ID Emp_Name Data de Nascimento
Departamento Designation DoJ Salário
F110 Sam 15-JUN- Biotecnologia Professor 12-APR-2001 45000
1970
F114 Jennifer 10-SET-1975 CSE Prof. Assistente 03-JUN- 35000
2004
F117 Ismail 15-MAY- TI Prof. Assistente 10-MAI- 33000
1979 2005

5. Get the details of employees who are not ‘Professor’.


A condição envolve o atributo Designação.
SELECIONE * DA EMPREGADO ONDE DESIGNAÇÃO <> 'Professor';
Result:
Emp_ID Emp_Name Data de Nascimento
Departamento Designação Departamento
Salary
de Justiça
F111 Kumar 25-MAI Mecânico Prof. Assistente 02-MAI- 30000
1980 2006
F115 Raguvaran 10-AGO- CSE Prof. Assistente 05-MAI- 27000
1982 2007
F114 Jennifer 10-SET-1975 CSE Prof. Assist. 03-JUN- 35000
2004
F117 Ismail 15-MAI- TI Prof. Assoc. 10-MAI- 33000
1979 2005

6. Encontre o nome, data de nascimento e cargo de todos os funcionários que trabalham


para o departamento de 'TI'.

A pergunta 6 é diferente de todas as 5 acima. Precisa de parâmetros diferentes.


do que *. Ou seja, precisamos exibir apenas quais colunas (atributos necessários). Nós
preciso exibir nome, data de nascimento e cargo de todos os registros de funcionários que atendem
a condição "Departamento = 'TI'".
SELECIONAR Nome_Do_Empregado, Data_de_Nascimento, Designação DO Empregado ONDE Departamento =

‘ELE’
Aqui, os parâmetros para a cláusula SELECT são separados por vírgulas (‘,’).
Result:
Emp_Name Data de Nascimento
Designation
Ismail 15-MAI-1979 Prof. Assist.

7. Encontre todos os departamentos que estão oferecendo salário acima de 25000.

Para esta pergunta precisamos exibir Departamentos. A condição a ser satisfeita é


Salário > 30000.
SELECIONARDepartamentoDEFuncionárioONDESalário > 25000;
Result:

Departamento
Biotecnologia
Mecânico
CSE
CSE
TI

8. Obtenha a data de nascimento do funcionário chamado 'Kumar'.

Precisamos da data de nascimento. A condição envolve o atributo Emp_Name.


SELECIONE DoB DE Funcionário ONDE Nome_Emp = 'Kumar';

Nota: Os parâmetros como a lista de nomes de atributos, a lista de nomes de tabelas, e


mesmo as palavras-chave são INSENSÍVEIS A MAIÚSCULAS. Mas, os valores literais especificados entre
o conjunto de aspas é SENSÍVEL A MAIÚSCULAS. Portanto, a consulta acima retornaria um
resultado apenas se você tiver um registro com o valor de Emp_Name como 'Kumar'. Se você tiver
'kumar', não pode incluir esse registro no resultado.
Result:

DoB
25-MAI-1980

9. Encontre os nomes e departamentos dos funcionários que ganham um salário na faixa


20000 a 40000.
Precisamos exibir as colunas Emp_Names e Departments. A condição é uma
faixa de valores (salário). Pode ser escrito de pelo menos duas maneiras;
(a)SELECIONAR Nome_Do_Administrador, Departamento DA Empregado ONDE Salário >= 20000
E Salário <= 40000;
(b)SELECIONAR Nome_Do_Empregado, Departamento DEFuncionarioONDESalario
ENTRE 20000 E 40000;
Aqui, você pode encontrar duas novidades. A primeira é como mencionamos duas ou
mais condições na cláusula WHERE usando o operador lógico AND. O segundo é
a palavra-chave BETWEEN, que é usada para mencionar uma faixa de valores. O simples
a sintaxe para isso seria a seguinte;

ONDE atributo ENTRE valor1 E valor2.
Result:

Emp_Name Departamento
Kumar Mecânico
Raguvaran CSE
Jennifer CSE
Ismail TI

10. Encontre os detalhes de qualquer funcionário que trabalhe para 'CSE' e ganhe mais.
do que 30000.
This question requires all the records from Employee table. The conditions are the
Departamento e Salário.
SELECIONE * DE Funcionário ONDE Departamento = 'CSE' E Salário >
30000;
Result:
Emp_ID Emp_Name Data de Nascimento
Departamento Designation DoJ Salary
F114 Jennifer 10-SET-1975 CSE Prof. Adj. 03-JUN- 35000
2004
Exercícios de SQL Simples com Respostas / Exercícios de SQL para Tabela Simples
consultas de criação e SELECT / Consultas envolvendo seleção, projeção
junções e cláusulas order by
Resolva e escreva as consultas necessárias para o caso abaixo;
Considere os esquemas de relação de um banco de dados de vendas apresentados abaixo. Chaves primárias de
todas as tabelas estão sublinhadas.

PART(Part_Number, Part_Description, Quantity_On_Hand, Class, Warehouse,


Price)
ORDERLINE(Order_Number, Part_Number_Ordered, Quantity_Ordered,
Quoted_Price)
ORDERS(Order_Number, Order_Date, Customer_Number)
CUSTOMER(Customer_Number, Last_Name, First_Name, Street, City, State,
Pincode, Balance, Credit_Limit, Sales_Representative_Number)
SALESREP(Sales_Representative_Number, Last_Name, First_Name, Street,
City, State, Pincode, Commission, Rate)

Escreva consultas SQL para alcançar o seguinte;


1. Display the Part_Number, Part_Description, Quantity_On_Hand, and Price of all the
partes em ordem ascendente de Descrição_da_Parte.
2. List down the Pincode, Last_name, Street, City, and State of every customer in the
ordem crescente do Pincode.
3. Produce a list showing Part_Number, Part_Description, Quantity_On_Hand, and
Preço ordenado por Armazém e Classe.
4. Liste todos os registros de ORDERLINE selecionando apenas as linhas onde o
Quantidade_Ordenada é maior ou igual a 2.
5. Liste todos os sobrenomes e nomes dos clientes cujo Limite_Crédito é menor que
igual a 10000.
6. Liste o Sobrenome e o Primeiro Nome dos clientes cujo Limite_Credito é maior
maior ou igual a 10000 e o código postal é 649219.
[Link] todas as peças que têm um Número_de_Parte que começa com 'B'
8. Encontre o número da peça, descrição da peça, número de peças solicitadas e o valor cotado
preço para cada parte que é encomendada.
9. List the Part_Number, Part_Description, Quantity_Ordered and Quoted_Price of all
as peças cujo Número_da_Peça começa com 'C'
[Link] the order number, date of order, of every order made by customer along with
the part numbers, part description, number of parts ordered and the quoted price
da parte.
[Link] o Número_do_Pedido, Data_do_Pedido, Número_da_Parte, Descrição_da_Parte,
Quantidade_Ordenada e Preço_Orçado de todos os pedidos onde a quantidade mínima
o pedido é de pelo menos 10.
[Link] o Sobrenome e o Primeiro Nome do Cliente seguidos pelo Número do Pedido,
Part_Description and Quantity_Ordered for all of his orders.
Answers:
Em todas as consultas, as palavras mencionadas em MAIÚSCULAS (exceto em tabelas) são
palavras-chave usadas em SQL.

1. Display the Part_Number, Part_Description, Quantity_On_Hand, and Price of all


the parts in ascending order of Part_Description.
O que precisamos exibir? (cláusula SELECT) Part_Number, Part_Description,
Quantity_On_Hand, and Price
De onde conseguimos isso? Tabela Parte
(Cláusula FROM)
Conditions (if any) Sem Condições
(cláusula WHERE)
Informação Especial Ordenar as tuplas por Descrição_da_Parte em ordem crescente
(Quaisquer outras cláusulas) pedido

Consulta:
SELECTPart_Number, Part_Description, Quantity_On_Hand, Price
DA Parte
ORDENAR POR Descrição_da_Parte;

2. List down the Pincode, Last_name, Street, City, and State of every customer in
a ordem crescente do Código Postal.
O que precisamos exibir? (cláusula SELECT) Pincode, Last_name, Street, City, and State of
cada cliente
Onde nós conseguimos isso? (Tabela/Tabelas) (DA tabela Cliente
Cláusula
Conditions (if any) Sem condições
(cláusula WHERE)
Informação Especial Ordene os registros pelo atributo Pincode em
(Quaisquer outras cláusulas) ordem ascendente

Consulta:
SELECIONAR Código_Postal, Sobrenome, Rua, Cidade, Estado

DECliente
ORDENAR POR Código Postal;

3. Produce a list showing Part_Number, Part_Description, Quantity_On_Hand, and


Preço classificado por armazém e classe.
O que precisamos exibir? Número_da_ peça,
(cláusula SELECT) Part_Description, Quantity_On_Hand, e
Preço das peças
Onde fazer nós tabela getPart
ele? (Tabela/Tabelas) (DE
Cláusula)
Conditions (if any) Sem Condições
(cláusula WHERE)
Informação Especial Ordenar por Armazém e Classe
(Quaisquer outras cláusulas) atributos em ordem crescente

Consulta:
SELECTPart_Number, Part_Description, Quantity_On_Hand, Price
DEPARTAMENTO

ORDER BY Armazém, Classe;


(Nota: Esta consulta ordenará todos os registros pelo atributo Armazém primeiro e, se houver mais registros com o mesmo
Os valores do armazém serão pedidos com base no valor da Classe em ordem crescente)

4. Liste todos os registros de ORDERLINE selecionando apenas as linhas onde o


Quantity_Ordered is greater than or equal to 2.
O que precisamos exibir? (SELECIONAR Tabela inteira, ou seja, todas as colunas. Portanto,
cláusula) usaríamos * para mencionar todos os
atributos.
Onde fazer nós tabela getOrderline
isso? (Tabela/Tabelas) (Cláusula FROM)
Conditions (if any) O número da peça do pedido deve ser
maior ou igual a zero, ou seja,
(cláusula WHERE)
Número_Parte_Pedido >=2
Informação Especial Nil
(Quaisquer outras cláusulas)

Consulta:
SELECIONE*
DEOREderline
ONDE Parte_Numero_Pedido >= 2;
[Link] todos os clientes com Last_Name e First_Name cujo Credit_Limit seja inferior a
igual a 10000.
O que precisamos exibir? (SELECIONE o sobrenome e o primeiro nome de)
cláusula customers
Onde conseguimos isso? (Tabela/Tabelas)Tabela de Clientes
(Cláusula FROM)
Condições (se houver) O valor do limite de crédito é <=10000

(cláusula WHERE)
Informação Especial Nil
(Quaisquer outras cláusulas)

Consulta:

SELECIONAR Sobrenome, Primeiro_Nome

DECliente
ONDE Limite_Crédito <= 10000;
6. Liste o Sobrenome e o Nome dos clientes cujo Limite_de_Crédito é maior que
maior ou igual a 10000 e o Código Postal é 649219.
O que precisamos exibir? (SELECIONE o sobrenome e o nome)
cláusula clientes
Onde conseguimos isso? Tabela de Clientes
(Cláusula FROM)
Conditions (if any) O valor do limite de crédito é >=10000

(cláusula WHERE) O código postal deve ser 649219

Informação Especial Nulo


(Quaisquer outras cláusulas)

Consulta:
SELECIONAR Sobrenome, Nome
DECliente
ONDE Limite_Crédito >= 10000 E CódigoPostal = 649219;

7. Exibir todas as peças que têm um Número_de_Parte que começa com 'B'
What we need to display? (SELECT * / All the columns
cláusula)
Onde conseguimos isso? Tabela de Peças
(Cláusula FROM)
Condições (se houver) Números de peça que começam com B. Para
exemplo, 'B101'
(cláusula WHERE)

Informações Especiais Nulo


(Quaisquer outras cláusulas)

Consulta:
SELECIONE*
DEPartes
WHERE Part_Number LIKE 'B%';
(Nota: na pergunta, a condição dada especifica uma parte do valor. Esse
ou seja, precisamos combinar uma substring dos valores reais. Portanto, temos que usar
a palavra-chave LIKE. LIKE combina a substring dada à direita dela com o
valores armazenados na coluna que está à esquerda do LIKE)

the
8. Encontre part number, part description, number of parts
quantidade_pedida e o preço cotado para cada peça que foi pedida.
O que precisamos exibir? (SELECIONAR Número da peça, descrição da peça, quantidade
cláusula) preço cotado e ordenado
Onde faça nós get1. Número_da_Parte e Descrição_da_Parte são
{"text":"it?"}
Tabela/Tabelas (DISPONÍVEL na Tabela PARTE.
Cláusula)
2. Quantidade_Ordenada e Preço_Orçado são
parte da tabela ORDERLINE.
Part_Number_Ordered attribute (estrangeiro
a chave) da tabela ORDERLINE refere-se ao
valor do atributo Part_Number da PEÇA
tabela.
Duas tabelas estão envolvidas - PART e
LINHA DE PEDIDO
Condições (se houver) Somente condição de junção (no caso de CARTESIAN)
Produto). Ou seja, os valores comuns
(cláusula WHERE) os atributos de ambas as tabelas devem ser
correspondido.
Informação Especial Nil
(Qualquer outra cláusula)

Consulta:
SELECTPart_Number, Part_Description, Quantity_Ordered, Quoted_Price
FROMPart, Orderline
WHEREPart.Part_Number = Orderline.Part_Number_Ordered;
(Nota: A notação de ponto 'Parte.Número_da_Parte' é usada porque em alguns casos o
atributos comuns podem ser nomeados com o mesmo nome de atributo. Para o acima
consulta, podemos até mencionar a condição WHERE como Parte_Número =
Número_Parte_Pedido, pois estes dois estão apontando para o mesmo domínio com diferentes
nomes.)
9. List the Part_Number, Part_Description, Quantity_Ordered and Quoted_Price of
todas as peças cujo Número_da_Peça começa com 'C'
What we need to display? (SELECT Part number, part description, quantity
cláusula) preço ordenado e cotado
Onde faça nós get1. Número_da_Parte e Descrição_da_Parte são
isso? (Tabela/Tabelas) (DISPONÍVEL na Tabela PARTE.
Cláusula)
2. Quantidade_Ordered e Preço_Quoted são
parte da tabela ORDERLINE.
Part_Number_Ordered attribute (estrangeiro
a chave) da tabela ORDERLINE refere-se ao
valor do atributo Part_Number da PEÇA
mesa.
Duas tabelas estão envolvidas - PART, e
LINHA DE PEDIDO
Conditions (if any) A primeira condição é a condição de junção (CARTESIANO
Produto) que corresponde aos valores de
(cláusula WHERE)
atributos comuns de ambas as tabelas.
A segunda condição menciona apenas a parte
números que começam com a letra 'C'.
Informação Especial Nada
(Quaisquer outras cláusulas)

Consulta:
SELECTPart_Number, Part_Description, Quantity_Ordered, Quoted_Price
FROMPart, Orderline
WHEREPart.Part_Number = Orderline.Part_Number_Ordered E Part_Number
COMO 'C%';
[Consulte a nota da Consulta 7]
10. Encontre o número do pedido, data do pedido de cada pedido feito pelo cliente ao longo
with the part numbers, part description, number of parts ordered and the quoted
preço da peça.
O que precisamos exibir? (SELECIONE Número do pedido, Data do pedido, Número da peça,
cláusula) Part description, Quantity ordered and
preço cotado
Onde fazer nós get1. Número_Part e Descrição_Part são
isso? Tabela/Tabelas (DISPONÍVEL na Tabela PARTE.
Cláusula
2. Quantidade_Ordenada e Preço_Oferecido são
parte da tabela ORDERLINE.
Part_Number_Ordered attribute (estrangeiro
a chave) da tabela ORDERLINE referencia o
valor do atributo Part_Number de PART
mesa.
3. Número_do_Pedido e Data_do_Pedido fazem parte
da tabela de PEDIDOS.

Atributo Order_Number (chave estrangeira) de


A tabela ORDERLINE refere-se ao Número_do_Pedido
atributo (Chave Primária) da tabela PEDIDO.
Três tabelas estão envolvidas –PART,
ORDERLINE and ORDER
Condições (se houver) Apenas a condição de junção (CARTESIAN
Produto) que corresponde aos valores de
(cláusula WHERE)
atributos comuns de todas as três tabelas.
Uma condição corresponde ao comum
atributos de PART e ORDERLINE e o
a segunda condição de junção corresponde ao comum
atributos das tabelas ORDERLINE e ORDER.
Informação Especial Nil
(Quaisquer outras cláusulas)

Consulta:
SELECIONAR Ordem.Número_da_Ordem, Order_Date, Part_Number, Part_Description,
Quantity_Ordered, Quoted_Price
DAOrdens, Peça, Linha de pedido
WHEREOrder.Order_Number = Orderline.Order_Number AND Part.Part_Number =
Orderline.Part_Number_Ordered;
(Nota: Observe na consulta acima a notação de ponto Order.Order_Number. Em
neste caso, devemos usar a notação de ponto e especificar a qual tabela nos referimos. Caso contrário,
isso causará ambiguidade. Ou seja, se usarmos Order_Number sem o prefixo no nome
do tabelo, o processador de consultas confundiu-se com o nome como Número do Pedido
disponível em ambas as tabelas PEDIDO e LINHA_DE_PEDIDO
11. List the Order_Number, Order_Date, Part_Number, Part_Description,
Quantidade_Pedida e Preço_Ofertado de todos os pedidos onde a quantidade mínima
o pedido é de pelo menos 10.
O que precisamos exibir? (SELECIONAR Número do pedido, Data do pedido, Número da peça,
cláusula) Part description, Quantity ordered and
preço cotado
Onde fazer nós get1. Número_da_Peça e Descrição_da_Peça são
isso? Mesa/Mesas (DISPONÍVEL na Tabela PARTE.
Cláusula)
2. Quantidade_Ordenada e Preço_Cotado são
parte da tabela ORDERLINE.
Part_Number_Ordered attribute (estrangeiro
key) of ORDERLINE table references the
valor do atributo Part_Number de PART
mesa.
3. Número_de_Pedido e Data_do_Pedido fazem parte
da tabela PEDIDO.
Atributo Order_Number (chave estrangeira) de
A tabela ORDERLINE refere-se ao Número_do_Pedido
atributo (Chave Primária) da tabela ORDER.
Três tabelas estão envolvidas –PART,
ORDERLINE and ORDER
Condições (se houver) Uma condição de junção corresponde ao comum
atributos de PART e ORDERLINE e o
(cláusula WHERE) a segunda condição de junção corresponde ao comum
atributos das tabelas ORDERLINE e ORDER.
A outra condição verifica para o
quantidade maior ou igual a 10.
TRÊS condições são usadas.
Special Information Nil
(Qualquer outra cláusula)

Consulta:
SELECIONAR Pedido.Número_do_Pedido, Order_Date, Part_Number, Part_Description,
Quantity_Ordered, Quoted_Price
FROMOrder, Part, Orderline
WHEREOrder.Order_Number = Orderline.Order_Number E Part.Part_Number =
Orderline.Part_Number_Ordered AND Quantity_Ordered >= 10;
[Link] o Sobrenome e Nome do Cliente seguido pelo
Order_Number, Part_Description and Quantity_Ordered for all of his orders.
O que precisamos exibir? (SELECIONE o sobrenome e o primeiro nome dos clientes,
cláusula) Order number, Part description, and
Quantidade encomendada

Onde fazer we get1. A Descrição_da_Part está disponível na Tabela


isso? Tabela/Tabelas (DA PARTE.
Cláusula)
2. Quantidade_Pedido é parte de LINHA_DO_PEDIDO
mesa.
Part_Number_Ordered attribute (estrangeiro
a chave) da tabela ORDERLINE faz referência ao
valor do atributo Part_Number da PEÇA
mesa.
3. O primeiro nome e o sobrenome do cliente são
parte da tabela CLIENTE.
Atributo Customer_Number (chave estrangeira) de
A tabela de PEDIDO se refere ao Número_do_Cliente
atributo (Chave Primária) da tabela CLIENTE.
CLIENTE e está vinculado a LINHA DE PEDIDO
apenas pela tabela ORDER.
Portanto, quatro tabelas estão envolvidas - PART,
ORDERLINE ORDER, and CUSTOMER
Condições (se houver) Uma condição de junção corresponde ao comum
atributos de PART e ORDERLINE, o
(cláusula WHERE) a segunda condição de junção corresponde ao comum
atributos das tabelas ORDERLINE e ORDER
a terceira condição de junção corresponde ao CLIENTE
com A ORDEM.
Três condições são utilizadas.

Special Information Nil


(Quaisquer outras cláusulas)

Consulta:
SELECIONE Sobrenome First_Name, Order.Order_Number, Part_Description,
Quantity_Ordered
FROMCustomer, Order, Orderline, Part
ONDE Cliente.Numero_do_Cliente = Order.Customer_Number E
Pedido.Numero_Do_Pedido = Linha_Do_Pedido.Numero_Do_Pedido E Numero_Do_Parte =
Part_Number_Ordered;
(Nota: Aqui, a condição Part_Number = Part_Number_Ordered está escrita
sem prefixar os nomes das tabelas, o que é válido)

Você também pode gostar