Skip to content

Instantly share code, notes, and snippets.

@cfigueiroa
Created May 9, 2023 16:23
Show Gist options
  • Save cfigueiroa/0542baf235d6a021d367ff41ab709882 to your computer and use it in GitHub Desktop.
Save cfigueiroa/0542baf235d6a021d367ff41ab709882 to your computer and use it in GitHub Desktop.
-- 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