Created
May 9, 2023 16:23
-
-
Save cfigueiroa/0542baf235d6a021d367ff41ab709882 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 1. Busque produtos quaisquer, limitados a 5; | |
SELECT | |
* | |
FROM | |
produtos | |
LIMIT | |
5; | |
-- 2. Busque clientes quaisquer da loja, limitados a 3; | |
SELECT | |
* | |
FROM | |
clientes | |
LIMIT | |
3; | |
-- 3. Busque o produto com nome Televisão 43"; | |
SELECT | |
* | |
FROM | |
produtos | |
WHERE | |
nome = 'Televisão 43"'; | |
-- 4. Adicione um novo produto chamado Macbook Pro 13" com preço R$ 17.000,00; | |
INSERT INTO | |
produtos (nome, preco) | |
VALUES | |
('Macbook Pro 13"', 1700000); | |
-- 5. Orlando Pequeno Jesus fez barraco na loja e agora está banido. Remova-o da lista de clientes; | |
DELETE FROM | |
clientes | |
WHERE | |
nome = 'Orlando Pequeno Jesus'; | |
-- 6. O dólar subiu mais uma vez e o preço do produto Pelúcia Strange Planet com Gatinho agora é R$ 80,00. Atualize no banco; | |
UPDATE | |
produtos | |
SET | |
preco = 8000 | |
WHERE | |
nome = 'Pelúcia Strange Planet com Gatinho'; | |
-- 7. A alta do dólar também afetou o preço do Violão Lava ME 2. Altere seu preço para R$ 9800,00. Atualize o banco. | |
UPDATE | |
produtos | |
SET | |
preco = 980000 | |
WHERE | |
nome = 'Violão Lava ME 2'; | |
-- 8. Lucca Santarém Branco usou o CPF de um laranja. Modifique seu CPF para o valor correto: 04652651298; | |
UPDATE | |
clientes | |
SET | |
cpf = '04652651298' | |
WHERE | |
nome = 'Lucca Santarém Branco'; | |
-- 9. Chico Buarque de Holanda comprou o produto Violão Lava ME 2. Adicione esse registro de compra na tabela compras; | |
-- subqueries | |
INSERT INTO | |
compras (id_cliente, id_produto) | |
VALUES | |
( | |
( | |
SELECT | |
id | |
FROM | |
clientes | |
WHERE | |
nome = 'Chico Buarque de Holanda' | |
), | |
( | |
SELECT | |
id | |
FROM | |
produtos | |
WHERE | |
nome = 'Violão Lava ME 2' | |
) | |
); | |
-- join | |
INSERT INTO | |
compras (id_cliente, id_produto) | |
SELECT | |
clientes.id, | |
produtos.id | |
FROM | |
clientes | |
JOIN produtos ON produtos.nome = 'Violão Lava ME 2' | |
WHERE | |
clientes.nome = 'Chico Buarque de Holanda'; | |
-- join com aliases | |
INSERT INTO | |
compras (id_cliente, id_produto) | |
SELECT | |
c.id, | |
p.id | |
FROM | |
clientes c | |
JOIN produtos p ON p.nome = 'Violão Lava ME 2' | |
WHERE | |
c.nome = 'Chico Buarque de Holanda'; | |
-- 10. Olga Cascais Fortunato comprou dois Celular Topo de Linha. Adicione os registros de compra na tabela compras; | |
-- subqueries | |
INSERT INTO | |
compras (id_cliente, id_produto) | |
VALUES | |
( | |
( | |
SELECT | |
id | |
FROM | |
clientes | |
WHERE | |
nome = 'Olga Cascais Fortunato' | |
), | |
( | |
SELECT | |
id | |
FROM | |
produtos | |
WHERE | |
nome = 'Celular Topo de Linha' | |
) | |
), | |
( | |
( | |
SELECT | |
id | |
FROM | |
clientes | |
WHERE | |
nome = 'Olga Cascais Fortunato' | |
), | |
( | |
SELECT | |
id | |
FROM | |
produtos | |
WHERE | |
nome = 'Celular Topo de Linha' | |
) | |
); | |
-- join com aliases (x2) | |
INSERT INTO | |
compras (id_cliente, id_produto) | |
SELECT | |
c.id, | |
p.id | |
FROM | |
clientes c | |
JOIN produtos p ON p.nome = 'Celular Topo de Linha' | |
WHERE | |
c.nome = 'Olga Cascais Fortunato'; | |
-- 11. Martinha Lima Zambujal devolveu o produto Fone Topo de Linha. Remova este registro da tabela compras; | |
DELETE FROM | |
compras | |
WHERE | |
id_cliente = ( | |
SELECT | |
id | |
FROM | |
clientes | |
WHERE | |
nome = 'Martinha Lima Zambujal' | |
) | |
AND id_produto = ( | |
SELECT | |
id | |
FROM | |
produtos | |
WHERE | |
nome = 'Fone Topo de Linha' | |
) | |
ORDER BY | |
id DESC | |
LIMIT | |
1; | |
-- 12. Busque todos os produtos ordenados pelo preço, de forma crescente; | |
SELECT | |
* | |
FROM | |
produtos | |
ORDER BY | |
preco; | |
-- 13. Busque os 3 produtos mais baratos; | |
SELECT | |
* | |
FROM | |
produtos | |
ORDER BY | |
preco | |
LIMIT | |
3; | |
-- 14. Busque o produto com o maior preço; | |
SELECT | |
* | |
FROM | |
produtos | |
ORDER BY | |
preco DESC | |
LIMIT | |
1; | |
-- 15. Busque o produto com o segundo menor preço. Para este item, procure por sql offset. | |
SELECT | |
* | |
FROM | |
produtos | |
ORDER BY | |
preco | |
LIMIT | |
1 OFFSET 1; | |
-- Desafios | |
-- 1. Busque todos os produtos com Televisão no nome. Para fazer isso, procure por sql like operator; | |
SELECT | |
* | |
FROM | |
produtos | |
WHERE | |
nome LIKE '%Televisão%'; | |
-- 2. Busque todos os produtos com preço menor que R$1000,00. Para fazer isso, procure por sql comparison operators; | |
SELECT | |
* | |
FROM | |
produtos | |
WHERE | |
preco < 100000; | |
-- 3. Busque todos os produtos com Celular no nome e preço menor que R$2000,00. Para isso, utilize o operador like do item anterior e procure por sql logical operators; | |
SELECT | |
* | |
FROM | |
produtos | |
WHERE | |
nome LIKE '%Celular%' | |
AND preco < 200000; | |
-- 4. (Desafio²) Busque todos os clientes que não fizeram uma compra. Para isso, procure por sql not in e sql subquery. | |
--subquery | |
SELECT | |
* | |
FROM | |
clientes | |
WHERE | |
clientes.id NOT IN ( | |
SELECT | |
id_cliente | |
FROM | |
compras | |
); | |
--left join | |
SELECT | |
* | |
FROM | |
clientes | |
LEFT JOIN compras ON clientes.id = compras.id_cliente | |
WHERE | |
compras.id IS NULL; | |
-- 5. (Desafio²) Busque todos os produtos comprados por Benício Freire Sampaio. Para isso, procure por sql in e sql subquery; | |
--subquery | |
SELECT | |
* | |
FROM | |
produtos | |
WHERE | |
id IN ( | |
SELECT | |
id_produto | |
FROM | |
compras | |
WHERE | |
id_cliente IN ( | |
SELECT | |
id | |
FROM | |
clientes | |
WHERE | |
nome = 'Benício Freire Sampaio' | |
) | |
); | |
--join | |
SELECT | |
DISTINCT produtos.* | |
FROM | |
produtos | |
JOIN compras ON produtos.id = id_produto | |
JOIN clientes ON id_cliente = clientes.id | |
WHERE | |
clientes.nome = 'Benício Freire Sampaio'; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment