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:
- Přidejte cizí klíč pomocí příkazu Create table
- 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í:
- Vytvořte databázi v systému.
- Vytvořte dvě tabulky ve stejné databázi.
- Zobrazit strukturu tabulky před přidáním cizího klíče.
- Přidejte do tabulky cizí klíč.
- 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;