Skillnaden mellan primärnyckel och främmande nyckel
Nyckelskillnader mellan primärnyckel och främmande nyckel
- En primärnyckelbegränsning är en kolumn som unikt identifierar varje rad i tabellen i relationsdatabashanteringssystemet, medan en främmande nyckel är en kolumn som skapar en relation mellan två tabeller.
- Primärnyckeln accepterar aldrig nollvärden, medan den främmande nyckeln kan acceptera flera nollvärden.
- Du kan bara ha en enda primärnyckel i en tabell, medan du kan ha flera främmande nycklar i en tabell.
- Värdet på den primära nyckeln kan inte tas bort från den överordnade tabellen, medan värdet på den främmande nyckeln kan tas bort från den underordnade tabellen.
- Inga två rader kan ha några identiska värden för en primärnyckel; å andra sidan kan en främmande nyckel innehålla dubbletter av värden.
- Det finns ingen begränsning för att infoga värdena i tabellkolumnen samtidigt som du infogar något värde i främmande nyckeltabellen; se till att värdet finns i en kolumn i en primärnyckel.

Här har jag analyserat skillnaden mellan den primära nyckeln och den främmande nyckeln och kommer att utvärdera deras för- och nackdelar på ett omfattande sätt.
Vad är primärnyckel?
En primär nyckelrestriktion är en kolumn eller grupp av kolumner som unikt identifierar varje rad i tabellen i relationsdatabashanteringssystemet. Det kan inte vara en dubblett, vilket innebär att samma värde inte bör visas mer än en gång i tabellen.
En tabell kan inte ha mer än en primärnyckel. De primär nyckel kan definieras på kolumn- eller tabellnivå. Om du skapar en sammansatt primärnyckel bör den definieras på tabellnivå.
Exempel på en primärnyckel
Syntax:
Nedan är syntaxen för primärnyckel:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype, PRIMARY KEY (Column-Name) . );
Här,
- Tabellnamn är namnet på tabellen du måste skapa.
- Column_Name är namnet på den kolumn som har primärnyckeln.
Exempelvis:
| StudID | Rull nr | Förnamn | Efternamn | E-post |
|---|---|---|---|---|
| 1 | 11 | Tom | Pris | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Natan | mno@yahoo.com |
I exemplet ovan har vi skapat en elevtabell med kolumner som StudID, Roll No., First Name, After Name och Email. StudID väljs som en primärnyckel eftersom den unikt kan identifiera andra rader i tabellen.
Varför använda primärnyckel?
Under mina år av att hantera databassystem har jag noterat dessa nackdelar och fördelar när jag använder en primärnyckel:
- Huvudsyftet med den primära nyckeln är att identifiera varje post i databastabellen.
- Du kan använda en primärnyckel när du inte tillåter någon att ange nollvärden.
- Om du tar bort eller uppdaterar poster kommer den åtgärd du angav att utföras för att säkerställa dataintegriteten.
- Utför begränsningsåtgärden för att avvisa borttagnings- eller uppdateringsåtgärden för den överordnade tabellen.
- Data organiseras i en sekvens av klustrade index när du fysiskt organiserar en DBMS-tabell.
Vad är främmande nyckel?
Främmande nyckel är en kolumn som skapar en relation mellan två tabeller. Syftet med den främmande nyckeln är att upprätthålla dataintegritet och möjliggöra navigering mellan två olika instanser av en enhet. Den fungerar som en korsreferens mellan två tabeller eftersom den refererar till primärnyckeln för en annan tabell. Varje relation i databasen bör stödjas av en främmande nyckel.
Exempel på främmande nyckel
Syntax:
Nedan är syntaxen för Foreign Key:
CREATE TABLE <Table Name>( column1 datatype, column2 datatype, constraint (name of constraint) FOREIGN KEY [column1, column2...] REFERENCES [primary key table name] (List of primary key table column) ...);
Här,
- Parametern Tabellnamn anger namnet på tabellen som du ska skapa.
- Parametrarna kolumn1, kolumn2… visar de kolumner som behöver läggas till i tabellen.
- En begränsning anger namnet på den begränsning du skapar.
- Referenser indikerar en tabell med primärnyckeln.
Exempelvis:
| Avdelningskod | Avdelningens namn |
|---|---|
| 001 | Vetenskap |
| 002 | Engelska |
| 005 | Dator |
| Lärar-ID | Fname | Lname |
|---|---|---|
| B002 | David | Warner |
| B017 | Sara | Joseph |
| B009 | Mikrofon | Brunton |
I exemplet ovan har vi två tabeller: en lärare och en avdelning i en skola. Det finns dock inget sätt att se vilken sökning som fungerar på vilken avdelning.
I den här tabellen, genom att lägga till den främmande nyckeln i Deptcode till lärarnamnet, kan vi skapa en relation mellan de två tabellerna.
| Lärar-ID | Avdelningskod | Fname | Lname |
|---|---|---|---|
| B002 | 002 | David | Warner |
| B017 | 002 | Sara | Joseph |
| B009 | 001 | Mikrofon | Brunton |
Detta koncept är också känt som referensintegritet.
Varför använda främmande nyckel?
Från vad jag har sett, här är de viktiga skälen till att implementera främmande nycklar:
- Främmande nycklar hjälper dig att migrera enheter med en primärnyckel från den överordnade tabellen.
- A främmande nyckel gör att du kan länka samman två eller flera tabeller.
- Det gör din databasdata konsekvent.
- En främmande nyckel kan användas för att matcha en kolumn eller kombination av kolumner med primärnyckeln i en överordnad tabell.
- SQL främmande nyckel-begränsning används för att se till att referensintegriteten för dataföräldern matchar värden i den underordnade tabellen.
Skillnaden mellan primärnyckel och främmande nyckel
Låt mig dela den viktiga skillnaden mellan en primärnyckel och en främmande nyckel, som jag personligen har upplevt:

| Jämförelsegrund | Primärnyckel | Främmande nyckel |
|---|---|---|
| Definition | En primärnyckelrestriktion är en kolumn eller grupp av kolumner som unikt identifierar varje rad i tabellen hanteringssystem för relationsdatabas. | En främmande nyckel är en kolumn som skapar en relation mellan två tabeller. |
| Grundläggande | Det hjälper dig att unikt identifiera en post i tabellen. | Det är ett fält i tabellen som är primärnyckeln för en annan tabell. |
| NULL | Primärnyckel accepterar aldrig nollvärden. | En främmande nyckel kan acceptera flera nollvärden. |
| Indexering | Den primära nyckeln är ett klustrade index, och data i DBMS-tabellen är fysiskt organiserade i sekvensen av det klustrade indexet. | En främmande nyckel kan inte automatiskt skapa ett index, klustrade eller icke-klustrade. |
| Att Räkna | Du kan ha en enda primärnyckel i en tabell. | Du kan ha flera främmande nycklar i en tabell. |
| deletion | Värdet på primärnyckeln kan inte tas bort från den överordnade tabellen. | Värdet på den främmande nyckeln kan tas bort från den underordnade tabellen. |
| Tillfälligt bord | Du kan definiera primärnyckeln implicit i de temporära tabellerna. | Du kan inte definiera främmande nycklar på de lokala eller globala temporära tabellerna. |
| Förhållande | Den primära nyckeln är ett klustrat index. | Som standard är det inte ett klustrat index. |
| Duplicering | Inga två rader kan ha identiska värden för en primärnyckel. | En främmande nyckel kan innehålla dubbletter av värden. |
| Införande | Det finns ingen begränsning för att infoga värdena i tabellkolumnen. | När du infogar ett värde i tabellen med främmande nyckel, se till att värdet finns i en kolumn i en primärnyckel. |
Hur man väljer mellan en primärnyckel och en främmande nyckel
Från vad vi har sett identifierar primärnycklar tabellposter unikt, och främmande nycklar länkar dessa poster över tabeller, både avgörande för att upprätthålla dataintegritet och underlätta effektiv datahämtning.
