🔗 FOREIGN KEY

Introdução

A FOREIGN KEY (Chave Estrangeira) é uma constraint utilizada para criar relacionamentos entre tabelas em um banco de dados relacional.

Ela permite que uma tabela faça referência a uma chave primária existente em outra tabela.

📌 A FOREIGN KEY garante que os dados relacionados entre tabelas sejam válidos.

Por que Utilizar FOREIGN KEY?

Exemplo de Relacionamento

Imagine um sistema escolar:

Tabela Informação
Alunos Dados dos estudantes
Matrículas Relaciona alunos e cursos

Estrutura das Tabelas

CREATE TABLE alunos (
  id INT PRIMARY KEY,
  nome VARCHAR(100)
);

A tabela alunos possui a chave primária id.

CREATE TABLE matriculas (
  id INT PRIMARY KEY,
  aluno_id INT,
  FOREIGN KEY (aluno_id)
  REFERENCES alunos(id)
);

O campo aluno_id referencia o campo id da tabela alunos.

Funcionamento do Relacionamento

Alunos Matrículas
ID = 1
João
Aluno_ID = 1
Curso PHP
ID = 2
Maria
Aluno_ID = 2
Curso MySQL

O valor da FOREIGN KEY deve existir na PRIMARY KEY da tabela relacionada.

Sintaxe Básica

FOREIGN KEY (campo)
REFERENCES tabela(campo);

Restrição de Integridade

O MySQL impede inserir valores que não existam na tabela principal.

INSERT INTO matriculas
(aluno_id)
VALUES (99);
⚠️ Se o aluno 99 não existir, o MySQL rejeitará a operação.

ON DELETE

Define o comportamento quando um registro relacionado é excluído.

Opção Funcionamento
CASCADE Exclui registros relacionados
RESTRICT Impede exclusão
SET NULL Define valor como NULL

Exemplo com CASCADE

CREATE TABLE pedidos (
  id INT PRIMARY KEY,
  cliente_id INT,
  FOREIGN KEY(cliente_id)
  REFERENCES clientes(id)
  ON DELETE CASCADE
);

PRIMARY KEY x FOREIGN KEY

PRIMARY KEY FOREIGN KEY
Identifica registros Relaciona tabelas
Única na tabela Pode se repetir
Não aceita NULL Pode aceitar NULL dependendo da regra
Origem do relacionamento Referência da relação

Boas Práticas

Resumo da Aula

🎓 Aula concluída! Agora você entende como a FOREIGN KEY conecta tabelas e mantém a integridade dos relacionamentos em bancos MySQL.