Før vi lærer forskellen mellem primærnøgle og fremmednøgle, lad os lære:
Hvad er nøgler?
Nøgler er attribut, der hjælper dig med at identificere en række (tuple) i en relation (tabel). De giver dig mulighed for at finde forholdet mellem to tabeller. Taster hjælper dig med at identificere en række i en tabel entydigt ved en kombination af en eller flere kolonner i den pågældende tabel. Databasenøglen er også nyttig til at finde en unik post eller række fra tabellen.
Hvad er databaseforhold?
Databaseforholdet er tilknytning mellem en eller flere tabeller, der oprettes ved hjælp af join-sætninger. Det bruges til effektivt at hente data fra databasen. Der er primært tre typer forhold 1) En-til-en, 2) En-til-mange, 3) Mange-til-mange.
Hvad er primær nøgle?
En primær nøglebegrænsning er en kolonne eller gruppe af kolonner, der entydigt identificerer hver række i tabellen i det relationelle databasesystem. Det kan ikke være en duplikat, hvilket betyder at den samme værdi ikke skal vises mere end en gang i tabellen.
En tabel kan have mere end en primær nøgle. Primær nøgle kan defineres på kolonnen eller på bordniveau. Hvis du opretter en sammensat primærnøgle, skal den defineres på bordniveau.
Hvad er fremmed nøgle?
Fremmed nøgle er en kolonne, der skaber et forhold mellem to tabeller. Formålet med den udenlandske nøgle er at opretholde dataintegritet og tillade navigation mellem to forskellige forekomster af en enhed. Det fungerer som en krydshenvisning mellem to tabeller, da det refererer til den primære nøgle til en anden tabel. Ethvert forhold i databasen skal understøttes af en fremmed nøgle.
Nøgleforskelle:
- En primær nøglebegrænsning er en kolonne, der entydigt identificerer hver række i tabellen i det relationsdatabasehåndteringssystem, mens fremmed nøgle er en kolonne, der skaber et forhold mellem to tabeller.
- Primær nøgle accepterer aldrig nulværdier, mens fremmed nøgle muligvis accepterer flere nulværdier.
- Du kan kun have en enkelt primærnøgle i en tabel, mens du kan have flere udenlandske nøgler i en tabel.
- Værdien af den primære nøgle kan ikke fjernes fra den overordnede tabel, mens værdien af den udenlandske nøgleværdi kan fjernes fra den underordnede tabel.
- Ingen to rækker kan have identiske værdier for en primær nøgle, på den anden side kan en fremmed nøgle indeholde duplikatværdier.
- Der er ingen begrænsning i at indsætte værdierne i tabelkolonnen, mens du indsætter en værdi i den fremmede nøgletabel, og sørg for, at værdien er til stede i en kolonne i en primær nøgle.
Hvorfor bruge primær nøgle?
Her er ulemperne / fordelene ved at bruge den primære nøgle:
- Hovedformålet med den primære nøgle er at identificere hver eneste post i databasetabellen.
- Du kan bruge en primær nøgle, når du ikke tillader nogen at indtaste nulværdier.
- Hvis du sletter eller opdaterer poster, udføres den handling, du har angivet, for at sikre dataintegriteten.
- Udfør begrænsning for at afvise sletning eller opdatering af overordnet tabel.
- Data er organiseret i en sekvens af grupperet indeks, når du fysisk organiserer DBMS-tabel.
Hvorfor bruge Foreign Key?
Her er de vigtige grunde til at bruge fremmed nøgle:
- Udenlandske nøgler hjælper dig med at migrere enheder ved hjælp af en primær nøgle fra den overordnede tabel.
- En fremmed nøgle giver dig mulighed for at linke to eller flere tabeller sammen.
- Det gør dine databasedata konsistente.
- En fremmed nøgle kan bruges til at matche en kolonne eller en kombination af kolonner med den primære nøgle i en overordnet tabel.
- SQL-fremmednøglebegrænsning bruges til at sikre, at dataforældres henvisningsintegritet svarer til værdier i underordnet tabel.
Eksempel på primær nøgle
Syntaks:
Nedenfor er syntaksen for den primære nøgle:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Her,
- Table_Name er navnet på den tabel, du skal oprette.
- Kolonne_Navn er navnet på den kolonne, der har den primære nøgle.
Eksempel:
StudID | Rulle nr | Fornavn | Efternavn | |
---|---|---|---|---|
1 | 11 | Tom | Pris | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
2 | 12 | Nick | Wright | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
3 | 13 | Dana | Natan | Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. |
I ovenstående eksempel har vi oprettet en elevtabel med kolonner som StudID, Roll No, First Name, Last Name og Email. StudID vælges som en primær nøgle, fordi den entydigt kan identificere andre rækker i tabellen.
Eksempel på fremmed nøgle
Syntaks:
Nedenfor er syntaksen for Foreign Key:
CREATE TABLE