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;
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;
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;
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;
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;
É 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.
Estava buscando esse conteúdo hoje!!! Forte abraço mestre Fábio!
Valeu Jean!
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.
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.