sql >> Databáze >  >> RDS >> Database

SQL cizí klíč:Vše, co potřebujete vědět o operacích cizího klíče

Na dnešním trhu, kde mnoho nadnárodních společností používá ke zpracování dat relační databáze, je velmi důležité porozumět tomu, jak mohou být jednotlivé tabulky vzájemně propojeny. Takže v tomto článku o cizím klíči SQL proberu cizí klíč v tabulkách, abyste pochopili vztah mezi tabulkami.

Tento článek bude obsahovat následující témata:

  1. Co je omezení cizího klíče?
  2. Pravidla pro cizí klíč
  3. Operace s cizím klíčem:
    • Cizí klíč SQL při vytváření tabulky
    • Cizí klíč SQL v tabulce Alter
    • Zrušte cizí klíč

Co je omezení cizího klíče?

Cizí klíč je typ klíče, který se používá k propojení dvou tabulek v databázi. Cizí klíč je tedy atribut nebo sbírka atributů v jedné tabulce, která odkazuje na primární klíč v jiné tabulce.

Pokud například tabulka A a tabulka B spolu souvisejí, pak pokud se tabulka A skládá z primárního klíče, bude tato tabulka nazývána odkazovanou tabulkou nebo nadřazenou tabulkou. Podobně, pokud se tabulka B skládá z cizího klíče, pak je tato tabulka známá jako referenční tabulka nebo podřízená tabulka. Viz obrázek níže:

Nyní, když víte, co je cizí klíč, nám v dalším článku o cizím klíči SQL porozumějte pravidlům cizího klíče.

Pravidla pro cizí klíč

Pravidla cizího klíče jsou následující:

  1. Tabulka s cizím klíčem se nazývá podřízená tabulka a tabulka, na kterou cizí klíč odkazuje, se nazývá nadřazená tabulka.
  2. V cizím klíči jsou povoleny hodnoty Null
  3. Cizí klíče lze duplikovat
  4. V tabulce může být více než jeden cizí klíč
  5. Vztah vytvořený mezi tabulkami se nazývá referenční integrita

Nyní, když víte, jaká jsou pravidla cizího klíče, v dalším článku o cizím klíči SQL se podíváme na operace s cizím klíčem.

Operace s cizími klíči:

Chcete-li porozumět různým operacím s cizím klíčem, zvažte následující dvě tabulky:

Tabulka zákazníků:

Číslo zákazníka Jméno zákazníka Telefonní číslo
1 Rohan 9876543210
2 Sonali 9876567864
3 Ajay 9966448811
4 Geeta 9765432786
5 Shubham 9944888756

Tabulka kurzů:

ID kurzu

Název kurzu

Číslo zákazníka

c01

DevOps

2

c02

Strojové učení

4

c03

RPA

1

c04

Tabulka

3

c05

AWS

2

Pokud si nyní všimnete, sloupec customerID v tabulce kurzů odkazuje na sloupec customerID v tabulce zákazníků. Sloupec customerID z tabulky zákazníků je primární klíč a sloupec customerID z tabulky kurzů je cizí klíč této tabulky.

Počínaje první operací:

Cizí klíč na vytvoření tabulky

K vytvoření cizího klíče ve sloupci „customerID“ při vytváření tabulky „kurzy“ můžete použít následující syntaxi:

#For SQL Server/ MS Access/ Oracle
CREATE TABLE courses (
courseID varchar NOT NULL PRIMARY KEY,
courseName varchar NOT NULL,
customerID int FOREIGN KEY REFERENCES customers(customerID)
);
#For MySQL
CREATE TABLE courses (
courseID varchar NOT NULL PRIMARY KEY,
courseName varchar NOT NULL,
customerID int
PRIMARY KEY (courseID),
FOREIGN KEY (customerID) REFERENCES customers(customerID)
);

Použít cizí klíč na více sloupců

Chcete-li při vytváření tabulky použít cizí klíč na více sloupců, podívejte se na následující příklad:

CREATE TABLE courses (
courseID varchar NOT NULL,
courseName varchar NOT NULL,
customerID int, PRIMARY KEY (courseID),
CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID)
REFERENCES customers(customerID)
);

Dále se v tomto článku o cizím klíči SQL podíváme, jak používat cizí klíč v tabulce Alter Table.

Zahraniční klíč na alternativním stole

Můžete použít následující syntaxi k vytvoření cizího klíče ve sloupci „customerID“, když je tabulka „courses“ již vytvořena a chcete ji pouze upravit:

ALTER TABLE courses
ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);

Pokud chcete k omezení cizího klíče přidat název a definovat jej ve více sloupcích, použijte následující syntaxi SQL:

ALTER TABLE courses
ADD CONSTRAINT FK_CustomerCourse
FOREIGN KEY (customerID) REFERENCES Customers(customerID);

Dále v tomto článku o cizím klíči SQL pochopíme, jak zahodit cizí klíč

Zahodit cizí klíč

Chcete-li zahodit cizí klíč, můžete se podívat na následující příklad:

#For SQL Server/ MS Access/ Oracle
ALTER TABLE courses
DROP CONSTRAINT FK_CustomerCourse;
For MYSQL
ALTER TABLE courses
DROP FOREIGN KEY FK_CustomerCourse;

Tímto se dostáváme ke konci tohoto článku. Doufám, že jste pochopili, jak používat cizí klíč v SQL. Pokud se chcete dozvědět více o MySQL a seznamte se s touto relační databází s otevřeným zdrojovým kódem, pak se podívejte na naši Certifikační školení MySQL DBA který přichází s živým školením vedeným instruktorem a zkušenostmi z reálného života. Toto školení vám pomůže porozumět MySQL do hloubky a pomůže vám dosáhnout zvládnutí tohoto předmětu.

Máte na nás otázku? Uveďte to prosím v sekci komentářů k tomuto článku o „SQL cizího klíče“ a já se vám ozvu.


  1. postgres db soubory - který soubor představuje konkrétní tabulku/index?

  2. Názvy procesů PostgreSQL na Solaris

  3. Cizí klíč MySQL InnoDB mezi různými databázemi

  4. Jak funguje funkce UCASE() v MySQL