SQL - chave primária

Uma chave primária é um campo em uma tabela que identifica exclusivamente cada linha / registro em uma tabela de banco de dados. As chaves primárias devem conter valores exclusivos. Uma coluna de chave primária não pode ter valores NULL.

Uma tabela pode ter apenas uma chave primária, que pode consistir em um ou vários campos. Quando vários campos são usados ​​como uma chave primária, eles são chamados de chave composta.

Se uma tabela tem uma chave primária definida em qualquer campo (s), então você não pode ter dois registros com o mesmo valor desse campo (s).

Note - Você usaria esses conceitos ao criar tabelas de banco de dados.

Criar chave primária

Esta é a sintaxe para definir o atributo ID como uma chave primária em uma tabela CUSTOMERS.

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

Para criar uma restrição PRIMARY KEY na coluna "ID" quando a tabela CUSTOMERS já existe, use a seguinte sintaxe SQL -

ALTER TABLE CUSTOMER ADD PRIMARY KEY (ID);

NOTE - Se você usar a instrução ALTER TABLE para adicionar uma chave primária, as colunas da chave primária já devem ter sido declaradas como não contendo valores NULL (quando a tabela foi criada pela primeira vez).

Para definir uma restrição PRIMARY KEY em várias colunas, use a sintaxe SQL fornecida a seguir.

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),        
   PRIMARY KEY (ID, NAME)
);

Para criar uma restrição PRIMARY KEY nas colunas "ID" e "NAMES" quando a tabela CUSTOMERS já existe, use a seguinte sintaxe SQL.

ALTER TABLE CUSTOMERS 
   ADD CONSTRAINT PK_CUSTID PRIMARY KEY (ID, NAME);

Excluir chave primária

Você pode limpar as restrições de chave primária da tabela com a sintaxe fornecida abaixo.

ALTER TABLE CUSTOMERS DROP PRIMARY KEY ;
sql-rdbms-concepts.htm