Riepilogo: in questo tutorial imparerai come utilizzare il vincolo della chiave primaria MySQL per creare la chiave primaria per una tabella.
Introduzione alla chiave primaria MySQL
Una chiave primaria è una colonna o un insieme di colonne che identifica in modo univoco ogni riga della tabella. La chiave primaria segue queste regole:
- Una chiave primaria deve contenere valori univoci. Se la chiave primaria è costituita da più colonne, la combinazione di valori in queste colonne deve essere univoca.
- Una colonna della chiave primaria non può avere valori
NULL
. Qualsiasi tentativo di inserire o aggiornareNULL
nelle colonne della chiave primaria genererà un errore. Tieni presente che MySQL aggiunge implicitamente unNOT NULL
vincolo alle colonne della chiave primaria. - Una tabella può avere una sola chiave primaria.
Perché MySQL funziona più velocemente con numeri interi, il tipo di dati della colonna della chiave primaria deve essere il numero intero, ad esempio INT,
BIGINT
. E dovresti assicurarti che gli intervalli di valori del tipo intero per la chiave primaria siano sufficienti per memorizzare tutte le possibili righe che la tabella potrebbe avere.
Una colonna della chiave primaria spesso ha il AUTO_INCREMENT
attributo che genera automaticamente un numero intero sequenziale ogni volta che inserisci una nuova riga nella tabella.
Quando definisci una chiave primaria per una tabella, MySQL crea automaticamente un indice chiamato PRIMARY
.
Esempi di CHIAVE PRIMARIA di MySQL
Il vincolo PRIMARY KEY
ti consente di definire una chiave primaria di una tabella quando crei o modifichi una tabella.
1) Definisci un vincolo PRIMARY KEY in CREATE TABLE
In genere, definisci la chiave primaria per una tabella nel CREATE TABLE
.
Se la chiave primaria ha una colonna, puoi utilizzare il vincolo PRIMARY KEY
come vincolo di colonna:
Code language: SQL (Structured Query Language) (sql)
Quando la chiave primaria ha più di una colonna, devi usare th e PRIMARY KEY
vincolo come vincolo di tabella.
In questa sintassi, separa le colonne column_list
con virgole ( ,).
Il vincolo di tabella PRIMARY KEY
può essere utilizzato quando la chiave primaria ha una colonna:
L’esempio seguente crea una tabella denominata users
la cui chiave primaria è la colonna user_id
:
Questa istruzione crea la roles
tabella che ha il PRIMARY KEY
vincolo come vincolo di tabella:
Nel caso in cui la chiave primaria sia composta da più colonne, è necessario specificarle alla fine dell’istruzione CREATE TABLE
. Inserisci un elenco separato da virgole di colonne chiave primaria tra parentesi seguito dalle PRIMARY KEY
parole chiave.
L’esempio seguente crea user_roles
tabella la cui chiave primaria è composta da due colonne: user_id
e role_id
. Definisce il vincolo PRIMARY KEY
come vincolo di tabella:
Nota che l’istruzione ha anche creato due vincoli di chiave esterna.
2) Definisci PRIMARY Vincoli KEY utilizzando ALTER TABLE
Se una tabella, per alcuni motivi, non ha una chiave primaria, puoi utilizzare l’istruzione ALTER TABLE
per aggiungere una chiave primaria a la tabella come segue:
Code language: SQL (Structured Query Language) (sql)
L’esempio seguente aggiunge la colonna id
alla chiave primaria.
Per prima cosa, crea la tabella pkdemos
senza una chiave primaria.
Code language: SQL (Structured Query Language) (sql)
Secondo, aggiungi una chiave per la tabella pkdemos
utilizzando l’istruzione ALTER TABLE
:
Code language: SQL (Structured Query Language) (sql)
Se aggiungi una chiave primaria a una tabella che contiene già dati. I dati nella colonna o nelle colonne, che saranno inclusi nella chiave primaria, devono essere univoci e non NULL.
PRIMARY KEY vs. UNIQUE KEY vs. KEY
KEY
è il sinonimo di INDEX
. Utilizzare KEY
quando si desidera creare un indice per una colonna o un insieme di colonne che non fa parte di una chiave primaria o di una chiave univoca.
Un indice UNIQUE
garantisce che i valori in una colonna devono essere univoci. A differenza dell’indice PRIMARY
, MySQL consente valori NULL
nell’indice UNIQUE
. Inoltre, una tabella può avere più indici UNIQUE
.
Supponi che email
e username
degli utenti nella tabella users
deve essere univoco.Per applicare queste regole, puoi definire gli indici UNIQUE
per le colonne email
e username
come la seguente dichiarazione:
Aggiungi un UNIQUE
indice per la colonna username
:
Code language: SQL (Structured Query Language) (sql)
Aggiungi un UNIQUE
indice per la colonna email
:
Code language: SQL (Structured Query Language) (sql)
In questo tutorial hai imparato come creare una chiave primaria per una nuova tabella o come aggiungere una chiave primaria a una tabella esistente.
- Questo tutorial è stato utile?
- SìNo