Un campo, che contiene dati univoci in una tabella, è chiamato CHIAVE PRIMARIA (PK). Significa che un campo CHIAVE PRIMARIA deve contenere dati univoci nella tabella.
- Un campo CHIAVE PRIMARIA contiene valori su ogni riga.
- Il campo CHIAVE PRIMARIA non può contenere una stringa vuota.
- I dati della CHIAVE PRIMARIA non vengono mai modificati nel tempo.
- Una tabella può essere costituita da una sola CHIAVE PRIMARIA, che può essere costituita da uno o più campi nella tabella. Quando più di una colonna viene utilizzata come CHIAVE PRIMARIA della tabella, sono note come chiave composita nella tabella.
- Non ci saranno record duplicati per una CHIAVE PRIMARIA.
- Se un campo è impostato come CHIAVE PRIMARIA nella tabella, quel campo non può contenere i valori dello stesso campo più di una volta nella tabella.
Ad esempio, abbiamo una tabella Student nel database. La tabella contiene 4 campi Student_Id, Student_Name, Phone_Number ed Email. Student_Id and Email è la CHIAVE PRIMARIA nella tabella Studente. C'è solo una CHIAVE PRIMARIA ma può avere campi singoli o multipli nella tabella, come detto sopra. I dati di uno studente sono già presenti nella tabella, ma lo stesso studente aggiunge nuovamente i suoi dati con lo stesso ID e-mail. Quando lo studente inserisce i dettagli, un pop-up visualizzerà un messaggio "L'e-mail è già esistita". Viene visualizzato perché l'e-mail esiste già nella tabella e il campo dell'e-mail è la CHIAVE PRIMARIA e la CHIAVE PRIMARIA non può contenere valori duplicati.
Crea CHIAVE PRIMARIA su TABELLA SQL
La seguente query SQL crea una CHIAVE PRIMARIA nel campo Employee_Id quando viene creata la tabella "Employee".
CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );
La query precedente ha definito PRIMARY KEY nel campo Employee_Id. Possiamo citare il nome della chiave dopo il nome del campo e il tipo di dati. La query sopra è l'unico modo in cui possiamo creare Employee_Id come CHIAVE PRIMARIA.
Per verificare se la nostra CHIAVE PRIMARIA è stata definita correttamente o meno, possiamo utilizzare il comando DESC seguito dal nome della tabella Dipendente.
Dipendente DESC;
Campi | Digita | Null | Chiave | Predefinito | Extra |
Id_impiegato | Int(11) | NO | PRI | NULLO | |
Nome_impiegato | Varchar(40) | NO | NULLO | ||
Stipendio | Int(11) | NO | NULLO | ||
Dipartimento | Varchar(40) | SI | NULLO | ||
Città | Varchar(40) | SI | NULLO |
Il campo Chiave PRI è menzionato davanti alla riga Employee_Id, il che significa che Employee_Id è stato definito correttamente come CHIAVE PRIMARIA.
Vantaggi dell'utilizzo della CHIAVE PRIMARIA nella tabella:
- Accesso rapido ai dati dalla tabella.
- Non sono consentiti valori duplicati nei campi CHIAVE PRIMARIA.
Un altro modo per creare una CHIAVE PRIMARIA
CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );
Nella stessa query di cui sopra, dobbiamo menzionare NOT NULL davanti al nome del campo, che viene creato come PRIMARY KEY, e alla fine, dobbiamo scrivere la parola chiave PRIMARY KEY e il nome del campo tra parentesi proprio come sopra interrogazione.
Crea un vincolo PRIMARY KEY sui campi quando la tabella esiste già
Usa la seguente query:
ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);
Utilizzando la query ALTER TABLE per definire PRIMARY KEY, il campo PRIMARY KEY è già stato dichiarato con vincolo NOT NULL.
CHIAVE PRIMARIA SQL su più colonne
La seguente query SQL crea una CHIAVE PRIMARIA su più di una colonna quando viene creata la tabella 'Studente'.
CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));
Nell'esempio viene creata una sola CHIAVE PRIMARIA su Student_Id ed Email.
Per verificare se la nostra CHIAVE PRIMARIA è stata definita correttamente o meno, possiamo utilizzare il comando DESC seguito dal nome della tabella Studente.
DESC Student;
Campi | Digita | Null | Chiave | Predefinito | Extra |
ID_studente | Int(11) | NO | PRI | NULLO | |
Nome_studente | Varchar(40) | SI | NULLO | ||
Dipartimento | Varchar(40) | SI | NULLO | ||
Numero_Telefono | Int(10) | SI | NULLO | ||
Varchar(100) | NO | PRI | NULLO |
Come possiamo vedere davanti alla riga Student_Id ed Email, i campi chiave PRI sono menzionati, il che significa che Student_Id ed Email sono stati definiti correttamente come CHIAVE PRIMARIA.
Ora eseguiremo SHOW CREATE TABLE seguito dal nome della tabella Student, che descriverà la tabella Student.
SHOW CREATE TABLE Student;
Nell'output sopra, possiamo vedere che viene creata una sola CHIAVE PRIMARIA e tra parentesi viene menzionato il nome del campo, che viene creato come CHIAVE PRIMARIA durante la creazione della tabella.
Supponiamo di voler rimuovere il vincolo PRIMARY KEY dalla tabella studente. Utilizzeremo la seguente query per eliminare il vincolo PRIMARY KEY:
ALTER TABLE Student DROP PRIMARY KEY;
Per verificare se la nostra CHIAVE PRIMARIA è stata rimossa con successo o meno, utilizzeremo il comando DESC seguito dal nome della tabella Studente.
DESC Student;
Campi | Digita | Null | Chiave | Predefinito | Extra |
ID_studente | Int(11) | NO | NULLO | ||
Nome_studente | Varchar(40) | SI | NULLO | ||
Dipartimento | Varchar(40) | SI | NULLO | ||
Numero_Telefono | Int(10) | SI | NULLO | ||
Varchar(100) | NO | NULLO |