logo

Hogyan adjunk hozzá idegen kulcsot az SQL-ben

Ebből a cikkből megtudjuk, hogyan adhat hozzá idegen kulcsot az SQL-adatbázisunk táblázatának oszlopához.

A IDEGEN KULCS SQL-ben két tábla rekordjának összekapcsolására szolgál az adatbázisban. Az egyik táblában IDEGEN KULCS-ként definiált oszlopnak ugyanabban az adatbázisban egy másik táblában az ELSŐDLEGES KULCS-nak kell lennie.

Az alábbi két módon könnyen hozzáadhatunk idegen kulcsot az oszlophoz:

  1. Adjon hozzá idegen kulcsot a Create table utasítással
  2. Adjon hozzá idegen kulcsot az Alter Table utasítással

Ha egy FORIGN KULCSOT szeretne hozzáadni az SQL tábla oszlopához, kövesse az alábbi lépéseket a megadott sorrendben:

  1. Hozza létre az adatbázist a rendszerben.
  2. Hozzon létre két táblát ugyanabban az adatbázisban.
  3. Az idegen kulcs hozzáadása előtt tekintse meg a táblázat szerkezetét.
  4. Adjon hozzá egy idegen kulcsot a táblázathoz.
  5. Tekintse meg a táblázat szerkezetét.

Most egy példán keresztül magyarázzuk el a fenti lépéseket:

1. lépés: Hozzon létre egy adatbázist

A Strukturált lekérdezési nyelvben az adatbázis létrehozása az első lépés a strukturált táblák adatbázisban való tárolására.

Használja a következő SQL szintaxist adatbázis létrehozásához:

 CREATE DATABASE Database_Name; 

Tegyük fel, hogy szeretné létrehozni a Járművek adatbázis. Ehhez a következő parancsot kell begépelnie a Strukturált lekérdezési nyelvben:

 CREATE DATABASE Vehicles; 

2. lépés: Hozzon létre két táblát az adatbázisban

Most a következő SQL szintaxist kell használnia a táblák létrehozásához az adatbázisban:

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

A következő SQL lekérdezés létrehozza a Cars_Details táblázat a Járművek adatbázis.

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

A következő lekérdezés jön létre Cars_Price_Details táblázat a Járművek adatbázis:

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

3. lépés: Tekintse meg a táblázat szerkezetét az idegen kulcs hozzáadása előtt

A tábla létrehozása és az adatok beillesztése után mindkét tábla szerkezetét megtekintheti, ha beírja a következő lekérdezést az SQL alkalmazásba:

 DESC Cars or DESCRIBE Cars ; 

Terület típus NULLA Kulcs Alapértelmezett Külön
Autó_szám INT NEM NÁL NÉL NULLA auto_increment
Modell INT Igen - NULLA -
Car_Name Varchar (20) Igen - NULLA
Szín Varchar (20) Igen - NULLA -

 DESC Cars_Price_Details; 

Terület típus NULLA Kulcs Alapértelmezett Külön
Autómodell INT Nem NÁL NÉL NULLA -
Car_Price INT Nem - NULLA

4. lépés: Adjon hozzá egy idegen kulcsot a táblázat oszlopához

Ha az idegen kulcsot a táblázat létrehozásakor szeretné hozzáadni, akkor a következő CREATE TABLE szintaxist kell használnia SQL-ben:

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

Példa

A következő lekérdezés hozzáadja az IDEGEN KULCSOT a Cars_Details táblázat „Model” oszlopához:

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

Ez a lekérdezés SQL-ben csatlakozik a Cars_Details asztal a Cars_Price_Details táblázatot egy idegen kulcs segítségével.

5. lépés: Tekintse meg a táblázat szerkezetét az idegen kulcs hozzáadása után

A végrehajtott lekérdezés eredményének ellenőrzéséhez a 4thlépés, be kell írnia a következő DESC parancsot SQL-be:

 DESC Cars_Details; 

Terület típus NULLA Kulcs Alapértelmezett Külön
Autó_szám INT Igen ELSŐDLEGES NULLA auto_increment
Modell INT Nem KÜLFÖLDI NULLA -
Car_Name Varchar (20) Igen - NULLA -
Szín Varchar (20) Igen - NULLA -
Ár INT NEM - NULLA -
Átlagos INT NEM - 0 -

Ahogy a fenti kimeneten látható, a Model oszlop idegen kulcsként jön létre.

Adja hozzá az idegen kulcsot a meglévő táblához

Ha hozzá szeretné adni az idegen kulcsot a meglévő táblához, akkor az alábbi ALTER szintaxist kell használnia SQL-ben:

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

A következő lekérdezés egy IDEGEN KULCSOT ad hozzá a Modell oszlophoz, ha a Cars_Details tábla már létezik az adatbázisrendszerben:

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

Ez az ALTER lekérdezés SQL-ben csatlakozik a Cars_Details asztal a Cars_Price_Details táblázatot egy idegen kulcs segítségével.

Törölje az idegen kulcsot a táblázatból

Ha törölni szeretné az idegen kulcsot a táblázat oszlopából, akkor a következőket kell használnia VÁLTOZTAT szintaxis SQL-ben:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

A következő lekérdezés törli a létrehozott FOREIGN KEY-t a Cars_Details tábla Modell oszlopából:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;