In dit artikel leren we hoe u een externe sleutel kunt toevoegen aan de kolom in de tabel van onze SQL-database.
De VREEMDE SLEUTEL in SQL wordt gebruikt om de record van twee tabellen in de database samen te voegen. De kolom die in de ene tabel als FOREIGN KEY is gedefinieerd, moet de PRIMARY KEY zijn in een andere tabel in dezelfde database.
We kunnen op de volgende twee manieren eenvoudig een externe sleutel aan de kolom toevoegen:
- Voeg een externe sleutel toe met de instructie Create table
- Voeg een externe sleutel toe met behulp van de Alter Table-instructie
Als u een FOREIGN KEY aan de kolom in de SQL-tabel wilt toevoegen, moet u de onderstaande stappen in de aangegeven volgorde volgen:
- Maak de database in het systeem.
- Maak twee tabellen in dezelfde database.
- Bekijk de tabelstructuur vóór toevoeging van externe sleutels.
- Voeg een externe sleutel toe aan de tabel.
- Bekijk de tabelstructuur.
Nu gaan we de bovenstaande stappen uitleggen met een voorbeeld:
Stap 1: Maak een database
In de Structured Query Language is het maken van een database de eerste stap voor het opslaan van de gestructureerde tabellen in de database.
Gebruik de volgende SQL-syntaxis om een database te maken:
CREATE DATABASE Database_Name;
Stel dat u de Voertuigen database. Hiervoor moet u de volgende opdracht typen in Structured Query Language:
CREATE DATABASE Vehicles;
Stap 2: Maak twee tabellen in de database
Nu moet u de volgende SQL-syntaxis gebruiken voor het maken van de tabellen in uw 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) );
Met de volgende SQL-query wordt het Auto's_Details tafel in de Voertuigen database.
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), );
De volgende query wordt gemaakt Auto's_Prijs_Details tafel in de Voertuigen databank:
CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL );
Stap 3: Bekijk de tabelstructuur vóór toevoeging van externe sleutels
Nadat u de tabel hebt gemaakt en de gegevens hebt ingevoegd, kunt u de structuur van beide tabellen bekijken door de volgende query in uw SQL-toepassing te typen:
DESC Cars or DESCRIBE Cars ;
Veld | Type | NUL | Sleutel | Standaard | Extra |
---|---|---|---|---|---|
Auto nummer | INT | NEE | BIJ | NUL | auto_increment |
Model | INT | Ja | - | NUL | - |
Autonaam | Varchar(20) | Ja | - | NUL | |
Kleur | Varchar(20) | Ja | - | NUL | - |
DESC Cars_Price_Details;
Veld | Type | NUL | Sleutel | Standaard | Extra |
---|---|---|---|---|---|
Auto model | INT | Nee | BIJ | NUL | - |
Auto_Prijs | INT | Nee | - | NUL |
Stap 4: Voeg een Foreign key toe aan de kolom in de tabel
Als u de refererende sleutel wilt toevoegen op het moment dat u de tabel maakt, moet u de volgende CREATE TABLE-syntaxis in SQL gebruiken:
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) ) ;
Voorbeeld
Met de volgende query wordt de FOREIGN KEY toegevoegd aan de kolom 'Model' in de tabel 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 ) ;
Deze query in SQL voegt zich bij de Auto's_Details tafel met de Auto's_Prijs_Details tabel met behulp van een externe sleutel.
Stap 5: Bekijk de tabelstructuur na toevoeging van externe sleutels
Om het resultaat van de uitgevoerde query te controleren de 4estap, je moet de volgende DESC-opdracht in SQL typen:
DESC Cars_Details;
Veld | Type | NUL | Sleutel | Standaard | Extra |
---|---|---|---|---|---|
Auto nummer | INT | Ja | PRIMAIRE | NUL | auto_increment |
Model | INT | Nee | BUITENLANDS | NUL | - |
Autonaam | Varchar(20) | Ja | - | NUL | - |
Kleur | Varchar(20) | Ja | - | NUL | - |
Prijs | INT | NEE | - | NUL | - |
Gemiddeld | INT | NEE | - | 0 | - |
Zoals weergegeven in de bovenstaande uitvoer, wordt de kolom Model gemaakt als de externe sleutel.
Voeg een externe sleutel toe aan de bestaande tabel
Als u de refererende sleutel aan de bestaande tabel wilt toevoegen, moet u de volgende ALTER-syntaxis in SQL gebruiken:
ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name);
De volgende query voegt een FOREIGN KEY toe aan de kolom Model wanneer de tabel Cars_Details al bestaat in het databasesysteem:
ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model);
Deze ALTER-query in SQL voegt zich bij de Auto's_Details tafel met de Auto's_Prijs_Details tabel met behulp van een externe sleutel.
Verwijder de externe sleutel uit de tabel
Als u de externe sleutel uit de kolom van de tabel wilt verwijderen, moet u het volgende gebruiken WIJZIGEN syntaxis in SQL:
ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name;
Met de volgende query wordt de gemaakte FOREIGN KEY verwijderd uit de kolom Model van de tabel Cars_Details:
ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;