Se estás a dar os primeiros passos no MySQL e queres aprender a criar relações entre tabelas, estás no sítio certo! Neste artigo, vais descobrir como criar chaves estrangeiras (Foreign Keys), como utilizá-las em consultas e até como modificar uma tabela para adicionar novas colunas. Tudo explicado de forma simples! 🚀
📌 O Que é uma Chave Estrangeira?
Uma chave estrangeira (Foreign Key – FK) é um vínculo entre duas tabelas no MySQL. Ela serve para garantir que os dados de uma tabela estão relacionados com outra, evitando erros e melhorando a integridade dos dados.
Por exemplo, imagina que tens uma tabela de clientes
e outra de pedidos
. Cada pedido deve estar associado a um cliente, certo? É aqui que entra a chave estrangeira!
🔹 Criar uma Chave Estrangeira no MySQL
Passo 1️⃣ Criar a Tabela Principal
Primeiro, precisas de uma tabela com um identificador único (Primary Key – PK). Vamos criar a tabela clientes
:
CREATE TABLE clientes (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100) NOT NULL
);
Passo 2️⃣ Criar a Tabela Relacionada
Agora, criamos a tabela pedidos
, onde cada pedido estará ligado a um cliente através da chave estrangeira cliente_id
.
CREATE TABLE pedidos (
id INT PRIMARY KEY AUTO_INCREMENT,
cliente_id INT,
descricao VARCHAR(255) NOT NULL,
FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE CASCADE ON UPDATE CASCADE
);
🧐 O Que Significa Isto?
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
- Define
cliente_id
como chave estrangeira que aponta paraid
da tabelaclientes
.
- Define
ON DELETE CASCADE
- Se um cliente for apagado, os pedidos associados também serão eliminados automaticamente.
ON UPDATE CASCADE
- Se o
id
do cliente mudar, a referência nos pedidos será atualizada.
- Se o
🔎 Como Fazer um SELECT com JOIN Entre as Tabelas?
Para consultar os dados das duas tabelas em conjunto, usa um JOIN
. Aqui está um exemplo:
SELECT pedidos.id AS pedido_id, pedidos.descricao, clientes.nome
FROM pedidos
INNER JOIN clientes ON pedidos.cliente_id = clientes.id;
Este comando retorna todos os pedidos com os respetivos nomes dos clientes.
Se quiseres mostrar todos os clientes, mesmo os que não fizeram pedidos, usa LEFT JOIN
:
SELECT clientes.nome, pedidos.descricao
FROM clientes
LEFT JOIN pedidos ON pedidos.cliente_id = clientes.id;
Agora, se quiseres filtrar pedidos de um cliente específico, podes fazer assim:
SELECT pedidos.id, pedidos.descricao, clientes.nome
FROM pedidos
INNER JOIN clientes ON pedidos.cliente_id = clientes.id
WHERE clientes.nome = 'João Silva';
✏️ Como Adicionar Colunas a uma Tabela Existente?
Se precisas de modificar uma tabela e adicionar novas colunas, usa ALTER TABLE
.
👉 Para adicionar uma única coluna:
ALTER TABLE clientes
ADD COLUMN email VARCHAR(150);
👉 Para adicionar várias colunas de uma vez:
ALTER TABLE pedidos
ADD COLUMN data_pedido DATE,
ADD COLUMN valor DECIMAL(10,2);
👉 Para adicionar uma coluna numa posição específica:
ALTER TABLE clientes
ADD COLUMN telefone VARCHAR(20) AFTER nome;
Se a nova coluna não pode ter valores nulos, define um valor padrão:
ALTER TABLE pedidos
ADD COLUMN status VARCHAR(20) NOT NULL DEFAULT 'pendente';
🚀 Conclusão
Agora já sabes como criar chaves estrangeiras no MySQL, fazer consultas combinadas com JOIN
e até modificar tabelas existentes! Estas técnicas são essenciais para manter a organização e integridade dos teus dados.
Tens alguma dúvida ou queres aprender mais? Deixa um comentário e partilha este artigo com quem pode precisar! 😉