sql >> Database teknologi >  >> RDS >> Database

Foreign Key SQL:Alt hvad du behøver at vide om udenlandske nøgleoperationer

I dagens marked, hvor mange multinationale virksomheder bruger relationelle databaser til at håndtere data, er det meget vigtigt at forstå, hvordan hver eneste tabel kan relateres til hinanden. Så i denne artikel om fremmednøgle SQL vil jeg diskutere den fremmede nøgle i tabeller for at få dig til at forstå forholdet mellem tabeller.

Følgende emner vil blive dækket i denne artikel:

  1. Hvad er Foreign Key Constraint?
  2. Regler for fremmednøgle
  3. Udenlandske nøgleoperationer:
    • SQL udenlandsk nøgle på Opret tabel
    • SQL fremmednøgle på Alter Table
    • Drop udenlandsk nøgle

Hvad er begrænsning for fremmednøgle?

En fremmednøgle er en type nøgle, der bruges til at forbinde to tabeller i en database. Så en fremmednøgle er en attribut eller en samling af attributter i en tabel, der refererer til den primære nøgle i en anden tabel.

For eksempel, hvis tabel A og tabel B er relateret til hinanden, så hvis tabel A består af den primære nøgle, vil denne tabel blive kaldt den refererede tabel eller overordnede tabel. På samme måde, hvis tabel B består af en fremmednøgle, er denne tabel kendt som referencetabellen eller underordnet tabel. Se billedet nedenfor:

Nu hvor du ved, hvad der er fremmednøgle, lad os næste gang i denne artikel om fremmednøgle SQL forstå reglerne for den fremmede nøgle.

Regler for fremmednøgle

Reglerne for fremmed nøgle er som følger:

  1. Tabellen med den fremmede nøgle kaldes den underordnede tabel, og den tabel, der refereres til af den fremmede nøgle, kaldes den overordnede tabel.
  2. Nul-værdier er tilladt i en fremmednøgle
  3. Fremmednøgler kan duplikeres
  4. Der kan være mere end en enkelt fremmednøgle i en tabel
  5. Forholdet mellem tabellerne er kendt som referentiel integritet

Nu hvor du ved, hvad reglerne for en fremmed nøgle er, så lad os i denne artikel om fremmednøgle SQL se operationerne for den fremmede nøgle.

Udenlandske nøgleoperationer:

For at forstå de forskellige operationer, der findes på fremmednøgle, skal du overveje følgende to tabeller:

Kundetabel:

Kunde-id Kundenavn Telefonnummer
1 Rohan 9876543210
2 Sonali 9876567864
3 Ajay 9966448811
4 Geeta 9765432786
5 Shubham 9944888756

Tabel over kurser:

Kursus-id

Kursusnavn

Kunde-id

c01

DevOps

2

c02

Machine Learning

4

c03

RPA

1

c04

Tableau

3

c05

AWS

2

Nu, hvis du observerer, refererer kundeID-kolonnen i kurstabellen til kunde-ID-kolonnen i kundernes tabel. Kunde-id-kolonnen fra kundernes tabel er den primære nøgle, og kunde-id-kolonnen fra kurser-tabellen er den udenlandske nøgle for den pågældende tabel.

Starter med den første handling:

Udenlandsk nøgle på Opret tabel

Du kan bruge følgende syntaks til at oprette en fremmednøgle i kolonnen "kunde-ID", når du opretter "kurser"-tabel:

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

Anvend fremmednøgle på flere kolonner

For at anvende fremmednøgle på flere kolonner, mens du opretter en tabel, se følgende eksempel:

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

Lad os derefter i denne artikel om Foreign Key SQL se, hvordan man bruger den fremmede nøgle på Alter Table.

Udenlandsk nøgle på Alter Table

Du kan bruge følgende syntaks til at oprette en fremmednøgle på "customerID"-kolonnen, når "kurser"-tabellen allerede er oprettet, og du blot ønsker at ændre tabellen:

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

Hvis du ønsker at tilføje et navn til Foreign Key-begrænsningen og definere det på flere kolonner, skal du bruge følgende SQL-syntaks:

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

Lad os derefter i denne artikel om Foreign Key SQL forstå, hvordan man slipper en fremmednøgle

Drop udenlandsk nøgle

For at slippe fremmednøglen kan du se følgende eksempel:

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

Med dette kommer vi til en ende på denne artikel. Jeg håber, du forstod, hvordan du bruger Foreign Key i SQL. Hvis du ønsker at lære mere om MySQL og lær denne open source relationsdatabase at kende, så tjek vores MySQL DBA-certificeringsuddannelse som kommer med instruktørledet livetræning og projekterfaring i det virkelige liv. Denne træning vil hjælpe dig med at forstå MySQL i dybden og hjælpe dig med at opnå beherskelse over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel om "Foreign Key SQL", så vender jeg tilbage til dig.


  1. Inkludering af tabeller og skemaer, når du angiver identitetskolonnerne i en SQL Server-database

  2. Operatorer til udpakning af JSON-underkomponenter

  3. Hjælp venligst med at forbedre SQL Server-statistikker!

  4. Forbindelsesproblemer med SQLAlchemy og flere processer