logo

Sådan tilføjes fremmednøgle i SQL

I denne artikel lærer vi, hvordan du tilføjer en fremmednøgle til kolonnen i tabellen i vores SQL-database.

Det FREMMED NØGLE i SQL bruges til at forbinde posten af ​​to tabeller i databasen. Kolonnen, der er defineret som FOREIGN KEY i én tabel, skal være den PRIMÆRE NØGLE i en anden tabel i den samme database.

Vi kan nemt tilføje fremmednøgle til kolonnen på følgende to måder:

  1. Tilføj fremmednøgle ved hjælp af Create table statement
  2. Tilføj fremmednøgle ved hjælp af Alter Table-sætning

Hvis du vil tilføje en UDENLANDSKE NØGLE til kolonnen i SQL-tabellen, skal du følge nedenstående trin i den givne rækkefølge:

  1. Opret databasen i systemet.
  2. Opret to tabeller i samme database.
  3. Se tabelstruktur før tilføjelse af fremmednøgle.
  4. Tilføj en fremmednøgle til tabellen.
  5. Se tabelstrukturen.

Nu skal vi forklare ovenstående trin med et eksempel:

Trin 1: Opret en database

I Structured Query Language er oprettelse af en database det første trin til lagring af de strukturerede tabeller i databasen.

Brug følgende SQL-syntaks til at oprette en database:

 CREATE DATABASE Database_Name; 

Antag, at du vil oprette Køretøjer database. Til dette skal du skrive følgende kommando i Structured Query Language:

 CREATE DATABASE Vehicles; 

Trin 2: Opret to tabeller i databasen

Nu skal du bruge følgende SQL-syntaks til at oprette tabellerne i din 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) ); 

Følgende SQL-forespørgsel opretter Biler_Detaljer bord i Køretøjer database.

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

Følgende forespørgsel opretter Biler_Pris_Detaljer bord i Køretøjer database:

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

Trin 3: Se tabelstrukturen før tilføjelse af fremmednøgle

Efter tabeloprettelse og dataindsættelse kan du se strukturen af ​​begge tabeller ved at skrive følgende forespørgsel i din SQL-applikation:

 DESC Cars or DESCRIBE Cars ; 

Mark Type NUL Nøgle Standard Ekstra
Bil_nummer INT INGEN NUL auto_increment
Model INT Ja - NUL -
Bil_navn Varchar(20) Ja - NUL
Farve Varchar(20) Ja - NUL -

 DESC Cars_Price_Details; 

Mark Type NUL Nøgle Standard Ekstra
Bil_model INT Ingen NUL -
Bil_Pris INT Ingen - NUL

Trin 4: Tilføj en fremmednøgle til kolonnen i tabellen

Hvis du vil tilføje fremmednøglen på tidspunktet for oprettelse af tabellen, skal du bruge følgende CREATE TABLE-syntaks i 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) ) ; 

Eksempel

Følgende forespørgsel tilføjer FOREIGN KEY i kolonnen 'Model' i tabellen 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 ) ; 

Denne forespørgsel i SQL joins Cars_Details bord med Biler_Pris_Detaljer tabel ved hjælp af en fremmednøgle.

Trin 5: Se tabelstrukturen efter tilføjelse af fremmednøgle

For at kontrollere resultatet af forespørgslen udført i den 4thtrin, du skal skrive følgende DESC-kommando i SQL:

 DESC Cars_Details; 

Mark Type NUL Nøgle Standard Ekstra
Bil_nummer INT Ja PRIMÆR NUL auto_increment
Model INT Ingen UDENLANDSK NUL -
Bil_navn Varchar(20) Ja - NUL -
Farve Varchar(20) Ja - NUL -
Pris INT INGEN - NUL -
Gennemsnit INT INGEN - 0 -

Som vist i ovenstående output oprettes kolonnen Model som fremmednøgle.

Tilføj fremmednøgle til den eksisterende tabel

Hvis du vil tilføje fremmednøglen til den eksisterende tabel, skal du bruge følgende ALTER-syntaks i SQL:

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

Følgende forespørgsel tilføjer en UDENLANDSKE NØGLE i kolonnen Model, når tabellen Cars_Details allerede findes i databasesystemet:

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

Denne ALTER-forespørgsel i SQL joins Cars_Details bord med Biler_Pris_Detaljer tabel ved hjælp af en fremmednøgle.

Slet fremmednøgle fra tabellen

Hvis du vil slette fremmednøglen fra kolonnen i tabellen, skal du bruge følgende ÆNDRE syntaks i SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

Følgende forespørgsel sletter den oprettede FOREIGN KEY fra kolonnen Model i tabellen Cars_Details:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;