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:
- Adjon hozzá idegen kulcsot a Create table utasítással
- 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:
- Hozza létre az adatbázist a rendszerben.
- Hozzon létre két táblát ugyanabban az adatbázisban.
- Az idegen kulcs hozzáadása előtt tekintse meg a táblázat szerkezetét.
- Adjon hozzá egy idegen kulcsot a táblázathoz.
- 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;