logo

Kā pievienot ārējo atslēgu SQL

Šajā rakstā mēs uzzināsim, kā pievienot svešo atslēgu mūsu SQL datu bāzes tabulas kolonnai.

The SVEŠA ATSLĒGA SQL tiek izmantots, lai datubāzē savienotu divu tabulu ierakstus. Kolonnai, kas vienā tabulā definēta kā ĀRĒJĀ ATSLĒGA, ir jābūt PRIMARY KEY citā tās pašas datu bāzes tabulā.

Mēs varam viegli pievienot kolonnai ārējo atslēgu šādos divos veidos:

  1. Pievienojiet ārējo atslēgu, izmantojot priekšrakstu Izveidot tabulu
  2. Pievienojiet ārējo atslēgu, izmantojot Alter Table paziņojumu

Ja vēlaties SQL tabulas kolonnai pievienot ĀRVALSTS ATSLĒGU, jums ir jāveic tālāk norādītās darbības norādītajā secībā:

  1. Izveidojiet datu bāzi sistēmā.
  2. Izveidojiet divas tabulas vienā datu bāzē.
  3. Skatiet tabulas struktūru pirms ārējās atslēgas pievienošanas.
  4. Pievienojiet tabulai ārējo atslēgu.
  5. Skatiet tabulas struktūru.

Tagad mēs izskaidrosim iepriekš minētās darbības ar piemēru:

1. darbība: izveidojiet datu bāzi

Strukturēto vaicājumu valodā datu bāzes izveide ir pirmais solis strukturēto tabulu glabāšanai datu bāzē.

Lai izveidotu datu bāzi, izmantojiet šādu SQL sintaksi:

 CREATE DATABASE Database_Name; 

Pieņemsim, ka vēlaties izveidot Transportlīdzekļi datu bāze. Lai to izdarītu, strukturētā vaicājuma valodā ir jāievada šāda komanda:

 CREATE DATABASE Vehicles; 

2. darbība: izveidojiet datu bāzē divas tabulas

Tagad, lai izveidotu tabulas savā datu bāzē, ir jāizmanto šāda SQL sintakse:

 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) ); 

Šis SQL vaicājums izveido Automašīnas_detaļas tabulā Transportlīdzekļi datu bāze.

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

Tiek izveidots šāds vaicājums Automašīnas_Cenu_Detaļas tabulā Transportlīdzekļi datu bāze:

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

3. darbība. Skatiet tabulas struktūru pirms ārējās atslēgas pievienošanas

Pēc tabulas izveides un datu ievietošanas varat skatīt abu tabulu struktūru, savā SQL lietojumprogrammā ierakstot šādu vaicājumu:

 DESC Cars or DESCRIBE Cars ; 

Lauks Tips NULL Atslēga Noklusējums Papildus
Auto_numurs INT AT NULL auto_increment
Modelis INT - NULL -
Automašīnas_nosaukums Varčars (20) - NULL
Krāsa Varčars (20) - NULL -

 DESC Cars_Price_Details; 

Lauks Tips NULL Atslēga Noklusējums Papildus
Auto_modelis INT AT NULL -
Auto_Cena INT - NULL

4. darbība: tabulas kolonnai pievienojiet svešu atslēgu

Ja vēlaties pievienot ārējo atslēgu tabulas izveides laikā, SQL ir jāizmanto šāda CREATE TABLE sintakse:

 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) ) ; 

Piemērs

Šis vaicājums tabulas Cars_Details kolonnā 'Modelis' pievieno ĀRZEMES ATSLĒGU:

 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 ) ; 

Šis SQL vaicājums pievienojas Cars_Details galds ar Automašīnas_Cenu_Detaļas tabula ar ārējās atslēgas palīdzību.

5. darbība. Skatiet tabulas struktūru pēc ārējās atslēgas pievienošanas

Lai pārbaudītu izpildītā vaicājuma rezultātu 4thsolis, jums ir jāievada šāda DESC komanda SQL:

 DESC Cars_Details; 

Lauks Tips NULL Atslēga Noklusējums Papildus
Auto_numurs INT PRIMĀRS NULL auto_increment
Modelis INT ĀRZEMES NULL -
Automašīnas_nosaukums Varčars (20) - NULL -
Krāsa Varčars (20) - NULL -
Cena INT - NULL -
Vidēji INT - 0 -

Kā parādīts iepriekš sniegtajā izvadē, kolonna Modelis tiek izveidota kā ārējā atslēga.

Pievienojiet svešo atslēgu esošajai tabulai

Ja vēlaties pievienot ārējo atslēgu esošajai tabulai, SQL ir jāizmanto šāda ALTER sintakse:

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

Šis vaicājums pievieno SVEŠU ATSLĒGU kolonnā Modelis, ja tabula Cars_Details jau pastāv datu bāzes sistēmā:

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

Šis ALTER vaicājums SQL pievienojas Cars_Details galds ar Automašīnas_Cenu_Detaļas tabula ar ārējās atslēgas palīdzību.

Izdzēsiet ārējo atslēgu no tabulas

Ja vēlaties dzēst ārējo atslēgu no tabulas kolonnas, jums ir jāizmanto sekojošais ALTER sintakse SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

Šis vaicājums izdzēš izveidoto ĀRZEMES ATSLĒGU no tabulas Cars_Details kolonnas Modelis:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;