logo

Come aggiungere una chiave esterna in SQL

In questo articolo impareremo come aggiungere una chiave esterna alla colonna nella tabella del nostro database SQL.

IL CHIAVE ESTERA in SQL viene utilizzato per unire il record di due tabelle nel database. La colonna definita come FOREIGN KEY in una tabella deve essere PRIMARY KEY in un'altra tabella nello stesso database.

Possiamo facilmente aggiungere una chiave esterna alla colonna nei due modi seguenti:

  1. Aggiungi la chiave esterna utilizzando l'istruzione Crea tabella
  2. Aggiungi una chiave esterna utilizzando l'istruzione Alter Table

Se vuoi aggiungere una CHIAVE ESTERA alla colonna nella tabella SQL, devi seguire i passaggi seguenti nella sequenza indicata:

  1. Creare il database nel sistema.
  2. Creare due tabelle nello stesso database.
  3. Visualizza la struttura della tabella prima dell'aggiunta della chiave esterna.
  4. Aggiungi una chiave esterna alla tabella.
  5. Visualizza la struttura della tabella.

Ora spiegheremo i passaggi precedenti con un esempio:

Passaggio 1: creare un database

Nello Structured Query Language, la creazione di un database è il primo passo per archiviare le tabelle strutturate nel database.

Utilizzare la seguente sintassi SQL per creare un database:

 CREATE DATABASE Database_Name; 

Supponiamo di voler creare il file Veicoli Banca dati. Per questo, devi digitare il seguente comando in Structured Query Language:

 CREATE DATABASE Vehicles; 

Passaggio 2: crea due tabelle nel database

Ora devi utilizzare la seguente sintassi SQL per creare le tabelle nel tuo database:

 CREATE TABLE table_name ( column_Name_1 data type (size of the column_1), column_Name_2 data type (size of the column_2), column_Name_3 data type (size of the column_3), ... column_Name_N data type (size of the column_1) ); 

La seguente query SQL crea il file Auto_Dettagli tabella nel Veicoli Banca dati.

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), ); 

Viene creata la query seguente Auto_Prezzo_Dettagli tabella nel Veicoli Banca dati:

 CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL ); 

Passaggio 3: visualizzare la struttura della tabella prima dell'aggiunta della chiave esterna

Dopo la creazione della tabella e l'inserimento dei dati, puoi visualizzare la struttura di entrambe le tabelle digitando la seguente query nell'applicazione SQL:

 DESC Cars or DESCRIBE Cars ; 

Campo Tipo NULLO Chiave Predefinito Extra
Numero_auto INT NO A NULLO Incremento automatico
Modello INT - NULLO -
Nome_auto Varchar(20) - NULLO
Colore Varchar(20) - NULLO -

 DESC Cars_Price_Details; 

Campo Tipo NULLO Chiave Predefinito Extra
Modello d'auto INT NO A NULLO -
Auto_Prezzo INT NO - NULLO

Passaggio 4: aggiungi una chiave esterna alla colonna nella tabella

Se desideri aggiungere la chiave esterna al momento della creazione della tabella, devi utilizzare la seguente sintassi CREATE TABLE in SQL:

 CREATE TABLE table_name1 ( Column_Name_1 data type (size of the column_1), Column_Name_2 data type (size of the column_2), ......, Column_Name_N data type (size of the column_N) FOREIGN KEY REFERENCES Table_Name2 (Column_Name) ) ; 

Esempio

La seguente query aggiunge la FOREIGN KEY nella colonna 'Model' nella tabella Cars_Details:

 CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT, Model INT FOREIGN KEY REFERENCES Cars_Price_Details (Car_Model), Cars_Name VARCHAR (20), Color VARCHAR (20) UNIQUE, Price INT NOT NULL ) ; 

Questa query nei join SQL i Cars_Details tavolo con il Auto_Prezzo_Dettagli tabella con l'aiuto di una chiave esterna.

Passaggio 5: visualizzare la struttura della tabella dopo l'aggiunta della chiave esterna

Per verificare il risultato della query eseguita in il 4thfare un passo, devi digitare il seguente comando DESC in SQL:

 DESC Cars_Details; 

Campo Tipo NULLO Chiave Predefinito Extra
Numero_auto INT PRIMARIO NULLO Incremento automatico
Modello INT NO STRANIERO NULLO -
Nome_auto Varchar(20) - NULLO -
Colore Varchar(20) - NULLO -
Prezzo INT NO - NULLO -
Media INT NO - 0 -

Come mostrato nell'output precedente, la colonna Modello viene creata come chiave esterna.

Aggiungi la chiave esterna alla tabella esistente

Se vuoi aggiungere la chiave esterna alla tabella esistente, devi utilizzare la seguente sintassi ALTER in SQL:

 ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name); 

La seguente query aggiunge una FOREIGN KEY nella colonna Model quando la tabella Cars_Details esiste già nel sistema di database:

 ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model); 

Questa query ALTER nei join SQL i Cars_Details tavolo con il Auto_Prezzo_Dettagli tabella con l'aiuto di una chiave esterna.

Elimina la chiave esterna dalla tabella

Se vuoi eliminare la chiave esterna dalla colonna della tabella, devi utilizzare quanto segue ALTERARE sintassi in SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

La seguente query elimina la FOREIGN KEY creata dalla colonna Model della tabella Cars_Details:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;