logo

Vieraan avaimen lisääminen SQL:ään

Tässä artikkelissa opimme lisäämään vierasavain SQL-tietokannan taulukon sarakkeeseen.

The ULKOINEN AVAIN SQL:ssä käytetään yhdistämään tietokannan kahden taulukon tietue. Yhdessä taulukossa FOREIGN KEY:ksi määritellyn sarakkeen on oltava PRIMARY KEY saman tietokannan toisessa taulukossa.

Voimme helposti lisätä vierasavaimen sarakkeeseen seuraavilla kahdella tavalla:

  1. Lisää vierasavain käyttämällä Create table -lausetta
  2. Lisää vierasavain käyttämällä Alter Table -käskyä

Jos haluat lisätä FORIGN KEY:n SQL-taulukon sarakkeeseen, sinun on noudatettava alla olevia vaiheita annetussa järjestyksessä:

  1. Luo tietokanta järjestelmään.
  2. Luo kaksi taulukkoa samaan tietokantaan.
  3. Näytä taulukon rakenne ennen vieraiden avainten lisäämistä.
  4. Lisää vierasavain taulukkoon.
  5. Katso taulukon rakenne.

Nyt selitämme yllä olevat vaiheet esimerkillä:

Vaihe 1: Luo tietokanta

Strukturoidussa kyselykielessä tietokannan luominen on ensimmäinen vaihe strukturoitujen taulukoiden tallentamiseksi tietokantaan.

Luo tietokanta käyttämällä seuraavaa SQL-syntaksia:

 CREATE DATABASE Database_Name; 

Oletetaan, että haluat luoda Ajoneuvot tietokanta. Tätä varten sinun on kirjoitettava seuraava komento Structured Query Language -kieleen:

 CREATE DATABASE Vehicles; 

Vaihe 2: Luo tietokantaan kaksi taulukkoa

Nyt sinun on käytettävä seuraavaa SQL-syntaksia luodessasi taulukoita tietokannassasi:

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

Seuraava SQL-kysely luo Cars_Details taulukossa Ajoneuvot tietokanta.

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

Seuraava kysely luo Cars_Price_Details taulukossa Ajoneuvot tietokanta:

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

Vaihe 3: Tarkastele taulukkorakennetta ennen vierasavaimen lisäämistä

Taulukon luomisen ja tietojen lisäyksen jälkeen voit tarkastella molempien taulukoiden rakennetta kirjoittamalla seuraavan kyselyn SQL-sovelluksessasi:

 DESC Cars or DESCRIBE Cars ; 

Ala Tyyppi TYHJÄ Avain Oletus ylimääräistä
Auton_numero INT EI AT TYHJÄ automaattinen_lisäys
Malli INT Joo - TYHJÄ -
Auton_nimi Varchar (20) Joo - TYHJÄ
Väri Varchar (20) Joo - TYHJÄ -

 DESC Cars_Price_Details; 

Ala Tyyppi TYHJÄ Avain Oletus ylimääräistä
Automalli INT Ei AT TYHJÄ -
Auto_hinta INT Ei - TYHJÄ

Vaihe 4: Lisää vierasavain taulukon sarakkeeseen

Jos haluat lisätä vierasavaimen taulukon luomisen yhteydessä, sinun on käytettävä seuraavaa CREATE TABLE -syntaksia SQL:ssä:

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

Esimerkki

Seuraava kysely lisää FORIGN KEY:n 'Malli'-sarakkeeseen Cars_Details -taulukossa:

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

Tämä SQL-kysely liittyy Cars_Details pöytä kanssa Cars_Price_Details taulukko vierasavaimen avulla.

Vaihe 5: Tarkastele taulukkorakennetta vierasavaimen lisäämisen jälkeen

Voit tarkistaa suoritetun kyselyn tuloksen 4thaskel, sinun on kirjoitettava seuraava DESC-komento SQL: ssä:

 DESC Cars_Details; 

Ala Tyyppi TYHJÄ Avain Oletus ylimääräistä
Auton_numero INT Joo ENSISIJAINEN TYHJÄ automaattinen_lisäys
Malli INT Ei ULKOMAAN TYHJÄ -
Auton_nimi Varchar (20) Joo - TYHJÄ -
Väri Varchar (20) Joo - TYHJÄ -
Hinta INT EI - TYHJÄ -
Keskiverto INT EI - 0 -

Kuten yllä olevassa tulosteessa näkyy, Malli-sarake luodaan viiteavaimeksi.

Lisää vierasavain olemassa olevaan taulukkoon

Jos haluat lisätä vierasavaimen olemassa olevaan taulukkoon, sinun on käytettävä seuraavaa ALTER-syntaksia SQL:ssä:

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

Seuraava kysely lisää FORIGN KEY:n Malli-sarakkeeseen, kun Cars_Details-taulukko on jo olemassa tietokantajärjestelmässä:

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

Tämä ALTER-kysely SQL:ssä liittyy Cars_Details pöytä kanssa Cars_Price_Details taulukko vierasavaimen avulla.

Poista vierasavain taulukosta

Jos haluat poistaa vierasavaimen taulukon sarakkeesta, sinun on käytettävä seuraavaa MUUTTAA syntaksi SQL:ssä:

 ALTER TABLE Table_Name DROP FOREIGN KEY Foreign_Key_Name; 

Seuraava kysely poistaa luodun FOREIGN KEY:n Cars_Details-taulukon Malli-sarakkeesta:

 ALTER TABLE Cars DROP FOREIGN KEY FK_Cars_Details;