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.


1) Inserindo dados de clientes

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.


2) Atualizando preços de produtos

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%.


3) Removendo pedidos cancelados

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”.


4) Usando MERGE para atualizar clientes

A equipe de marketing recebeu uma lista de atualização de clientes (CLIENTES_STG).