logo

Ako pridať cudzí kľúč do SQL

V tomto článku sa naučíme, ako pridať Cudzí kľúč do stĺpca v tabuľke našej SQL databázy.

The CUDZÍ KĽÚČ v SQL sa používa na spojenie záznamu dvoch tabuliek v databáze. Stĺpec definovaný ako FOREIGN KEY v jednej tabuľke musí byť PRIMARY KEY v inej tabuľke v tej istej databáze.

Cudzí kľúč môžeme do stĺpca jednoducho pridať dvoma spôsobmi:

  1. Pridajte cudzí kľúč pomocou príkazu Create table
  2. Pridajte cudzí kľúč pomocou príkazu Alter Table

Ak chcete pridať CUDZÍ KĽÚČ do stĺpca v tabuľke SQL, musíte postupovať podľa nasledujúcich krokov v danom poradí:

  1. Vytvorte databázu v systéme.
  2. Vytvorte dve tabuľky v rovnakej databáze.
  3. Zobraziť štruktúru tabuľky pred pridaním cudzieho kľúča.
  4. Pridajte do tabuľky cudzí kľúč.
  5. Pozrite si štruktúru tabuľky.

Teraz vysvetlíme vyššie uvedené kroky na príklade:

Krok 1: Vytvorte databázu

V Structured Query Language je vytvorenie databázy prvým krokom na uloženie štruktúrovaných tabuliek do databázy.

Na vytvorenie databázy použite nasledujúcu syntax SQL:

 CREATE DATABASE Database_Name; 

Predpokladajme, že chcete vytvoriť Vozidlá databázy. Na tento účel musíte zadať nasledujúci príkaz v jazyku Structured Query Language:

 CREATE DATABASE Vehicles; 

Krok 2: Vytvorte dve tabuľky v databáze

Teraz musíte na vytvorenie tabuliek v databáze použiť nasledujúcu syntax SQL:

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

Nasledujúci SQL dotaz vytvorí Cars_Details stôl v Vozidlá databázy.

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

Nasledujúci dotaz vytvorí Cars_Price_Details stôl v Vozidlá databáza:

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

Krok 3: Zobrazte si štruktúru tabuľky pred pridaním cudzieho kľúča

Po vytvorení tabuľky a vložení údajov si môžete pozrieť štruktúru oboch tabuliek zadaním nasledujúceho dotazu vo vašej SQL aplikácii:

 DESC Cars or DESCRIBE Cars ; 

Lúka Typ NULOVÝ kľúč Predvolené Extra
Číslo_auta INT NIE PRI NULOVÝ Automatický prírastok
Model INT Áno - NULOVÝ -
Car_Name Varchar(20) Áno - NULOVÝ
Farba Varchar(20) Áno - NULOVÝ -

 DESC Cars_Price_Details; 

Lúka Typ NULOVÝ kľúč Predvolené Extra
Auto_Model INT Nie PRI NULOVÝ -
Car_Price INT Nie - NULOVÝ

Krok 4: Pridajte cudzí kľúč do stĺpca v tabuľke

Ak chcete pridať cudzí kľúč v čase vytvárania tabuľky, musíte v SQL použiť nasledujúcu syntax CREATE TABLE:

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

Príklad

Nasledujúci dotaz pridá FOREIGN KEY do stĺpca „Model“ v tabuľke 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 ) ; 

Tento dotaz v SQL sa spája v časti Cars_Details stôl s Cars_Price_Details tabuľky pomocou cudzieho kľúča.

Krok 5: Zobrazenie štruktúry tabuľky po pridaní cudzieho kľúča

Ak chcete skontrolovať výsledok dotazu vykonaného v 4thkrok, musíte zadať nasledujúci príkaz DESC v SQL:

 DESC Cars_Details; 

Lúka Typ NULOVÝ kľúč Predvolené Extra
Číslo_auta INT Áno PRIMÁRNY NULOVÝ Automatický prírastok
Model INT Nie ZAHRANIČNÝ NULOVÝ -
Car_Name Varchar(20) Áno - NULOVÝ -
Farba Varchar(20) Áno - NULOVÝ -
cena INT NIE - NULOVÝ -
Priemerná INT NIE - 0 -

Ako je znázornené vo vyššie uvedenom výstupe, stĺpec Model je vytvorený ako cudzí kľúč.

Pridajte cudzí kľúč do existujúcej tabuľky

Ak chcete pridať cudzí kľúč do existujúcej tabuľky, musíte použiť nasledujúcu syntax ALTER v SQL:

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

Nasledujúci dotaz pridá CUDZÍ KĽÚČ do stĺpca Model, keď tabuľka Cars_Details už existuje v databázovom systéme:

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

Tento dotaz ALTER v SQL sa spája v časti Cars_Details stôl s Cars_Price_Details tabuľky pomocou cudzieho kľúča.

Odstráňte cudzí kľúč z tabuľky

Ak chcete odstrániť cudzí kľúč zo stĺpca tabuľky, musíte použiť nasledujúce ALTER syntax v SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

Nasledujúci dotaz vymaže vytvorený cudzí kľúč zo stĺpca Model tabuľky Cars_Details:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;