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:
- Co je omezení cizího klíče?
- Pravidla pro cizí klíč
- 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í:
- 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.
- V cizím klíči jsou povoleny hodnoty Null
- Cizí klíče lze duplikovat
- V tabulce může být více než jeden cizí klíč
- 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.