Primary Key in SQL

Nel linguaggio SQL il vincolo Primary Key definisce un attributo come chiave primaria della tabella.

La colonna (attributo) definita come chiave primaria non può contenere né valori ripetuti, né valori nulli.

Quando definisco una chiave primaria l'attributo è automaticamente considerato NOT NULL. Non occorre specificarlo.

Nota. Il linguaggio SQL restituisce un messaggio di errore quando si cerca di definire NULL un attributo della chiave primaria.

Ogni tabella può avere al più una sola chiave primaria.

Posso comunque applicare il vincolo Primary Key anche alla combinazione di due o più attributi.

Differenza tra Primary Key e Unique. Il vincolo Unique può essere applicato su più colonne diverse (attributi) e non esclude la presenza dei valori nulli.

Si tratta di un vincolo intrarelazionale perché può essere applicato in una relazione (tabella).

Un esempio pratico

In questa tabella definisco l'attributo CodiceCliente come PRIMARY KEY.

CREATE TABLE Clienti
(
CodiceCliente NUMBER(5) PRIMARY KEY,
Cognome VARCHAR(20),
Nome VARCHAR(20),
Città VARCHAR(20)
);

Pertanto, i valori contenuti nella colonna CodiceCliente non possono essere ripetuti, né nulli.

un esempio di tabella

Esempio 2

Posso definire la chiave primaria anche indicandola alla fine della tabella.

CREATE TABLE Clienti
(
CodiceCliente NUMBER(5),
Cognome VARCHAR(20),
Nome VARCHAR(20),
Città VARCHAR(20),
PRIMARY KEY ( CodiceCliente )
);

Esempio 3 ( chiave primaria composta )

In questo esempio creo una chiave primaria composta dalla combinazione degli attributi Nome e Cognome

CREATE TABLE Clienti
(
CodiceCliente NUMBER(5),
Cognome VARCHAR(20),
Nome VARCHAR(20),
Città VARCHAR(20),
PRIMARY KEY ( Nome, Cognome )
);

Questo vuol dire che non posso inserire persone con lo stesso nome e cognome.

La combinazione nome + cognome è la chiave primaria.

A cosa serve il vincolo Primary Key

Mi permette di identificare in modo univoco ogni riga della tabella.

Per questa ragione l'attributo scelto come superchiave è anche detto campo identificatore.

La chiave primaria è particolarmente utile nelle operazioni di ricerca e di aggiornamento e modifica dei dati contenuti in una riga (istanza) della tabella.

Esempio

Per modificare la città nella seconda riga della precedente tabella scrivo

UPDATE Clienti SET Città = "Roma" WHERE CodiceCliente = "1231"

Il comando Update cerca la chiave primaria "1231" nella tabella.

Una volta trovata modifica il valore dell'attributo Città scrivendo Roma.

Come eliminare la chiave primaria in una tabella

Per rimuovere la Primary Key in una tabella utilizzo il comando ALTER TABLE con l'opzione DROP PRIMARY KEY

Esempio

ALTER TABLE tabella DROP PRIMARY KEY

Non occorre indicare il nome dell'attributo, perché una tabella può avere una sola primary key.

Questo comando rimuove il vincolo dalla tabella lasciando immutato tutto il resto.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Menu principale

  1. Il linguaggio Sql
  2. Come installare MySQL sul PC
  3. Come installare PostgreSQL
  4. Come creare una tabella
  5. Come fare una selezione
  6. Come modificare i dati in una tabella