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.

Curso GRATUITO: Introdução à Análise de Dados

O domínio da análise de dados está à distância de um clique! Começar a aprender

Curso GRATUITO: Introdução à Análise de Dados

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.

SQLPrimaryKey_1.

2. Em seguida, clique com o botão direito no nome da coluna e selecione a opção definir chave primária.

SQLPrimaryKey_2

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.

SQLPrimaryKey_3.

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:

SQLPrimaryKey_4.

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:

SQLPrimaryKey_5

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:

SQLPrimaryKey_6

Agora, você precisa verificar se foi implementado corretamente.

INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);

SELECIONE * DOS Alunos;

Resultado:

SQLPrimaryKey_7

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:

SQLPrimaryKey_8

INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);

SELECIONE * DOS Alunos;

Resultado:

SQLPrimaryKey_9

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:

SQLPrimaryKey_10

-verificar a implementação da chave primária

INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’ch.com’);

SELECIONE * DOS Alunos;

Resultado:

SQLPrimaryKey_11

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:

SQLPrimaryKey_12

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:

SQLPrimaryKey_13

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:

SQLPrimaryKey_14.

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:

SQLPrimaryKey_17.

-Adicionando valor duplicado

INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’da.com’);

Resultado:

SQLPrimaryKey_16

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.

Programa de Pós-Graduação em Análise de Negócios

Em parceria com a Purdue University VER CURSO

Programa de Pós-Graduação em Análise de Negócios

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:

SQLPrimaryKey_17.

Agora, insira o valor duplicado que gerou o erro anteriormente.

INSERIR NOS VALORES DOS ALUNOS (2,’Chris’,’da.com’);

SELECIONE * DOS Alunos;

Resultado:

SQLPrimaryKey_18

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:

SQLPrimaryKey_19

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:

SQLPrimaryKey_20.

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!

Source link

Categories: Wordpress