logo

Jak přidat cizí klíč v SQL

V tomto článku se naučíme, jak přidat Cizí klíč do sloupce v tabulce naší SQL databáze.

The CIZÍ KLÍČ v SQL se používá ke spojení záznamu dvou tabulek v databázi. Sloupec definovaný jako FOREIGN KEY v jedné tabulce musí být PRIMARY KEY v jiné tabulce ve stejné databázi.

Cizí klíč můžeme do sloupce snadno přidat dvěma způsoby:

  1. Přidejte cizí klíč pomocí příkazu Create table
  2. Přidejte cizí klíč pomocí příkazu Alter Table

Pokud chcete přidat CIZÍ KLÍČ do sloupce do SQL tabulky, musíte postupovat podle níže uvedených kroků v daném pořadí:

  1. Vytvořte databázi v systému.
  2. Vytvořte dvě tabulky ve stejné databázi.
  3. Zobrazit strukturu tabulky před přidáním cizího klíče.
  4. Přidejte do tabulky cizí klíč.
  5. Prohlédněte si strukturu tabulky.

Nyní vysvětlíme výše uvedené kroky na příkladu:

Krok 1: Vytvořte databázi

V Structured Query Language je vytvoření databáze prvním krokem pro uložení strukturovaných tabulek do databáze.

K vytvoření databáze použijte následující syntaxi SQL:

 CREATE DATABASE Database_Name; 

Předpokládejme, že chcete vytvořit Vozidla databáze. K tomu musíte zadat následující příkaz v jazyce strukturovaných dotazů:

 CREATE DATABASE Vehicles; 

Krok 2: Vytvořte v databázi dvě tabulky

Nyní musíte pro vytvoření tabulek v databázi použít následující syntaxi 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) ); 

Následující SQL dotaz vytvoří Cars_Details stůl v Vozidla databáze.

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

Vytvoří se následující dotaz Cars_Price_Details stůl v Vozidla databáze:

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

Krok 3: Zobrazení struktury tabulky před přidáním cizího klíče

Po vytvoření tabulky a vložení dat můžete zobrazit strukturu obou tabulek zadáním následujícího dotazu ve vaší SQL aplikaci:

 DESC Cars or DESCRIBE Cars ; 

Pole Typ NULA Klíč Výchozí Další
Číslo_auta INT NE PŘI NULA auto_increment
Modelka INT Ano - NULA -
Car_Name Varchar(20) Ano - NULA
Barva Varchar(20) Ano - NULA -

 DESC Cars_Price_Details; 

Pole Typ NULA Klíč Výchozí Další
Model auta INT Ne PŘI NULA -
Car_Price INT Ne - NULA

Krok 4: Přidejte cizí klíč do sloupce v tabulce

Pokud chcete přidat cizí klíč v době vytváření tabulky, musíte v SQL použít následující syntaxi 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) ) ; 

Příklad

Následující dotaz přidá FOREIGN KEY do sloupce 'Model' v tabulce 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 se spojí podrobnosti o autech stůl s Cars_Price_Details tabulky pomocí cizího klíče.

Krok 5: Zobrazení struktury tabulky po přidání cizího klíče

Chcete-li zkontrolovat výsledek dotazu provedeného v 4čtkrok, musíte zadat následující příkaz DESC v SQL:

 DESC Cars_Details; 

Pole Typ NULA Klíč Výchozí Další
Číslo_auta INT Ano HLAVNÍ NULA auto_increment
Modelka INT Ne ZAHRANIČNÍ, CIZÍ NULA -
Car_Name Varchar(20) Ano - NULA -
Barva Varchar(20) Ano - NULA -
Cena INT NE - NULA -
Průměrný INT NE - 0 -

Jak je znázorněno na výše uvedeném výstupu, sloupec Model je vytvořen jako cizí klíč.

Přidejte cizí klíč do existující tabulky

Pokud chcete přidat cizí klíč do existující tabulky, musíte použít následující syntaxi ALTER v SQL:

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

Následující dotaz přidá CIZÍ KLÍČ do sloupce Model, když tabulka Cars_Details již v databázovém systému existuje:

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

Tento dotaz ALTER v SQL se připojí podrobnosti o autech stůl s Cars_Price_Details tabulky pomocí cizího klíče.

Smazat cizí klíč z tabulky

Pokud chcete odstranit cizí klíč ze sloupce tabulky, musíte použít následující ZMĚNIT syntaxe v SQL:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

Následující dotaz odstraní vytvořený CIZÍ KLÍČ ze sloupce Model tabulky Cars_Details:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;