Chiave primaria MySQL

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 aggiornare NULL nelle colonne della chiave primaria genererà un errore. Tieni presente che MySQL aggiunge implicitamente un NOT 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

Leave a Reply

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *