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:
- Tilføj fremmednøgle ved hjælp af Create table statement
- 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:
- Opret databasen i systemet.
- Opret to tabeller i samme database.
- Se tabelstruktur før tilføjelse af fremmednøgle.
- Tilføj en fremmednøgle til tabellen.
- 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 | PÅ | 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 | PÅ | 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;