U ovom ćemo članku naučiti kako dodati strani ključ u stupac u tablici naše SQL baze podataka.
The STRANI KLJUC u SQL-u se koristi za spajanje zapisa dviju tablica u bazi podataka. Stupac definiran kao FOREIGN KEY u jednoj tablici mora biti PRIMARNI KLJUČ u drugoj tablici u istoj bazi podataka.
Strani ključ možemo jednostavno dodati stupcu na sljedeća dva načina:
- Dodajte strani ključ pomoću naredbe Create table
- Dodajte strani ključ pomoću izjave Alter Table
Ako želite dodati FOREIGN KEY u stupac u SQL tablici, morate slijediti korake u nastavku danim redoslijedom:
- Kreirajte bazu podataka u sustavu.
- Napravite dvije tablice u istoj bazi podataka.
- Pregledajte strukturu tablice prije dodavanja stranog ključa.
- Dodajte strani ključ u tablicu.
- Pogledajte strukturu tablice.
Sada ćemo objasniti gornje korake na primjeru:
Korak 1: Izradite bazu podataka
U Structured Query Language, stvaranje baze podataka prvi je korak za pohranjivanje strukturiranih tablica u bazu podataka.
Koristite sljedeću SQL sintaksu za stvaranje baze podataka:
CREATE DATABASE Database_Name;
Pretpostavimo da želite stvoriti Vozila baza podataka. Za ovo morate utipkati sljedeću naredbu u Structured Query Language:
CREATE DATABASE Vehicles;
Korak 2: Napravite dvije tablice u bazi podataka
Sada morate koristiti sljedeću SQL sintaksu za stvaranje tablica u vašoj bazi podataka:
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) );
Sljedeći SQL upit stvara Automobili_Detalji stol u Vozila baza podataka.
CREATE TABLE Cars_Details ( Car_Number INT AUTO_INCREMENT PRIMARY KEY, Model INT, Cars_Name VARCHAR (20), Colour VARCHAR (20), );
Sljedeći upit stvara Automobili_Cijena_Detalji stol u Vozila baza podataka:
CREATE TABLE Cars_Price_Details ( Model INT NOT NULL PRIMARY KEY, Cars_Price INT NOT NULL );
Korak 3: Pregledajte strukturu tablice prije dodavanja stranog ključa
Nakon izrade tablice i umetanja podataka, možete vidjeti strukturu obje tablice upisivanjem sljedećeg upita u svoju SQL aplikaciju:
DESC Cars or DESCRIBE Cars ;
Polje | Tip | NULL | Ključ | Zadano | Ekstra |
---|---|---|---|---|---|
Broj_automobila | INT | NE | NA | NULL | auto_inkrement |
Model | INT | Da | - | NULL | - |
Naziv_automobila | Varchar (20) | Da | - | NULL | |
Boja | Varchar (20) | Da | - | NULL | - |
DESC Cars_Price_Details;
Polje | Tip | NULL | Ključ | Zadano | Ekstra |
---|---|---|---|---|---|
Model_automobila | INT | Ne | NA | NULL | - |
Cijena_automobila | INT | Ne | - | NULL |
Korak 4: dodajte strani ključ u stupac u tablici
Ako želite dodati strani ključ u vrijeme kreiranja tablice, tada morate koristiti sljedeću sintaksu CREATE TABLE u SQL-u:
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) ) ;
Primjer
Sljedeći upit dodaje FOREIGN KEY u stupac 'Model' u tablici 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 ) ;
Ovaj upit u SQL-u spaja the Cars_Details stol s Automobili_Cijena_Detalji tablica uz pomoć stranog ključa.
Korak 5: Pregledajte strukturu tablice nakon dodavanja stranog ključa
Za provjeru rezultata upita izvršenog u 4thkorak, morate upisati sljedeću naredbu DESC u SQL:
DESC Cars_Details;
Polje | Tip | NULL | Ključ | Zadano | Ekstra |
---|---|---|---|---|---|
Broj_automobila | INT | Da | PRIMARNO | NULL | auto_inkrement |
Model | INT | Ne | STRANI | NULL | - |
Naziv_automobila | Varchar (20) | Da | - | NULL | - |
Boja | Varchar (20) | Da | - | NULL | - |
Cijena | INT | NE | - | NULL | - |
Prosjek | INT | NE | - | 0 | - |
Kao što je prikazano u gornjem izlazu, stupac Model kreiran je kao strani ključ.
Dodajte strani ključ u postojeću tablicu
Ako želite dodati strani ključ postojećoj tablici, morate koristiti sljedeću sintaksu ALTER u SQL-u:
ALTER TABLE Table_Name1 ADD CONSTRAINT ForeignKey_Name FOREIGN KEY (Column_Name) REFERENCES Table_Name2 (Column_Name);
Sljedeći upit dodaje FOREIGN KEY u stupac Model kada tablica Cars_Details već postoji u sustavu baze podataka:
ALTER TABLE Cars_Details ADD CONSTRAINT FK_Cars_Details FOREIGN KEY (Model) REFERENCES Cars_Price_Details (Car_Model);
Ovaj ALTER upit u SQL-u se spaja the Cars_Details stol s Automobili_Cijena_Detalji tablica uz pomoć stranog ključa.
Izbrišite strani ključ iz tablice
Ako želite izbrisati strani ključ iz stupca tablice, morate koristiti sljedeće PROMIJENI sintaksa u SQL-u:
ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name;
Sljedeći upit briše kreirani FOREIGN KEY iz stupca Model tablice Cars_Details:
ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;