A loja Tech+ vende celulares, notebooks e acessórios. Ela mantém uma base de dados com os clientes, produtos e pedidos.
O gerente percebeu que precisa manipular dados no banco usando apenas comandos DML. Ele pediu a sua ajuda.
A loja começou a registrar seus primeiros clientes.
-- CREATE
DROP TABLE CLIENTES PURGE;
CREATE TABLE CLIENTES (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100) NOT NULL,
email VARCHAR2(120) UNIQUE
);
Tarefa: insira os três primeiros clientes da loja.
Um fornecedor de notebooks aumentou os preços em 10%.
-- CREATE
DROP TABLE PRODUTOS PURGE;
CREATE TABLE PRODUTOS (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100) NOT NULL,
preco NUMBER(10,2) NOT NULL CHECK (preco >= 0),
tipo VARCHAR2(50) NOT NULL
);
-- Inserindo alguns produtos
INSERT ALL
INTO PRODUTOS (nome, preco, tipo) VALUES ('Notebook X', 3000, 'Notebook')
INTO PRODUTOS (nome, preco, tipo) VALUES ('Notebook Y', 3500, 'Notebook')
INTO PRODUTOS (nome, preco, tipo) VALUES ('Celular Z', 2000, 'Celular')
SELECT 1 FROM dual;
Tarefa: atualize os preços de todos os produtos do tipo “Notebook” com aumento de 10%.
Alguns clientes desistiram da compra.
-- CREATE
DROP TABLE PEDIDOS PURGE;
CREATE TABLE PEDIDOS (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
cliente_id NUMBER NOT NULL,
produto_id NUMBER NOT NULL,
status VARCHAR2(20) NOT NULL CHECK (status IN ('ABERTO','FINALIZADO','CANCELADO'))
);
-- Inserindo pedidos de teste
INSERT ALL
INTO PEDIDOS (cliente_id, produto_id, status) VALUES (1, 1, 'ABERTO')
INTO PEDIDOS (cliente_id, produto_id, status) VALUES (2, 2, 'CANCELADO')
INTO PEDIDOS (cliente_id, produto_id, status) VALUES (3, 3, 'FINALIZADO')
INTO PEDIDOS (cliente_id, produto_id, status) VALUES (1, 2, 'CANCELADO')
SELECT 1 FROM dual;
Tarefa: remova todos os pedidos com status “CANCELADO”.
MERGE para atualizar clientesA equipe de marketing recebeu uma lista de atualização de clientes (CLIENTES_STG).