Um campo, que contém dados exclusivos em uma tabela, é chamado de PRIMARY KEY (PK). Isso significa que um campo PRIMARY KEY deve conter dados exclusivos na tabela.
- Um campo PRIMARY KEY contém valores em cada linha.
- O campo PRIMARY KEY não pode conter uma string vazia.
- Os dados da PRIMARY KEY nunca são alterados ao longo do tempo.
- Uma tabela pode consistir em apenas uma PRIMARY KEY, que pode consistir em um ou vários campos na tabela. Quando mais de uma coluna é usada como PRIMARY KEY da tabela, elas são conhecidas como a chave Composite na tabela.
- Não haverá registros duplicados para uma CHAVE PRIMÁRIA.
- Se um campo for definido como PRIMARY KEY na tabela, esse campo não poderá conter os valores do mesmo campo mais de uma vez na tabela.
Por exemplo, temos uma tabela Student no banco de dados. A tabela contém 4 campos Student_Id, Student_Name, Phone_Number e Email. Student_Id e Email é a PRIMARY KEY na tabela Student. Existe apenas uma CHAVE PRIMÁRIA, mas pode ter um ou vários campos na tabela, como dissemos acima. Os dados de um aluno já estão presentes na tabela, mas o mesmo aluno adiciona seus dados novamente com o mesmo ID de e-mail. À medida que o aluno insere os detalhes, um pop-up exibirá a mensagem “O e-mail já existe”. É mostrado porque o Email já existe na tabela e o campo de email é a PRIMARY KEY, e a PRIMARY KEY não pode conter valores duplicados.
Criar CHAVE PRIMÁRIA na TABELA SQL
A consulta SQL a seguir cria uma PRIMARY KEY no campo Employee_Id quando a tabela ‘Employee’ é criada.
CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );
A consulta acima definiu PRIMARY KEY para o campo Employee_Id. Podemos mencionar o nome da chave após o nome do campo e o tipo de dados. A consulta acima é a única maneira de criar Employee_Id como PRIMARY KEY.
Para verificar se nossa PRIMARY KEY está definida com sucesso ou não, podemos usar o comando DESC seguido do nome da tabela Employee.
Funcionário da DESC;
Campos | Tipo | Nulo | Chave | Padrão | Extras |
Employee_Id | Int(11) | NÃO | PRI | NULO | |
Nome_Funcionário | Varchar(40) | NÃO | NULO | ||
Salário | Int(11) | NÃO | NULO | ||
Departamento | Varchar(40) | SIM | NULO | ||
Cidade | Varchar(40) | SIM | NULO |
O campo Chave PRI é mencionado na frente da linha Employee_Id, o que significa que Employee_Id foi definido com sucesso como PRIMARY KEY.
Vantagens de usar PRIMARY KEY na tabela:
- Acesso rápido aos dados da tabela.
- Valores duplicados não são permitidos nos campos PRIMARY KEY.
Outra maneira de criar uma CHAVE PRIMÁRIA
CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );
Na mesma consulta acima, temos que mencionar NOT NULL na frente do nome do campo, que é criado como PRIMARY KEY, e no final, temos que escrever a palavra-chave PRIMARY KEY e o nome do campo entre parênteses, como acima inquerir.
Crie uma restrição PRIMARY KEY nos campos quando a tabela já existir
Use a seguinte consulta:
ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);
Utilizando a consulta ALTER TABLE para definir PRIMARY KEY, o campo PRIMARY KEY já foi declarado com a restrição NOT NULL.
SQL PRIMARY KEY em várias colunas
A seguinte consulta SQL cria uma PRIMARY KEY em mais de uma coluna quando a Tabela 'Student' é criada.
CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));
Apenas uma CHAVE PRIMÁRIA é feita no exemplo em Student_Id e Email.
Para verificar se nossa PRIMARY KEY está definida com sucesso ou não, podemos usar o comando DESC seguido do nome da tabela Student.
DESC Student;
Campos | Tipo | Nulo | Chave | Padrão | Extras |
ID_aluno | Int(11) | NÃO | PRI | NULO | |
Nome_Aluno | Varchar(40) | SIM | NULO | ||
Departamento | Varchar(40) | SIM | NULO | ||
Número_telefone | Int(10) | SIM | NULO | ||
Varchar(100) | NÃO | PRI | NULO |
Como podemos ver na frente da linha Student_Id e Email, os campos-chave PRI são mencionados, o que significa que Student_Id e Email foram definidos com sucesso como PRIMARY KEY.
Vamos agora executar SHOW CREATE TABLE seguido pelo nome da tabela Student, que descreverá a tabela Student.
SHOW CREATE TABLE Student;
Na saída acima, podemos ver que apenas uma PRIMARY KEY é criada e, entre parênteses, é mencionado o nome do campo, que é criado como PRIMARY KEY durante a criação da tabela.
Suponha que queremos remover a restrição PRIMARY KEY da tabela de alunos. Usaremos a seguinte consulta para eliminar a restrição PRIMARY KEY:
ALTER TABLE Student DROP PRIMARY KEY;
Para verificar se nossa PRIMARY KEY foi removida com sucesso ou não, usaremos o comando DESC seguido do nome da tabela Student.
DESC Student;
Campos | Tipo | Nulo | Chave | Padrão | Extras |
ID_aluno | Int(11) | NÃO | NULO | ||
Nome_Aluno | Varchar(40) | SIM | NULO | ||
Departamento | Varchar(40) | SIM | NULO | ||
Número_telefone | Int(10) | SIM | NULO | ||
Varchar(100) | NÃO | NULO |