Como criar chave primária em uma tabela do MySQL?

Como criar chave primária em uma tabela do MySQL?

Neste tutorial vamos mostrar como criar chaves primárias em tabelas de bancos de dados MySQL, com exemplos práticos, além de revisar brevemente a teoria de chaves em modelagem de dados.

O que é uma Chave Primária?

Chave primária (Primary Key) é um conceito muito importante aplicado a bancos de dados relacionais, e se refere a um campo ou conjunto de campos em uma tabela empregados para identificar de forma única e exclusiva cada linha (registro) na tabela.

Uma coluna marcada como chave primária não permite repetição de valores nas linhas, nem tampouco a existência de valores nulos.

A coluna de uma tabela que estabelece um relacionamento com a Chave Primária de outra é chamada de Chave Estrangeira.

Tipos de Chave Primária

  • Uma chave primária pode ser Simples ou Composta

Chave Primária Simples

  • Chave constituída de apenas uma coluna em uma tabela. É o caso mais comum.
  • Quando não existe um campo “natural” em uma tabela que possa ser usado com chave primária, criamos uma Chave Surrogada ou Substituta.

Chave Surrogada

  • Valor numérico, único, adicionado a uma tabela para servir como chave primária.
  • Não possui significado para os usuários e geralmente fica escondida nas aplicações. São frequentemente usadas no lugar de uma chave primária composta.

Chave Primária Composta

  • Chave que é constituída de duas ou mais colunas (atributos).
  • Geralmente empregada quando não é possível utilizar uma única coluna de uma tabela para identificar de forma exclusiva seus registros.

Como criar chave primária em uma nova tabela

Para executar nossos códigos vamos criar duas tabelas em um banco de dados de teste: Funcionários e Departamentos para exemplificar.

Modo 1 – Constraint em nível de coluna:

CREATE TABLE funcionarios (
  id_func smallint PRIMARY KEY AUTO_INCREMENT,
  nome_func VARCHAR(30) NOT NULL,
  sobrenome_func VARCHAR(50) NOT NULL
);

Conferir a tabela criada e sua chave primária:

DESCRIBE funcionarios;
Criar tabela de funcionários - chaves primárias no MySQL

Tabela de funcionários criada com sua chave primária (coluna Key = PRI)

Modo 2 – Constraint em nível de tabela (nomeada):

CREATE TABLE departamentos (
  id_dep smallint AUTO_INCREMENT,
  nome_dep VARCHAR(30) NOT NULL,
  CONSTRAINT pk_id_dep PRIMARY KEY(id_dep)
);

Conferir a tabela criada e sua chave primária:

DESCRIBE departamentos;
Criar tabela de departamentos - chaves primárias no MySQL

Tabela de departamentos criada com sua chave primária (coluna Key = PRI)

No MySQL o nome fornecido para uma constraint (restrição) PRIMARY KEY é ignorado, sendo usada automaticamente sempre a palavra PRIMARY. Para outros tipos de constraints o nome fornecido é empregado normalmente.

Como criar em uma tabela existente, criada sem a chave primária

Vamos criar mais uma tabela de teste de nome Fornecedores, sem chave primária, para exemplificar.

CREATE TABLE fornecedores (
  id_forn smallint,
  nome_forn VARCHAR(30) NOT NULL
);

Conferir a tabela criada:

DESCRIBE fornecedores;
Tabela de fornecedores sem a chave primária no MySQL

Tabela de fornecedores criada sem a chave primária no MySQL – coluna Key vazia.

Vamos adicionar uma restrição de chave primária a uma das colunas – no caso, à coluna id_forn. Para isso, usaremos a declaração ALTER TABLE com a opção ADD PRIMARY KEY:

ALTER TABLE fornecedores
ADD PRIMARY KEY (id_forn);

Conferimos agora a alteração realizada na tabela:

DESCRIBE fornecedores;
Modificar tabela no MySQL, adicionando chave primária a uma coluna

Agora a tabela de fornecedores possui uma chave primária no MySQL – coluna Key = PRI.

Como criar uma chave primária composta

Vamos agora criar uma tabela de Vendas, com chave composta englobando duas colunas: id_produto e id_cliente. Para isso precisamos usar uma constraint em nível de tabela:

CREATE TABLE vendas (
  id_produto smallint,
  id_cliente smallint,
  qtde smallint,
  CONSTRAINT PRIMARY KEY(id_produto,id_cliente)
);

Conferir a chave primária composta criada:

DESCRIBE vendas;
Tabela de vendas com chave primária composta no MySQL

Chave primária composta. Note a palavra “PRI” em duas colunas no campo Key.

É isso aí! Neste artigo aprendemos como criar chaves primárias no MySQL, tanto simples quanto compostas. Para aprender mais sobre bancos de dados, não deixe de conferir nosso curso completo de MySQL.

Sobre Fábio dos Reis (1207 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

4 Comentários em Como criar chave primária em uma tabela do MySQL?

  1. JEAN VEIGA // 08/06/2022 em 15:45 // Responder

    Estava buscando esse conteúdo hoje!!! Forte abraço mestre Fábio!

  2. RONALDO BARROS LEITE // 03/01/2024 em 20:57 // Responder

    Comecei hj a estudar MySql. Devido a muitas solicitações em outros cursos por SQL, resolvi aprender e o mais indicado foi o MySql. Ao procurar videos me interessei pelo Curso em video do gafanhoto kkkkkkkkk e ao procurar outros vi o seu video e pronto, entrei pois sabia que eu ia aprender mesmo, sem deixar de também assistir ao curso do Gafanhoto.

  3. Paulo Mazanga // 18/01/2024 em 2:59 // Responder

    Eu sou Paulo 48 anos estou a curso informática na faculdade e tenho encontrado boas explicações de temas ligados a base de dados e programação na bosontreinamentos. Muito bacana. Eu sou de angola.

Escreva um comentário

Seu e-mail não será divulgado


*