https://youtu.be/9yeOJ0ZMUYw?si=rcizRM1Tyo8EG73d
CREATE TABLE VENDAS (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
produto VARCHAR2(100) NOT NULL,
categoria VARCHAR2(50) NOT NULL,
valor NUMBER(10,2) NOT NULL CHECK (valor > 0),
data_venda DATE DEFAULT SYSDATE,
vendedor VARCHAR2(100) NOT NULL
);
INSERT INTO VENDAS (produto, categoria, valor, data_venda, vendedor)
VALUES
('Notebook Dell', 'Eletrônicos', 4500.00, DATE '2025-04-01', 'Carlos'),
('Mouse Gamer', 'Acessórios', 150.00, DATE '2025-04-01', 'Ana'),
('Teclado Mecânico', 'Acessórios', 300.00, DATE '2025-04-02', 'Carlos'),
('Monitor 24"', 'Eletrônicos', 1200.00, DATE '2025-04-02', 'Bruna'),
('Fone Bluetooth', 'Acessórios', 200.00, DATE '2025-04-03', 'Ana'),
('Notebook HP', 'Eletrônicos', 4000.00, DATE '2025-04-03', 'Carlos'),
('Webcam HD', 'Acessórios', 180.00, DATE '2025-04-04', 'Bruna'),
('Carregador Portátil', 'Acessórios', 120.00, DATE '2025-04-04', 'Ana'),
('SSD 1TB', 'Componentes', 500.00, DATE '2025-04-05', 'Carlos'),
('Cabo HDMI', 'Acessórios', 50.00, DATE '2025-04-05', 'Bruna');
Antes de usar JOIN, precisamos de duas tabelas relacionadas.
Vamos complementar a tabela VENDAS criada anteriormente com uma nova tabela chamada CLIENTES.
-- 1. Criação da tabela de clientes
DROP TABLE CLIENTES PURGE;
CREATE TABLE CLIENTES (
id_cliente NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100) NOT NULL,
cidade VARCHAR2(50),
estado VARCHAR2(2)
);
-- 2. Inserção de clientes
INSERT INTO CLIENTES (nome, cidade, estado) VALUES
('Ana', 'São Paulo', 'SP'),
('Bruna', 'Campinas', 'SP'),
('Carlos', 'Rio de Janeiro', 'RJ');
Agora, vamos adicionar a chave estrangeira em VENDAS, ligando cada venda a um cliente.
ALTER TABLE VENDAS ADD id_cliente NUMBER;
ALTER TABLE VENDAS ADD CONSTRAINT fk_cliente FOREIGN KEY (id_cliente) REFERENCES CLIENTES(id_cliente);
E associar cada venda ao seu respectivo cliente:
UPDATE VENDAS
SET id_cliente = CASE vendedor
WHEN 'Ana' THEN 1
WHEN 'Bruna' THEN 2
WHEN 'Carlos' THEN 3
END;
INNER JOINO INNER JOIN combina linhas que possuem correspondência entre duas tabelas.
SELECT
v.produto,
v.valor,
c.nome AS cliente,
c.cidade
FROM VENDAS v
INNER JOIN CLIENTES c
ON v.id_cliente = c.id_cliente;
🎯 Objetivo: Exibir as vendas junto com o nome e cidade do cliente.
🔍 Somente registros com id_cliente existente nas duas tabelas são retornados.
JOIN