Primär nyckel vs utländsk nyckel: Vad är skillnaden?

Innehållsförteckning:

Anonim

Innan vi lär oss skillnaden mellan primärnyckel och främmande nyckel, låt oss lära oss:

Vad är nycklar?

Nycklar är attribut som hjälper dig att identifiera en rad (tuple) i en relation (tabell). De låter dig hitta förhållandet mellan två tabeller. Tangenterna hjälper dig att identifiera en rad i en tabell med en kombination av en eller flera kolumner i den tabellen. Databasnyckeln är också användbar för att hitta en unik post eller rad från tabellen.

Vad är databasförhållande?

Databasförhållandet är associering mellan en eller flera tabeller som skapas med hjälp av anslutningsuttalanden. Den används för att effektivt hämta data från databasen. Det finns främst tre typer av relationer 1) En-till-en, 2) En-till-många, 3) Många-till-många.

Vad är primär nyckel?

En primär nyckelbegränsning är en kolumn eller grupp av kolumner som unikt identifierar varje rad i tabellen för relationsdatabashanteringssystemet. Det kan inte vara en duplikat, vilket innebär att samma värde inte borde visas mer än en gång i tabellen.

En tabell kan ha mer än en primär nyckel. Primär nyckel kan definieras på kolumnen eller tabellnivån. Om du skapar en sammansatt primärnyckel bör den definieras på bordsnivå.

Vad är Foreign Key?

Foreign key är en kolumn som skapar en relation mellan två tabeller. Syftet med den utländska nyckeln är att bibehålla dataintegriteten och tillåta navigering mellan två olika instanser av en enhet. Det fungerar som en korsreferens mellan två tabeller eftersom det refererar till den primära nyckeln till en annan tabell. Varje relation i databasen bör stödjas av en främmande nyckel.

VÄSENTLIGA SKILLNADER:

  • En primär nyckelbegränsning är en kolumn som unikt identifierar varje rad i tabellen för relationsdatabashanteringssystemet, medan främmande nyckel är en kolumn som skapar en relation mellan två tabeller.
  • Primär nyckel accepterar aldrig nollvärden medan främmande nyckel 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å primärnyckeln kan inte tas bort från överordnadstabellen medan värdet på utländsk nyckelvärde kan tas bort från underordnade tabellen.
  • Inga två rader kan ha identiska värden för en primär nyckel. Å andra sidan kan en främmande nyckel innehålla dubbla värden.
  • Det finns ingen begränsning i att infoga värdena i tabellkolumnen medan du sätter in något värde i den främmande nyckeltabellen, se till att värdet finns i en kolumn i en primärnyckel.

Varför använda primär nyckel?

Här är nackdelarna / fördelarna med att använda primärnyckel:

  • Huvudsyftet med den primära nyckeln är att identifiera varje post i databastabellen.
  • Du kan använda en primär nyckel när du inte tillåter någon att ange nullvärden.
  • Om du raderar eller uppdaterar poster kommer den åtgärd du angav att genomföras för att säkerställa dataintegriteten.
  • Utför begränsning för att avvisa borttagning eller uppdatering för överordnad tabell.
  • Data organiseras i en sekvens av klustrade index när du fysiskt organiserar DBMS-tabell.

Varför använda Foreign Key?

Här är de viktiga anledningarna till att använda främmande nyckel:

  • Utländska nycklar hjälper dig att migrera enheter med en primär nyckel från modertabellen.
  • En utländsk nyckel gör att du kan länka två eller flera tabeller tillsammans.
  • Det gör din databasinformation konsekvent.
  • En främmande nyckel kan användas för att matcha en kolumn eller kombination av kolumner med primär nyckel i en överordnad tabell.
  • SQL-främmande nyckelbegränsning används för att säkerställa referensintegriteten hos dataföräldern för att matcha värden i underordnade tabellen.

Exempel på primär nyckel

Syntax:

Nedan är syntaxen för Primary Key:

CREATE TABLE (Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);

Här,

  • Table_Name är namnet på tabellen du måste skapa.
  • Column_Name är namnet på den kolumn som har den primära nyckeln.

Exempel:

StudID Rulla nr Förnamn Efternamn E-post
1 11 Tom Pris Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
2 12 Nick Wright Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
3 13 Dana Natan Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.

I exemplet ovan har vi skapat en studenttabell med kolumner som StudID, Roll No, First Name, Efternamn och Email. StudID väljs som primärnyckel eftersom det unikt kan identifiera andra rader i tabellen.

Exempel på främmande nyckel

Syntax:

Nedan är syntaxen för Foreign Key:

CREATE TABLE 
(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å den tabell som du ska skapa.
  • Parametrarna kolumn1, kolumn2 ... visar de kolumner som måste läggas till i tabellen.
  • Begränsning anger namnet på begränsningen du skapar.
  • Referenser anger en tabell med primärnyckeln.

Exempel:

DeptCode Avdelningsnamn
001 Vetenskap
002 engelsk
005 Dator
Lärar-ID Fname Lname
B002 David Warner
B017 Sara Joseph
B009 Mikrofon Brunton

I exemplet ovan har vi två bord, en lärare och en avdelning i en skola. Det finns dock inget sätt att se vilken sökning som fungerar i vilken avdelning.

I den här tabellen kan vi skapa en relation mellan de två tabellerna genom att lägga till den främmande nyckeln i Deptcode till lärarens namn.

Lärar-ID DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mikrofon Brunton

Detta koncept är också känt som referensintegritet.

Skillnad mellan primärnyckel och främmande nyckel

Här är den viktiga skillnaden mellan primärnyckel och främmande nyckel:

Primärnyckel Främmande nyckel
En primär nyckelbegränsning är en kolumn eller grupp av kolumner som unikt identifierar varje rad i tabellen för relationsdatabashanteringssystemet. Foreign key är en kolumn som skapar en relation mellan två tabeller.
Det hjälper dig att unikt identifiera en post i tabellen. Det är ett fält i tabellen som är en primär nyckel i en annan tabell.
Primär nyckel accepterar aldrig nollvärden. En främmande nyckel kan acceptera flera nollvärden.
Den primära nyckeln är ett klustrat index och data i DBMS-tabellen är fysiskt organiserade i sekvensen för det klustrade indexet. En främmande nyckel kan inte automatiskt skapa ett index, grupperat eller icke-klustrat.
Du kan ha den enda primära nyckeln i en tabell. Du kan ha flera främmande nycklar i en tabell.
Värdet på primärnyckeln kan inte tas bort från modertabellen. Värdet på främmande nyckelvärde kan tas bort från underordnade tabellen.
Du kan definiera primärnyckeln implicit i de temporära tabellerna. Du kan inte definiera främmande nycklar i de lokala eller globala tillfälliga tabellerna.
Primär nyckel är ett grupperat index. Som standard är det inte ett grupperat index.
Inga två rader kan ha identiska värden för en primär nyckel. En främmande nyckel kan innehålla dubbla värden.
Det finns ingen begränsning i att infoga värdena i tabellkolumnen. När du sätter in något värde i den främmande nyckeltabellen, se till att värdet finns i en kolumn i en primär nyckel.