A chave primária em SQL é um único ou um grupo de campos ou colunas que podem identificar exclusivamente uma linha em uma tabela. Simplificando, é uma coluna que aceita valores únicos para cada linha. Assim, sempre que você usar o comando INSERT INTO para inserir novos valores em um tabela, o valor da coluna ou colunas de chave primária deve ser exclusivo.
Quais são os benefícios de uma chave primária em SQL?
As vantagens mais significativas de uma chave primária são:
- Identifica exclusivamente cada linha de uma tabela
- Obtém um índice exclusivo para cada coluna de chave primária que ajuda com um acesso mais rápido
Quais são as propriedades e regras de uma chave primária SQL?
As propriedades de cada coluna ou colunas de chave primária são:
- Ele impõe exclusividade ao não aceitar quaisquer valores duplicados
- Uma chave primária identifica exclusivamente cada campo
- Uma tabela pode ter apenas uma chave primária
- As colunas primárias têm comprimento máximo de 900 bytes
- Uma coluna de chave primária não pode aceitar valores nulos
- Uma chave primária de coluna única é simples. Aquele que consiste em várias colunas é chamado de chave primária composta
- Pode ser criado em nível de coluna ou tabela, usando o destino instruções CREATE TABLE ou ALTER TABLE
Como criar uma chave primária SQL?
Existem duas maneiras de criar uma coluna de chave primária; por meio da codificação ou da GUI do SQL Server Management Studio. Você percorrerá os dois caminhos neste artigo, começando com o método Management Studio.
Criando uma chave primária em SQL usando o SQL Server Management Studio
Você pode criar uma coluna de chave primária usando o SQL GUI do Server Management Studio com as seguintes etapas.
1. Abra o banco de dados e clique com o botão direito do mouse no nome da tabela em que deseja definir a chave primária.
2. Em seguida, clique com o botão direito no nome da coluna e selecione a opção definir chave primária.
3. Isso fará uma alteração e uma chave aparecerá ao lado da coluna, confirmando que a coluna agora é uma coluna de chave primária.
Criando uma chave primária em SQL usando código
Você pode criar uma coluna de chave primária em uma tabela usando a restrição de chave primária.
CRIAR TABELA Alunos (
ID INT PRIMARY KEY,
Nome VARCHAR (20),
Email_ID NVARCHAR (25)
);
INSERIR NOS VALORES DOS ALUNOS (1,’George’,’ge.com’);
INSERIR NOS VALORES DOS ALUNOS (2,’David’,’da.com’);
INSERIR NOS VALORES DOS ALUNOS (3,’Aakash’,’aa.com’);
SELECIONE * DOS Alunos;
Resultado:
Agora, tente inserir um valor duplicado para verificar se a restrição de chave primária é aplicada ou não.
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);
SELECIONE * DOS Alunos;
Resultado:
Como você pode ver na saída, ele não completou o último comando INSERT INTO porque o valor 2 do ID estava duplicado.
Usando uma chave primária SQL na criação de uma tabela
Conforme mencionado anteriormente, você pode criar uma chave primária usando os comandos CREATE TABLE e ALTER TABLE. Você também pode usá-lo para criar a chave primária nos níveis de coluna e tabela. Esta seção examinará como usar o comando CREATE TABLE para criar chaves primárias em nível de coluna e tabela.
Exemplo: usando a chave primária no nível da coluna em SQL na criação de tabela
Chave primária de nível de coluna significa defini-la apenas para uma única coluna em toda a tabela. Usando a mesma referência de tabela de Aluno com os mesmos valores, crie a chave primária no nível da coluna e verifique se funciona conforme o esperado.
MySQL
Para definir uma chave primária no nível da coluna no MySQL, use o seguinte código:
CRIAR TABELA Alunos (
ID INT,
Nome VARCHAR (20),
Email_ID NVARCHAR (25),
CHAVE PRIMÁRIA (ID)
);
INSERIR NOS VALORES DOS ALUNOS (1,’George’,’ge.com’);
INSERIR NOS VALORES DOS ALUNOS (2,’David’,’da.com’);
INSERIR NOS VALORES DOS ALUNOS (3,’Aakash’,’aa.com’);
SELECIONE * DOS Alunos;
Resultado:
Agora, você precisa verificar se foi implementado corretamente.
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);
SELECIONE * DOS Alunos;
Resultado:
SQL Server/Oracle/MS Access
Para definir uma chave primária no nível da coluna no SQL Server/Oracle/MS Access, use o seguinte código:
CRIAR TABELA Alunos (
ID INT PRIMARY KEY,
Nome VARCHAR (20),
Email_ID NVARCHAR (25)
);
INSERIR NOS VALORES DOS ALUNOS (1,’George’,’ge.com’);
INSERIR NOS VALORES DOS ALUNOS (2,’David’,’da.com’);
INSERIR NOS VALORES DOS ALUNOS (3,’Aakash’,’aa.com’);
SELECIONE * DOS Alunos;
Resultado:
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);
SELECIONE * DOS Alunos;
Resultado:
Exemplo: usando a chave primária no nível da tabela em SQL na criação da tabela
A chave primária de nível de tabela é útil se você deseja definir várias colunas como chaves primárias em uma única tabela. Também é conhecida como chave primária composta. Para este exemplo, você deve definir a coluna Email_ID como a chave primária e a coluna ID. A sintaxe para defini-lo para MySQL, SQL Server, Oracle e MS Access é:
CRIAR TABELA Alunos (
ID INT,
Nome VARCHAR (20),
Email_ID NVARCHAR (25),
CONSTRAINT PK_Students CHAVE PRIMÁRIA (ID, Email_ID)
);
INSERIR NOS VALORES DOS ALUNOS (1,’George’,’ge.com’);
INSERIR NOS VALORES DOS ALUNOS (2,’David’,’da.com’);
INSERIR NOS VALORES DOS ALUNOS (3,’Aakash’,’aa.com’);
SELECIONE * DOS Alunos;
Resultado:
-verificar a implementação da chave primária
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);
SELECIONE * DOS Alunos;
Resultado:
Como você pode ver na saída, a tabela ainda aceita a entrada. Por que você acha que é isso? Isso porque os dados na coluna Email_ID ainda eram diferentes. Assim, para o sistema, eram duas linhas diferentes com valores diferentes. Agora, tente inserir uma linha com os mesmos valores para ID e Email_ID e veja o que acontece.
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’da.com’);
SELECIONE * DOS Alunos;
Resultado:
Como esperado, o sistema gerou um erro.
Usando a chave primária SQL na tabela Alter
O comando ALTER TABLE pode criar uma chave primária na coluna de uma tabela já criada. Você pode definir novamente uma única coluna ou várias colunas usando o comando ALTER TABLE. Uma coisa a ser observada ao usar o comando ALTER TABLE é que, ao usá-lo, você precisa garantir que todas as linhas já inseridas na coluna sejam exclusivas. Também é importante garantir que as colunas sejam definidas com uma restrição NOT NULL; caso contrário, a consulta falhará e gerará um erro.
Exemplo: usando a chave primária em SQL na tabela de alteração para coluna única
Você pode usar o comando ALTER TABLE com MySQL, SQL Server, Oracle e MS Access. Para este exemplo, você terá que usar o servidor Oracle. Primeiro, crie a tabela Alunos sem definir nenhuma coluna como a chave primária para descrevê-la usando o comando ALTER TABLE.
CRIAR TABELA Alunos (
S_ID NUMBER NOT NULL,
Nome VARCHAR2 (20),
Email_ID VARCHAR2 (25)
);
INSERIR NOS VALORES DOS ALUNOS (1,’George’,’ge.com’);
INSERIR NOS VALORES DOS ALUNOS (2,’David’,’da.com’);
INSERIR NOS VALORES DOS ALUNOS (3,’Aakash’,’aa.com’);
SELECIONE * DOS Alunos;
Resultado:
Agora, use o comando ALTER TABLE para tornar a coluna ID primária e inserir um valor duplicado.
ALTER TABLE Alunos
ADICIONE CHAVE PRIMÁRIA (S_ID);
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);
Resultado:
Como esperado, o servidor não aceitou a linha devido à violação da chave primária.
Exemplo: usando a chave primária em SQL na tabela de alteração para colunas múltiplas
Novamente, a sintaxe é a mesma para MySQL, SQL Server, Oracle e MS Access. Aqui, use o servidor Oracle e use o comando ALTER TABLE para nomear e criar uma chave primária para o S_ID e Email_ID. Use o mesmo código acima para criar a tabela e, em seguida, adicione o seguinte comando ALTER TABLE e insira valores duplicados.
ALTER TABLE Alunos
ADICIONE CONSTRAINT PK_Students PRIMARY KEY (S_ID, Email_ID);
Resultado:
-Adicionando valor duplicado
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’da.com’);
Resultado:
Você obteve o erro como deveria. Lembre-se de que o servidor o considerará igual apenas se os valores de ambas as colunas forem iguais.
Como eliminar uma chave primária no SQL?
Você pode eliminar rapidamente uma restrição de chave primária em todos os bancos de dados usando o comando ALTER TABLE. No entanto, a sintaxe para MySQL e SQL Server/Oracle/MS Access é diferente.
Descartando a chave primária no SQL Server, Oracle e MS Access
A sintaxe para descartar uma chave primária é:
ALTER TABLE nome_tabela
DROP CONSTRAINT PRIMARY_KEY_NAME
Vamos eliminar a chave primária PK_Students que criamos para a tabela Alunos na última seção usando o servidor Oracle.
ALTER TABLE Alunos
DROP CONSTRAINT PK_Students;
Resultado:
Agora, insira o valor duplicado que gerou o erro anteriormente.
INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’da.com’);
SELECIONE * DOS Alunos;
Resultado:
Como você pode ver na saída, ele inseriu a linha na tabela apesar de ter os mesmos valores de ID e coluna Email_ID. Assim, você pode concluir que a chave primária SK_Students foi descartada.
Eliminando a chave primária no MySQL
A sintaxe para descartar a chave primária no MySQL é:
ALTER TABLE nome_tabela
DROP CONSTRAINT PRIMARY KEY
Use a mesma tabela de Alunos que você tem usado até agora e retire a chave primária da coluna ID.
CRIAR TABELA Alunos (
ID INT,
Nome VARCHAR (20),
Email_ID NVARCHAR (25),
CHAVE PRIMÁRIA (ID)
);
INSERIR NOS VALORES DOS ALUNOS (1,’George’,’ge.com’);
INSERIR NOS VALORES DOS ALUNOS (2,’David’,’da.com’);
INSERIR NOS VALORES DOS ALUNOS (3,’Aakash’,’aa.com’);
SELECIONE * DOS Alunos;
Resultado:
Vamos eliminar a chave primária agora e inserir uma duplicata para ver se ela foi eliminada de forma adequada ou não.
ALTER TABLE Alunos
SOLTAR A CHAVE PRIMÁRIA;
INSERIR EM VALORES (2,’Chris’,’da.com’);
SELECIONE * DOS Alunos;
Resultado:
Como a tabela aceitou valores duplicados para a coluna ID, você pode confirmar se ela descartou a chave primária.
Ganhe experiência nas mais recentes ferramentas e técnicas de análise de negócios com o Programa de certificação de analista de negócios . Inscreva-se agora!
Conclusão:
Neste artigo, você aprendeu tudo sobre a chave primária SQL. Você aprendeu como criá-lo em diferentes bancos de dados em diferentes níveis usando os comandos CREATE TABLE e ALTER TABLE. Este artigo também explorou como descartar uma chave primária em vários bancos de dados. A chave primária é uma restrição essencial que o ajudará a manter a integridade e autenticidade dos bancos de dados .
Se você gosta de SQL e deseja seguir uma carreira na área, pode optar pelo Treinamento de certificação em SQL . O treinamento forneceu todos os materiais de aprendizagem e estratégias de aprendizagem aplicadas em diferentes tipos de servidores SQL. Portanto, é especializado em ajudá-lo a se destacar no gerenciamento de banco de dados SQL.
Tem alguma pergunta para nós? Deixe-os na seção de comentários deste artigo. Nossos especialistas entrarão em contato com você da mesma forma, o mais rápido possível!