sql >> Databasteknik >  >> RDS >> Database

Foreign Key SQL:Allt du behöver veta om främmande nyckeloperationer

I dagens marknad där många multinationella företag använder relationsdatabaser för att hantera data, är det mycket viktigt att förstå hur varje tabell kan relateras till varandra. Så i den här artikeln om Foreign Key SQL kommer jag att diskutera den främmande nyckeln i tabeller för att få dig att förstå förhållandet mellan tabeller.

Följande ämnen kommer att behandlas i den här artikeln:

  1. Vad är utländsk nyckelbegränsning?
  2. Regler för främmande nyckel
  3. Utländska nyckeloperationer:
    • SQL främmande nyckel på Skapa tabell
    • SQL främmande nyckel på Alter Table
    • Släpp främmande nyckel

Vad är en utländsk nyckel?

En främmande nyckel är en typ av nyckel som används för att länka två tabeller i en databas. Så en främmande nyckel är ett attribut eller en samling attribut i en tabell som refererar till primärnyckeln i en annan tabell.

Till exempel, om Tabell A och Tabell B är relaterade till varandra, om Tabell A består av primärnyckeln, skulle denna tabell kallas den refererade tabellen eller överordnade tabellen. På liknande sätt, om Tabell B består av en främmande nyckel, är den tabellen känd som referenstabellen eller underordnad tabell. Se bilden nedan:

Nu när du vet vad som är främmande nyckel, nästa i den här artikeln om främmande nyckel SQL, låt oss förstå reglerna för den främmande nyckeln.

Regler för främmande nyckel

Reglerna för främmande nyckel är följande:

  1. Tabellen med den främmande nyckeln kallas den underordnade tabellen och tabellen som den främmande nyckeln refererar till kallas den överordnade tabellen.
  2. Nullvärden är tillåtna i en främmande nyckel
  3. Främmande nycklar kan dupliceras
  4. Det kan finnas mer än en enda främmande nyckel i en tabell
  5. Släktskapet mellan tabellerna kallas referensintegritet

Nu när du vet vad som är reglerna för en främmande nyckel, nästa i den här artikeln om främmande nyckel SQL, låt oss se hur den främmande nyckeln fungerar.

Utländska nyckeloperationer:

För att förstå de olika operationerna som finns på främmande nyckel, överväg följande två tabeller:

Kundtabell:

Kund-ID Kundnamn Telefonnummer
1 Rohan 9876543210
2 Sonali 9876567864
3 Ajay 9966448811
4 Geeta 9765432786
5 Shubham 9944888756

Kurstabell:

Kurs-ID

Kursnamn

Kund-ID

c01

DevOps

2

c02

Machine Learning

4

c03

RPA

1

c04

Tableau

3

c05

AWS

2

Nu, om du observerar, hänvisar kolumnen kundID i kurstabellen till kolumnen kundID i kundtabellen. Kund-ID-kolumnen från kundens tabell är den primära nyckeln och kund-ID-kolumnen från kurstabellen är den främmande nyckeln för den tabellen.

Börjar med den första operationen:

Främmande nyckel på Skapa tabell

Du kan använda följande syntax för att skapa en främmande nyckel i kolumnen "kund-ID" när du skapar tabellen "kurser":

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

Använd främmande nyckel på flera kolumner

För att använda främmande nyckel på flera kolumner när du skapar en tabell, se följande exempel:

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

Låt oss sedan i den här artikeln om Foreign Key SQL se hur man använder den främmande nyckeln på Alter Table.

Främmande nyckel på Alter Table

Du kan använda följande syntax för att skapa en främmande nyckel i kolumnen "kund-ID" när tabellen "kurser" redan är skapad och du bara vill ändra tabellen:

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

Om du vill lägga till ett namn till begränsningen för främmande nyckel och definiera den i flera kolumner, använd följande SQL-syntax:

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

Låt oss sedan i den här artikeln om Foreign Key SQL förstå hur man släpper en främmande nyckel

Släpp främmande nyckel

För att ta bort den främmande nyckeln kan du hänvisa till följande exempel:

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

Med detta kommer vi till ett slut på den här artikeln. Jag hoppas att du förstod hur man använder Foreign Key i SQL. Om du vill lära dig mer om MySQL och lär känna denna relationsdatabas med öppen källkod, kolla sedan in vår MySQL DBA-certifieringsutbildning som kommer med instruktörsledd liveutbildning och verklig projektupplevelse. Den här utbildningen hjälper dig att förstå MySQL på djupet och hjälper dig att behärska ämnet.

Har du en fråga till oss? Nämn det i kommentarsfältet i den här artikeln om "Foreign Key SQL" så återkommer jag till dig.


  1. Varning:mysql_fetch_array() förväntar sig att parameter 1 är resurs, boolean ges i

  2. Hur använder man bilder i Android SQLite som är större än begränsningarna för ett CursorWindow?

  3. Beställ efter COUNT per värde

  4. JSON kodar MySQL-resultat