logo

Kako dodati strani ključ u SQL

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:

  1. Dodajte strani ključ pomoću naredbe Create table
  2. 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:

  1. Kreirajte bazu podataka u sustavu.
  2. Napravite dvije tablice u istoj bazi podataka.
  3. Pregledajte strukturu tablice prije dodavanja stranog ključa.
  4. Dodajte strani ključ u tablicu.
  5. 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;