SQL - Clé primaire

Une clé primaire est un champ dans une table qui identifie de manière unique chaque ligne / enregistrement dans une table de base de données. Les clés primaires doivent contenir des valeurs uniques. Une colonne de clé primaire ne peut pas avoir de valeurs NULL.

Une table ne peut avoir qu'une seule clé primaire, qui peut être constituée d'un ou de plusieurs champs. Lorsque plusieurs champs sont utilisés comme clé primaire, ils sont appelés clé composite.

Si une table a une clé primaire définie sur un ou plusieurs champs, vous ne pouvez pas avoir deux enregistrements ayant la même valeur que ce ou ces champs.

Note - Vous utiliseriez ces concepts lors de la création de tables de base de données.

Créer une clé primaire

Voici la syntaxe pour définir l'attribut ID comme clé primaire dans une table 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)
);

Pour créer une contrainte PRIMARY KEY sur la colonne "ID" lorsque la table CUSTOMERS existe déjà, utilisez la syntaxe SQL suivante -

ALTER TABLE CUSTOMER ADD PRIMARY KEY (ID);

NOTE - Si vous utilisez l'instruction ALTER TABLE pour ajouter une clé primaire, la ou les colonnes de clé primaire doivent déjà avoir été déclarées comme ne contenant pas de valeurs NULL (lors de la création de la table).

Pour définir une contrainte PRIMARY KEY sur plusieurs colonnes, utilisez la syntaxe SQL indiquée ci-dessous.

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)
);

Pour créer une contrainte PRIMARY KEY sur les colonnes "ID" et "NAMES" lorsque la table CUSTOMERS existe déjà, utilisez la syntaxe SQL suivante.

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

Supprimer la clé primaire

Vous pouvez effacer les contraintes de clé primaire du tableau avec la syntaxe indiquée ci-dessous.

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