Hvad er udenlandske nøgler i SQL -databaser?

Hvad er udenlandske nøgler i SQL -databaser?

Udenlandske nøgler gør det muligt for databaseadministratorer let at identificere de forskellige forbindelser, der findes i et SQL -databasesystem.





SQL udfører matematiske operationer på data i et databasesystem. Disse databaser indeholder forskellige tabeller, der hver gemmer data på en bestemt enhed. Hvis du har en biludlejningsdatabase, vil en enhed (eller tabel) i denne database være kunder (som gemmer alle personoplysninger om hver kunde).





Disse databasetabeller indeholder rækker og kolonner, hvor hver række er vært for en post, og hver kolonne indeholder attributspecifikke data.





I et databasesystem skal hver post (eller række) være unik.

Primære nøgler

Selvom bestemmelsen er, at hver post i en tabel skal være adskilt, er dette ikke altid tilfældet. Fortsætter med eksempelet på biludlejningsdatabasen, hvis databasen indeholder to kunder, der hver har navnet John Brown, kan en John Brown forventes at returnere en Mercedes-Benz, som han ikke lejede.



Oprettelse af en primær nøgle vil afbøde denne risiko. I et SQL -databasesystem er en primær nøgle en unik identifikator, der adskiller en post fra en anden.

fede ting at gøre med terminal

Derfor bør hver post i et SQL -databasesystem have en primær nøgle.





Brug af primære nøgler i en database

Hvis du vil inkludere primære nøgler i et databasesystem ved hjælp af SQL, kan du blot tilføje det som en normal attribut, når du opretter en ny tabel. Så kundernes tabel vil indeholde fire attributter (eller kolonner):

  • CarOwnerID (som gemmer den primære nøgle)
  • Fornavn
  • Efternavn
  • Telefonnummer

Relaterede: Sådan opretter du en tabel i SQL





Nu vil hver kundepost, der kommer ind i databasen, have et unikt identifikationsnummer samt et fornavn, efternavn og telefonnummer. Telefonnummeret er ikke unikt nok til at være en primær nøgle, for selvom det er unikt for en person ad gangen, kan en person let ændre sit nummer, hvilket betyder, at det nu ville tilhøre en anden.

En registrering med et primært nøgleeksempel

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

SQL-koden ovenfor tilføjer en ny post til den eksisterende Kunder bord. Tabellen herunder viser den nye kundetabel med de to John Brown -poster.

Den udenlandske nøgle

Nu har du primære nøgler, der entydigt adskiller en biludlejer fra en anden. Det eneste problem er, at der i databasen ikke er nogen reel forbindelse mellem hver John Brown og den bil, han lejer.

Derfor eksisterer muligheden for at begå en fejl stadig. Det er her, fremmede nøgler spiller ind. Brug af en primær nøgle til at løse problemet med ejerskabstvetydighed kan kun opnås, hvis den primære nøgle fordobles som en fremmed nøgle.

Hvad er en fremmed nøgle?

I et SQL -databasesystem er en fremmed nøgle en unik identifikator eller en kombination af unikke identifikatorer, der forbinder to eller flere tabeller i en database.

Af de fire SQL -databasesystemer, der findes, er det relationsdatabasestyringssystem det mest populære. Når du beslutter, hvilken tabel i en relationsdatabase der skal have en fremmed nøgle, skal du først identificere, hvilken tabel der er emnet, og hvilket er objektet i deres forhold.

Tilbage til biludlejningsdatabasen for at forbinde hver kunde til den korrekte bil skal du forstå, at en kunde (emnet) lejer en bil (objektet). Derfor skal den udenlandske nøgle være i bilens bord.

SQL -koden, der genererer en tabel med en fremmed nøgle, adskiller sig lidt fra normen.

Oprettelse af en tabel med et fremmed nøgleeksempel

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Som du kan se i koden ovenfor, skal en fremmed nøgle eksplicit identificeres som sådan sammen med en henvisning til den primære nøgle, der forbindes til den nye tabel.

hvordan tilføjer man en kontakt på whatsapp

Relaterede: Essential SQL Commands Cheat Sheet for Beginners

For at tilføje en post til den nye tabel skal du sikre dig, at værdien i feltet udenlandsk nøgle matcher værdien i det primære nøglefelt i den originale tabel.

Tilføjelse af en post med et udenlandsk nøgleeksempel

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

Koden ovenfor opretter en ny rekord i den nye Biler tabel, hvilket giver følgende resultat.

Biler bord

Fra tabellen ovenfor kan du identificere den korrekte John Brown, der lejer en Mercedes-Benz efter den udenlandske nøgle i pladen.

Advance udenlandske nøgler

Der er to andre måder at bruge en fremmed nøgle i en database.

Hvis du ser tilbage på definitionen af ​​en fremmed nøgle ovenfor, vil du opdage, at der står, at en fremmed nøgle kan være en unik identifikator eller en kombination af unikke identifikatorer.

Når vi går tilbage til eksempelet på biludlejningsdatabasen, vil du se, at oprettelse af en ny rekord (af den samme bil) hver gang en kunde lejer den bil, besejrer formålet med Biler bord. Hvis bilerne er til salg og sælges til en enkelt kunde én gang, er den eksisterende database perfekt; men i betragtning af at bilerne er udlejning, er der en bedre måde at repræsentere disse data på.

Sammensatte nøgler

En sammensat nøgle har to eller flere unikke identifikatorer. I en relationsdatabase vil der være tilfælde, hvor brugen af ​​en enkelt fremmed nøgle ikke i tilstrækkelig grad repræsenterer de relationer, der findes i denne database.

I eksempelet med biludlejning er den mest praktiske fremgangsmåde at oprette et nyt bord, der gemmer lejedetaljerne. For at oplysningerne i biludlejningstabellen kan være nyttige, skal de have forbindelse til både bil- og kundetabellerne.

Oprettelse af et bord med sammensatte udenlandske nøgler

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

Koden ovenfor viser et vigtigt punkt; Selvom en tabel i en SQL -database kan have mere end en fremmed nøgle, kan den kun have en enkelt primær nøgle. Dette skyldes, at der kun bør være en unik måde at identificere en rekord.

Det er nødvendigt at kombinere alle tre attributter i tabellen for at have en unik nøgle. En kunde kan leje mere end en bil på samme dag (så Kunde ID og DateRented er ikke en god kombination) mere end én kunde kan også leje den samme bil på samme dag (så Licens nummer og DateRented er ikke en god kombination).

Men oprettelsen af ​​en sammensat nøgle, der fortæller hvilken kunde, hvilken bil og på hvilken dag der er en fremragende unik nøgle. Denne unikke nøgle repræsenterer både en sammensat fremmed nøgle og en sammensat primær nøgle.

min roku fjernbetjening virker ikke

Udenlandske primære nøgler

Åh ja, udenlandske primære nøgler forlader. Selvom der ikke er noget officielt navn på det, kan en fremmed nøgle også være en primær nøgle i samme tabel. Dette sker, når du opretter en ny tabel, der indeholder specialiserede data om en eksisterende enhed (eller registrerer i en anden tabel).

Sig Fred (der arbejder i biludlejningsfirmaet) er i virksomhedens database under medarbejderbordet. Efter et par år bliver han vejleder og tilføjes til vejlederbordet.

Fred er stadig ansat og vil stadig have det samme id -nummer. Så Freds medarbejder -id er nu i supervisor -tabellen som en fremmed nøgle, som også bliver en primær nøgle i tabellen (da det ikke giver mening at oprette et nyt id -nummer til Fred nu, hvor han er en vejleder).

Nu kan du identificere udenlandske nøgler i SQL -databaser

Udenlandske nøgler forbinder forskellige tabeller i en SQL -database. Fra denne artikel kan du se, hvad en fremmed nøgle er, hvordan den fungerer, og hvorfor det er vigtigt at have dem i en database. Du forstår også de grundlæggende og endnu mere komplekse former for udenlandske nøgler.

Hvis du synes, at udenlandske nøgler er interessante, vil du have en feltdag, når du begynder at bruge projektet og udvælgelsesoperationer til at forespørge dine SQL -databaser.

Del Del Tweet E -mail Lær, hvordan du bruger projekt- og markeringsoperationer i SQL

Få styr på SQL -relationsdatabaser ved at forstå projekt- og udvælgelsesoperationerne med disse eksempler.

Læs Næste
Relaterede emner
  • Programmering
  • Programmering
  • SQL
  • database
Om forfatteren Kadeisha Kean(21 artikler udgivet)

Kadeisha Kean er en softwareudvikler i fuld stak og teknisk/teknologisk forfatter. Hun har den særlige evne til at forenkle nogle af de mest komplekse teknologiske begreber; producerer materiale, der let kan forstås af enhver nybegynder i teknologi. Hun brænder for at skrive, udvikle interessant software og rejse rundt i verden (gennem dokumentarfilm).

Mere fra Kadeisha Kean

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere