Nøgler i MySQL er den kolonne eller et sæt af kolonner, der bruges til at konstruere en relation mellem en eller flere end to tabeller. De bruges også til at få adgang til poster fra tabellen. Begge nøgler giver en garanteret unikhed for en kolonne eller et sæt kolonner i en tabel eller relation. Den største forskel mellem dem er, at den primære nøgle identificerer hver post i tabellen, og den unikke nøgle forhindrer duplikerede poster i en kolonne med undtagelse af en NULL-værdi . I denne artikel skal vi sammenligne væsentlige forskelle mellem primære og unikke nøgler baseret på forskellige parametre. Før vi foretager en sammenligning, vil vi kort diskutere disse nøgler.
fil åben i java
Hvad er primærnøgle?
Den primære nøgle er en unik eller ikke-nul nøgle, der unikt identificerer hver post i den pågældende tabel eller relation. Primærnøglekolonnen kan ikke gemme duplikerede værdier, hvilket betyder, at primærnøglekolonneværdier altid er unikke. Det kaldes også en minimal super nøgle ; derfor kan vi ikke angive mere end én primær nøgle i ethvert forhold. En primær nøglekolonne i en tabel kan refereres af en fremmednøglekolonne i en anden tabel.
For eksempel , vi har en tabel ved navn studerende med attributter som Stud_ID, Roll_No, Name, Mobile og Email.
Her kun Rulle_Nr kolonne må aldrig indeholde en identisk værdi og NULL. Vi ved, at hver elev har et unikt rullenummer. Derfor kan to elever aldrig have det samme rullenummer. Denne funktion hjælper med at identificere hver post i databasen unikt. Derfor kan vi gøre Roll_No-attributten til en primær nøgle.
Funktioner af Primary Key
Følgende er de væsentlige primære nøglefunktioner:
usa hvor mange byer
- Den primære nøglekolonne kan ikke indeholde duplikerede værdier.
- Den primære nøgle implementerer tabellens enhedsintegritet.
- En tabel kan ikke have mere end én primær nøglekolonne.
- Vi kan lave den primære nøgle fra et eller flere tabelfelter.
- Den primære nøglekolonne skal have IKKE NULL-begrænsninger.
Hvad er en unik nøgle?
Det unik nøgle er en enkelt kolonne eller kombination af kolonner i en tabel for entydigt at identificere databaseposter. En unik nøgle forhindrer fra opbevaring duplikerede værdier i kolonnen. En tabel kan indeholde flere unikke nøglekolonner i modsætning til en primærnøglekolonne. Denne nøgle ligner den primære nøgle, bortset fra at én NULL-værdi kan gemmes i den unikke nøglekolonne. Den unikke nøgle kaldes også unikke begrænsninger og kan refereres til af en anden tabels fremmednøgle.
For eksempel , lad os overveje den samme tabel, der hedder studerende med attributter som Stud_ID, Roll_No, Name, Mobile og Email.
Her Stud_ID kan tildeles som en unik begrænsning, fordi hver elev skal have et unikt identifikationsnummer. Hvis en studerende skifter college, ville han eller hun ikke have noget studie-id. I så fald kan posten indeholde en NUL værdi, fordi en unik nøglebegrænsning tillader lagring af NULL, men den bør kun være én.
Funktioner af unik nøgle
Følgende er de væsentlige unikke nøglefunktioner:
- Vi kan konstruere den unikke nøgle ud fra et eller flere tabelfelter.
- En tabel kan definere flere unikke nøglekolonner.
- Som standard er en unik nøgle i ikke-klyngede unikke indekser.
- Den unikke begrænsningskolonne kan gemme NULL-værdi, men kun én NULL er tilladt null pr. kolonne.
- Fremmednøglen kan referere til den unikke begrænsning for at bevare en tabels unikke karakter.
Nøgleforskelle mellem primær og unik nøgle
Følgende punkter forklarer de vigtigste forskelle mellem primære og kandidatnøgler:
- En primær nøgle kan udgøre et eller flere felter i en tabel for at identificere poster i en tabel entydigt. På den anden side forhindrer en unik nøgle to rækker i at have duplikerede poster i en kolonne.
- En tabel kan ikke have mere end én primær nøgle i en relationsdatabase, mens der kan være flere unikke nøgler pr. tabel.
- En primær nøglekolonne kan ikke indeholde NULL-værdier, hvorimod en unik nøgle kan have NULL-værdier, men kun én NULL er tilladt i en tabel.
- En primær nøgle skal være unik, men en unik nøgle kan ikke nødvendigvis være den primære nøgle.
- Den primære nøgle er som standard et klynget indeks, hvor data er fysisk organiseret i det sekventielle indeks. I modsætning hertil er den unikke nøgle et unikt ikke-klynget indeks.
- Den primære nøgle implementerer enhedsintegritet, hvorimod den unikke nøgle håndhæver unikke data.
Primær nøgle vs. unik nøgle sammenligningsdiagram
Følgende sammenligningsdiagram forklarer deres vigtigste forskelle på en hurtig måde:
10 af 60
Sammenligningsgrundlag | Primærnøgle | Unik nøgle |
---|---|---|
Grundlæggende | Den primære nøgle bruges som en unik identifikator for hver post i tabellen. | Den unikke nøgle er også en unik identifikator for poster, når den primære nøgle ikke er til stede i tabellen. |
NUL | Vi kan ikke gemme NULL-værdier i primærnøglekolonnen. | Vi kan gemme NULL-værdien i den unikke nøglekolonne, men kun én NULL er tilladt. |
Formål | Det håndhæver enhedens integritet. | Det håndhæver unikke data. |
Indeks | Den primære nøgle opretter som standard et klynget indeks. | Den unikke nøgle opretter som standard et ikke-klynget indeks. |
Nøglenummer | Hver tabel understøtter kun én primær nøgle. | Et bord kan have mere end én unik nøgle. |
Værdiændring | Vi kan ikke ændre eller slette de primære nøgleværdier. | Vi kan ændre de unikke nøglekolonneværdier. |
Bruger | Det bruges til at identificere hver post i tabellen. | Det forhindrer lagring af duplikerede poster i en kolonne med undtagelse af en NULL-værdi. |
Syntaks | Vi kan oprette en primær nøglekolonne i tabellen ved hjælp af nedenstående syntaks:CREATE TABLE Employee ( Id INT PRIMARY KEY, name VARCHAR(150), address VARCHAR(250) ) | Vi kan oprette en unik nøglekolonne i tabellen ved hjælp af nedenstående syntaks:CREATE TABLE Person ( Id INT UNIQUE, name VARCHAR(150), address VARCHAR(250) ) |
Konklusion
I denne artikel har vi lavet en sammenligning mellem primærnøgle og unikke nøglebegrænsninger. Her har vi konkluderet, at en unik nøgle er nyttig, når vi ønsker, at kolonnerne ikke indeholder duplikerede værdier. Og den primære nøgle er nyttig, når vi ikke ønsker at beholde NULL-værdien i tabellen. Det kan også være ideelt, når vi har en fremmednøgle i en anden tabel for at skabe en relation mellem tabeller.