Você está na página 1de 29

UNIVERSIDADE PRIVADA DE TACNA

FACULDADE DE ENGENHARIA

Escola Profissional de Engenharia de Sistemas

PRÁTICA 7 CONSULTAS SQL

Curso: Design de Banco de Dados

Professor: Eng. Oliver Santana Carbajal

Aluno:

Villa Puma, Brayan (2015052787)

Tacna – Peru

2021-I
Consultas sobre uma tabela
1. Lista o nome de todos os produtos na tabela de produtos.

SELECIONAR nome

DO produto
2. Liste os nomes e preços de todos os produtos na tabela de produtos.

SELECIONE nome, preço

DO produto

3. Liste todas as colunas na tabela de produtos.

SELECIONAR*

DO produto

4. Liste o nome dos produtos, o preço em euros e o preço em dólares americanos (USD).

SELECIONE nome, preço, preço * 1,15

DO produto

5. Liste o nome dos produtos, o preço em euros e o preço em dólares americanos (USD). Use os
seguintes aliases para colunas: nome do produto, euros, dólares.

SELECIONE o nome COMO 'nome do produto', preço AS euros, preço * 1,15 AS dólares

DO produto
6. Lista os nomes e preços de todos os produtos na tabela de produtos, convertendo os nomes
em maiúsculas.

SELECT UPPER(nome), preço

DO produto

7. Lista os nomes e preços de todos os produtos na tabela de produtos, convertendo os nomes


em minúsculas.

SELECIONE LOWER(nome), preço

DO produto

8. Liste o nome de todos os fabricantes em uma coluna e, em outra, coloque em maiúsculas os


dois primeiros caracteres do nome do fabricante.

SELECT name, UPPER(SUBSTR(name, 1, 2))

DO fabricante

9. Liste os nomes e preços de todos os produtos na tabela de produtos, arredondando o valor do


preço.

SELECIONE nome, ROUND(preço)

DO produto
10. Liste os nomes e preços de todos os produtos na tabela de produtos, truncando o valor do
preço para exibi-lo sem casas decimais.

SELECIONE nome, TRUNCATE(preço)

DO produto

11. Liste o código dos fabricantes que possuem produtos na tabela Produto.

SELECIONE codigo_fabricante

DO produto

12. Liste o código dos fabricantes que possuem produtos na tabela de produtos, eliminando os
códigos que aparecem repetidos.

SELECIONE codigo_fabricante DISTINTOS

DO produto

13. Liste os nomes dos fabricantes em ordem crescente.

SELECIONAR nome

DO fabricante

ENCOMENDAR PELO nome ASC

14. Liste os nomes dos fabricantes em ordem decrescente.

SELECIONAR nome

DO fabricante

ORDEM POR DESC nome


15. Enumere os nomes dos produtos ordenados em primeiro lugar pelo nome de forma
crescente e em segundo lugar pelo preço sob forma decrescente.

SELECIONE nome, preço

DO produto

ORDEM POR NOME ASC, PREÇO DESC

16. Retorna uma lista das primeiras 5 linhas da tabela do fabricante.

SELECIONAR*

DO fabricante

LIMITE 5

17. Retorna uma lista com 2 linhas da quarta linha da tabela do fabricante. A quarta linha
também deve ser incluída na resposta.

SELECIONAR*

DO fabricante

LIMITE 3, 2

18. Liste o nome e o preço do produto mais barato. (Use apenas as cláusulas ORDER BY e LIMIT)

SELECIONE nome, preço

DO produto

ORDEM POR PREÇO ASC

LIMITE 1
19. Liste o nome e o preço do produto mais caro. (Use apenas as cláusulas ORDER BY e LIMIT)

SELECIONE nome, preço

DO produto

ORDEM POR preço DESC

LIMITE 1

20. Liste o nome de todos os produtos do fabricante cujo código do fabricante seja igual a 2.

SELECIONAR nome

DO produto

ONDE codigo_fabricante = 2

21. Liste o nome dos produtos que têm um preço menor ou igual a € 120.

SELECIONAR nome

DO produto

ONDE preço <= 120

22. Liste o nome dos produtos que têm um preço maior ou igual a € 400.

SELECIONAR nome

DO produto

ONDE preço >= 400


23. Liste o nome dos produtos que não têm um preço maior ou igual a € 400.

SELECIONAR nome

DO produto

ONDE NÃO preço >= 400

24. Liste todos os produtos com preços entre 80€ e 300€. Sem usar o operador BETWEEN.

SELECIONAR*

DO produto

ONDE preço >= 80 E preço <= 300

25. Liste todos os produtos com preços entre 60€ e 200€. Usando o operador BETWEEN.

SELECIONAR*

DO produto

ONDE PRECIO ENTRE 60 E 200

26. Liste todos os produtos que têm um preço superior a € 200 e que o código do fabricante é
igual a 6.

SELECIONAR*

DO produto

ONDE PREÇO > 200 E codigo_fabricante = 6

27. Liste todos os produtos em que o código do fabricante é 1, 3 ou 5. Sem usar o operador IN.
SELECIONE * DO produto

ONDE codigo_fabricante = 1 OU codigo_fabricante = 3 OU codigo_fabricante = 5

28. Liste todos os produtos em que o código do fabricante é 1, 3 ou 5. Usando o operador IN.

SELECIONE * DO produto

ONDE codigo_fabricante EM (1, 3, 5)

29. Liste o nome e o preço dos produtos em centavos (O valor do preço deve ser multiplicado
por 100). Crie um alias para a coluna que contém o preço chamado centavos.

SELECIONE nome, preço * 100 AS centavos

DO produto

30. Liste os nomes dos fabricantes cujo nome começa com a letra S.

SELECIONAR nome

DO fabricante

ONDE nome LIKE 'S%'

31. Lista os nomes dos fabricantes cujo nome termina com a vogal e.

SELECIONE o nome do fabricante


ONDE nome LIKE '%e'

32. Lista os nomes dos fabricantes cujo nome contém o caractere w.

SELECIONE o nome do fabricante

ONDE nome LIKE '%w%'

33. Liste os nomes dos fabricantes cujo nome tem 4 caracteres.

SELECIONE o nome do fabricante

ONDE nome LIKE '____'

34. Retorna uma lista com o nome de todos os produtos que contêm a cadeia de caracteres
Portable no nome.

SELECIONE O NOME DO PRODUTO

ONDE nome LIKE '%Portable%'

35. Retorna uma lista com o nome de todos os produtos que contêm a cadeia de caracteres
Monitor no nome e têm um preço inferior a € 215.

SELECIONE O NOME DO PRODUTO

ONDE nome LIKE '%Monitor%' E preço < 215


36. Liste o nome e o preço de todos os produtos que tenham um preço maior ou igual a € 180.
Classifique o resultado primeiro por preço (em ordem decrescente) e segundo por nome (em
ordem crescente).

SELECIONE nome, preço DO produto

ONDE preço >= 180

ORDER BY price DESC, nome ASC

Consultas Multitable (Composição Interna)


Resolva todas as consultas usando a sintaxe SQL1 e SQL2.

1. Retorna uma lista com o nome do produto, preço e nome do fabricante de todos os produtos
no banco de dados.

SELECIONE product.name, preço manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

2. Retorna uma lista com o nome do produto, preço e nome do fabricante de todos os produtos
no banco de dados. Classifique o resultado pelo nome do fabricante, em ordem alfabética.

SELECIONE product.name, preço manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

ENCOMENDAR POR manufacturer.name ASC


3. Retorna uma lista com o código do produto, nome do produto, código do fabricante e nome
do fabricante, de todos os produtos no banco de dados.

SELECIONE product.code, product.name, manufacturer.code, manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

4. Devolva o nome do produto, seu preço e o nome de seu fabricante, o produto mais barato.

SELECIONE product.name, product.price, manufacturer.name

DO produto INNER JOIN fabricante

ENCOMENDAR POR product.price ASC

LIMITE 1

5. Devolva o nome do produto, seu preço e o nome de seu fabricante, do produto mais caro.

SELECIONE product.name, product.price, manufacturer.name

DO produto INNER JOIN fabricante

ENCOMENDAR POR product.price DESC

LIMITE 1

6. Retorna uma lista de todos os produtos do fabricante Lenovo.


SELECIONE * DO fabricante INNER JOIN do produto

ON producto.codigo_fabricante = manufacturer.code

ONDE manufacturer.name = 'Lenovo'

7. Devolva uma lista de todos os produtos do fabricante Crucial que tenham um preço superior a
200€.

SELECIONE * DO fabricante INNER JOIN do produto

ON producto.codigo_fabricante = manufacturer.code

ONDE manufacturer.name = 'Crucial' E product.price >200

8. Devolver uma lista de todos os produtos de fabricantes Asus, Hewlett-Packard e Seagate. Sem
usar o operador IN.

SELECIONE * DO fabricante INNER JOIN do produto

ON producto.codigo_fabricante = manufacturer.code

ONDE manufacturer.name = 'Asus' OU manufacturer.name = 'Hewlett-Packard' OU

manufacturer.name = 'Seagate'

9. Devolvido uma lista de produtos de fabricantes Asus, Hewlett-Packard e Seagate. Usando o


operador IN.

SELECIONE * DO fabricante INNER JOIN do produto

ON producto.codigo_fabricante = manufacturer.code

ONDE manufacturer.name ('Asus','Hewlett-Packard','Seagate')

10. Retorna uma listagem com o nome e o preço de todos os produtos de fabricantes cujos
O nome termina com a vogal e.

SELECIONE product.name, product.price FROM product INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

ONDE nome manufacturer.LIKE ('%e')

11. Retorna uma lista com o nome e o preço de todos os produtos cujo nome do fabricante
contém o caractere w em seu nome.

SELECIONE product.name, product.price FROM product INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

ONDE nome manufacturer.LIKE ('%w%')

12. Retorna uma listagem com o nome do produto, preço e nome do fabricante, de todos

Produtos que tenham um preço igual ou superior a € 180. Classifique o resultado primeiro por

Preço (em ordem decrescente) e segundo por nome (em ordem crescente)

SELECIONE product.name, product.price, manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

ONDE product.price >= 180

ORDEM POR product.price DESC, product.name ASC


13. Retorna uma lista com o código e o nome do fabricante, somente dos fabricantes que têm
produtos associados no banco de dados.

SELECT manufacturer.code, manufacturer.name DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

Consultas Multitable (Composição Externa)


Resolva todas as consultas usando as cláusulas LEFT JOIN e RIGHT JOIN.

1. Retorna uma lista de todos os fabricantes que existem no banco de dados, juntamente com os
produtos que cada um deles tem. A lista também deve mostrar os fabricantes que não têm
produtos associados.

SELECIONE fabricante.código, manufacturer.name product.name

DO fabricante LEFT JOIN produto

ON manufacturer.code = producto.codigo_fabricante

2. Retorna uma lista onde aparecem apenas os fabricantes que não têm nenhum produto
associado.

SELECIONE manufacturer.name DO FABRICANTE À ESQUERDA DO PRODUTO

ON manufacturer.code != producto.codigo_fabricante

WHERE NOT manufacturer.code = QUALQUER (

SELECIONE producto.codigo_fabricante

DO PRODUTO) LIMITE 10,2

3. Pode haver produtos que não estão relacionados com um fabricante? Justifique sua resposta.
Eles não podem existir, uma vez que a razão no modelo relacional é de 1 para muitos. Isso significa
que um produto pode ser criado por um mínimo de 1 fabricante.

Consultas de resumo
1. Calcule o número total de produtos na tabela de produtos.

SELECIONAR CONTAGEM(*)

DO produto

2. Calcule o número total de fabricantes na tabela do fabricante.

SELECIONAR CONTAGEM(*)

DO fabricante

3. Calcula o número de diferentes valores de código do fabricante listados na tabela Produtos.

SELECIONAR CONTAGEM (codigo_fabricante DISTINTA)

DO produto

4. Calcule o preço médio de todos os produtos.

SELECIONE AVG(preço)
DO produto

5. Calcule o preço mais barato de todos os produtos.

SELECIONE MIN(preço)

DO produto

6. Calcule o preço mais caro de todos os produtos.

SELECT MAX(preço)

DO produto

7. Liste o nome e o preço do produto mais barato.

SELECIONE nome, preço

DO produto

ORDEM POR PREÇO ASC

LIMITE 1

8. Liste o nome e o preço do produto mais caro.

SELECIONE nome, preço

DO produto

ORDEM POR preço DESC

LIMITE 1

9. Calcule a soma dos preços de todos os produtos.

SELECIONE SOMA(preço)

DO produto

10. Calcule o número de produtos que o fabricante Asus tem.

SELECIONAR CONTAGEM(product.code)
DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Asus'

11. Calcule o preço médio de todos os produtos do fabricante Asus.

SELECIONE AVG(product.price)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Asus'

12. Calcule o preço mais barato de todos os produtos do fabricante Asus.

SELECIONE MIN(product.price)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Asus'

13. Calcule o preço mais caro de todos os produtos do fabricante Asus.

SELECIONE MAX(product.price)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Asus'

14. Calcule a soma de todos os produtos do fabricante Asus.

SELECIONE SOMA(product.price)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Asus'

15. Mostra o preço máximo, o preço mínimo, o preço médio e o número total de produtos que o
fabricante Crucial possui.
SELECIONE MAX(product.price), MIN(product.price), AVG(product.price), COUNT(product.code)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Crucial'

16. Mostra o número total de produtos que cada fabricante possui. A lista também deve incluir
fabricantes que não possuem produtos. O resultado exibirá duas colunas, uma com o nome do
fabricante e outra com o número de produtos que ele possui. Classifique o resultado
decrescente pelo número de produtos.

SELECIONE manufacturer.name, COUNT(product.code)

DO fabricante LEFT JOIN produto

ON producto.codigo_fabricante = manufacturer.code

GRUPO POR manufacturer.code

ENCOMENDAR POR 2 DESC

17. Indica o preço máximo, o preço mínimo e o preço médio dos produtos de cada um dos
fabricantes. O resultado exibirá o nome do fabricante junto com os dados solicitados.

SELECIONE manufacturer.name, MAX(product.price), MIN(product.price), AVG(product.price)

DO fabricante INNER JOIN produto

ON producto.codigo_fabricante = manufacturer.code

GRUPO POR manufacturer.code

18. Mostra o preço máximo, o preço mínimo, o preço médio e o número total de produtos de
fabricantes que têm um preço médio superior a € 200. Não é necessário mostrar o nome do
fabricante, com o código do fabricante é suficiente.

SELECIONE codigo_fabricante, MAX(preço), MIN(preço), AVG(preço), COUNT(*)

DO produto

AGRUPAR POR codigo_fabricante


COM AVG (preço) > 200

19. Apresentar o nome de cada fabricante, juntamente com o preço máximo, o preço mínimo, o
preço médio e o número total de produtos de fabricantes que têm um preço médio superior a
€200. É necessário exibir o nome do fabricante.

SELECIONE manufacturer.name,

MAX(product.price), MIN(product.price),

AVG(product.price), COUNT(*)

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

GRUPO POR manufacturer.code

COM AVG (product.price) > 200

20. Calcule o número de produtos que têm um preço igual ou superior a € 180.

SELECIONAR CONTAGEM(*)

DO produto

ONDE preço >= 180

21. Calcule o número de produtos que cada fabricante tem com um preço igual ou superior a €
180.

SELECIONE manufacturer.name, COUNT(*)

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

ONDE product.price >= 180

AGRUPAR POR producto.codigo_fabricante

22. Liste o preço médio dos produtos de cada fabricante, mostrando apenas o código do
fabricante.

SELECIONE AVG(preço), codigo_fabricante


DO produto

AGRUPAR POR codigo_fabricante

23. Liste o preço médio dos produtos de cada fabricante, mostrando apenas o nome do
fabricante.

SELECIONE AVG(preço), manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

AGRUPAR POR manufacturer.name

24. Liste os nomes dos fabricantes cujos produtos tenham um preço médio superior ou igual a €
150.

SELECIONE AVG(preço), manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

AGRUPAR POR manufacturer.name

TENDO AVG(preço) >= 150

25. Retorna uma lista com os nomes dos fabricantes que têm 2 ou mais produtos.

SELECIONE manufacturer.name, COUNT(product.code)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

GRUPO POR manufacturer.code

TENDO COUNT(product.code) >= 2

26. Retorna uma lista com os nomes dos fabricantes e o número de produtos que cada um tem
com um preço maior ou igual a € 220. Não é necessário exibir o nome de fabricantes que não
possuem produtos que atendam à condição. Exemplo do resultado esperado:
SELECIONE manufacturer.name, COUNT(product.code)
DO fabricante INNER JOIN produto
ON manufacturer.code = producto.codigo_fabricante
ONDE product.price >= 220
GRUPO POR manufacturer.code
ENCOMENDAR POR 2 DESC

27. Retorna uma lista com os nomes dos fabricantes e o número de produtos que cada um tem
com um preço maior ou igual a € 220. A lista deve mostrar o nome de todos os fabricantes, ou
seja, se houver um fabricante que não tenha produtos com um preço igual ou superior a € 220
deve aparecer na lista com um valor igual a 0 no número de produtos.

(SELECIONE manufacturer.name, COUNT(product.code)


DO fabricante INNER JOIN produto
ON manufacturer.code = producto.codigo_fabricante
ONDE product.price >= 220
GRUPO POR fabricante.código)
UNIÃO
(SELECIONE manufacturer.name, 0
DO fabricante
ONDE manufacturer.code NOT IN (
SELECT manufacturer.code
DO fabricante INNER JOIN produto
ON manufacturer.code = producto.codigo_fabricante
ONDE product.price >= 220
GRUPO POR fabricante.code))
ENCOMENDAR POR 2 DESC
28. Retorna uma lista com os nomes dos fabricantes onde a soma do preço de todos os seus
produtos é superior a € 1000.

SELECIONE manufacturer.name, SOMA(product.price)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

GRUPO POR manufacturer.code

COM SOMA(product.price) > 1000

29. Devolver uma listagem com o nome do produto mais caro que cada fabricante tem. O
resultado deve ter três colunas: nome do produto, preço e nome do fabricante. O resultado
deve ser classificado em ordem alfabética do mais baixo para o mais alto pelo nome do
fabricante.

SELECIONE product.name, product.price, manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

ONDE product.price =

SELECT MAX(preço)

DO produto

ONDE codigo_fabricante = manufacturer.code

ENCOMENDAR POR manufacturer.name ASC


Subconsultas (na cláusula WHERE)
Com operadores de comparação básicos

1. Devolva todos os produtos do fabricante Lenovo. (Sem usar INNER JOIN).

SELECIONE * DO produto

ONDE codigo_fabricante = (

Código SELECT

DO fabricante

WHERE nome = 'Lenovo')

2. Retorna todos os dados para produtos que têm o mesmo preço que o produto mais caro do
fabricante Lenovo. (Sem usar INNER JOIN).

SELECIONE * DO produto

ONDE preço = (

SELECT MAX(preço)

DO produto

ONDE producto.codigo_fabricante = (

Código SELECT

DO fabricante

WHERE nome = 'Lenovo'))

3. Liste o nome do produto mais caro do fabricante Lenovo.

SELECIONE product.name

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Lenovo' E product.price = (

SELECT MAX(preço)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Lenovo')


4. Liste o nome do produto mais barato do fabricante Hewlett-Packard.

SELECIONE product.name

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Hewlett-Packard' E product.price = (

SELECIONE MIN(preço)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Hewlett-Packard')

5. Devolve todos os produtos na base de dados que têm um preço maior ou igual ao produto
mais caro do fabricante Lenovo.

SELECIONAR*

DO produto

ONDE preço >= (

SELECT MAX(preço)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Lenovo')

6. Liste todos os produtos do fabricante Asus que têm um preço superior ao preço médio de
todos os seus produtos.

SELECIONAR*

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Asus' E product.price > (

SELECIONE AVG(preço)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Asus')


Subconsultas com TODOS e QUALQUER

8. Devolva o produto mais caro que existe na tabela de produtos sem usar MAX, ORDER

PELO LIMITE NI.

SELECIONE * DO produto

ONDE preço >= TODOS (

SELECIONE o preço

DO produto)

9. Devolva o produto mais barato que existe na tabela de produtos sem usar MIN, ORDER BY ou
LIMIT.

SELECIONE * DO produto

ONDE preço <= TODOS (

SELECIONE o preço

DO produto)

10. Retorna os nomes dos fabricantes que têm produtos associados. (Usando TODOS ou
QUALQUER).

SELECIONE o nome do fabricante

Código WHERE = QUALQUER (

SELECIONE codigo_fabricante

DO produto)

11. Retorna os nomes dos fabricantes que não têm produtos associados. (Usando TODOS ou
QUALQUER).
SELECIONE o nome do fabricante

Código WHERE != ALL (

SELECIONE codigo_fabricante

DO produto)

Subconsultas com IN e NOT IN

12. Retorna os nomes dos fabricantes que têm produtos associados. (Usando IN ou NOT IN).

SELECIONE o nome do fabricante

ONDE CODIGO IN (SELECIONE codigo_fabricante DO produto)

13. Retorna os nomes dos fabricantes que não têm produtos associados. (Usando IN ou NOT IN).

SELECIONE o nome do fabricante

ONDE O CÓDIGO NÃO ESTÁ (SELECIONE codigo_fabricante DO PRODUTO)

Subconsultas com EXISTE e NÃO EXISTE

14. Retorna os nomes dos fabricantes que têm produtos associados. (Usando EXISTE ou NÃO
EXISTE).

SELECIONE o nome do fabricante

ONDE EXISTE (

SELECIONE codigo_fabricante

DO produto

ONDE producto.codigo_fabricante = manufacturer.code)

15. Retorna os nomes dos fabricantes que não têm produtos associados.

(Usando EXISTE ou NÃO EXISTE).

SELECIONE o nome do fabricante


ONDE NÃO EXISTE (

SELECIONE codigo_fabricante

DO produto

ONDE producto.codigo_fabricante = manufacturer.code)

Subconsultas correlacionadas

16. Liste o nome de cada fabricante com o nome e o preço do seu produto mais caro.

SELECIONE product.name, product.price, manufacturer.name

DO produto INNER JOIN fabricante

ON producto.codigo_fabricante = manufacturer.code

ONDE product.price =

SELECT MAX(preço)

DO produto

ONDE codigo_fabricante = manufacturer.code

17. Retorna uma lista de todos os produtos que têm um preço maior ou igual à média de

todos os produtos do mesmo fabricante.

SELECIONAR*

DO produto AS p1

ONDE preço >= (SELECIONE AVG(price)

DO produto AS p2

ONDE p1.codigo_fabricante = p2.codigo_fabricante)

18. Liste o nome do produto mais caro do fabricante Lenovo.

SELECIONE product.name

DO fabricante INNER JOIN produto


ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Lenovo' E product.price = (

SELECT MAX(preço)

DO produto

ONDE codigo_fabricante = manufacturer.code)

Subconsultas (Na cláusula HAVER)

19. Retorna uma lista de todos os nomes de fabricantes que têm o mesmo número de produtos
que o fabricante Lenovo.

SELECIONE manufacturer.name, COUNT(product.code)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

GRUPO POR manufacturer.code

TENDO COUNT(product.code) >= (

SELECIONAR CONTAGEM(product.code)

DO fabricante INNER JOIN produto

ON manufacturer.code = producto.codigo_fabricante

ONDE manufacturer.name = 'Lenovo')

Você também pode gostar