logo

Skirtumas tarp pirminio rakto ir unikalaus rakto

MySQL raktai yra stulpelis arba stulpelių rinkinys, naudojamas kuriant ryšį tarp vienos ar daugiau nei dviejų lentelių. Jie taip pat naudojami norint pasiekti įrašus iš lentelės. Abu raktai suteikia garantuotą lentelės ar santykio stulpelio arba stulpelių rinkinio unikalumą. Pagrindinis skirtumas tarp jų yra tas, kad pirminis raktas identifikuoja kiekvieną lentelės įrašą, o unikalus raktas apsaugo nuo pasikartojančių įrašų stulpelyje, išskyrus NULL reikšmę. . Šiame straipsnyje mes palyginsime esminius pirminių ir unikalių raktų skirtumus pagal įvairius parametrus. Prieš palygindami trumpai aptarsime šiuos raktus.

css kraštinė
Pirminis raktas vs unikalus raktas

Kas yra pirminis raktas?

Pagrindinis raktas yra a unikalus arba nenulinis raktas, unikaliai identifikuojantis kiekvieną tos lentelės ar santykio įrašą. Pirminio rakto stulpelyje negalima saugoti pasikartojančių reikšmių, o tai reiškia, kad pirminio rakto stulpelio reikšmės visada yra unikalios. Jis taip pat vadinamas a minimalus super raktas ; todėl jokiame ryšyje negalime nurodyti daugiau nei vieno pirminio rakto. Vienos lentelės pirminio rakto stulpelis gali būti nurodytas kitos lentelės išorinio rakto stulpelyje.

Pavyzdžiui , turime lentelę pavadinimu studentai su tokiais atributais kaip Stud_ID, Roll_No, Name, Mobile ir El.

Pirminis raktas vs unikalus raktas

Čia tik Roll_No stulpelyje niekada negali būti identiškos ir NULL reikšmės. Žinome, kad kiekvienas studentas turi unikalų ritinio numerį. Todėl du studentai niekada negali turėti to paties sąrašo numerio. Ši funkcija padeda unikaliai identifikuoti kiekvieną duomenų bazės įrašą. Taigi atributą Roll_No galime padaryti pirminiu raktu.

Pirminio rakto ypatybės

Toliau pateikiamos pagrindinės pagrindinės funkcijos:

  • Pirminio rakto stulpelyje negali būti pasikartojančių reikšmių.
  • Pirminis raktas įgyvendina lentelės objekto vientisumą.
  • Lentelėje negali būti daugiau nei vienas pirminio rakto stulpelis.
  • Pirminį raktą galime sukurti iš vieno ar kelių lentelės laukų.
  • Pirminio rakto stulpelyje turi būti NOT NULL apribojimai.

Kas yra unikalus raktas?

The unikalus raktas yra vienas lentelės stulpelis arba stulpelių derinys, skirtas unikaliai identifikuoti duomenų bazės įrašus. Unikalus raktas neleidžia nuo saugojimo pasikartojančios reikšmės stulpelyje. Skirtingai nei pirminio rakto stulpelyje, lentelėje gali būti keli unikalūs raktų stulpeliai. Šis raktas yra panašus į pirminį raktą, išskyrus tai, kad viena NULL reikšmė gali būti saugoma unikalaus rakto stulpelyje. Unikalus raktas taip pat vadinamas unikalūs apribojimai ir gali būti nurodytas kitos lentelės išoriniu raktu.

Pavyzdžiui , panagrinėkime tą pačią lentelę pavadinimu studentai su tokiais atributais kaip Stud_ID, Roll_No, Name, Mobile ir El.

reaguoti-lentelė
Pirminis raktas vs unikalus raktas

Čia Stud_ID gali būti priskirtas kaip unikalus apribojimas, nes kiekvienas mokinys turi turėti unikalų identifikavimo numerį. Jei studentas pakeis kolegiją, jis neturės studento pažymėjimo. Tokiu atveju įraše gali būti a NULL reikšmę, nes unikalus rakto apribojimas leidžia išsaugoti NULL, bet jis turėtų būti tik vienas.

Unikalaus rakto savybės

Toliau pateikiamos pagrindinės unikalios pagrindinės savybės:

osi etaloninis modelis tinkle
  • Mes galime sukurti unikalų raktą iš vieno ar kelių lentelės laukų.
  • Lentelėje galima apibrėžti kelis unikalius raktų stulpelius.
  • Pagal numatytuosius nustatymus unikalus raktas yra nesugrupuotuose unikaliuose indeksuose.
  • Unikalaus apribojimo stulpelyje gali būti saugoma NULL reikšmė, tačiau viename stulpelyje leidžiamas tik vienas NULL.
  • Užsienio raktas gali nurodyti unikalų apribojimą, išsaugant lentelės unikalumą.

Pagrindiniai skirtumai tarp pirminio ir unikalaus rakto

Šie punktai paaiškina pagrindinius pirminio ir kandidato raktų skirtumus:

  • Pirminis raktas gali sudaryti vieną ar daugiau lentelės laukų, kad būtų galima unikaliai identifikuoti lentelės įrašus. Kita vertus, unikalus raktas neleidžia dviejose eilutėse turėti pasikartojančius įrašus stulpelyje.
  • Lentelėje negali būti daugiau nei vienas pirminis raktas reliacinėje duomenų bazėje, o vienoje lentelėje gali būti keli unikalūs raktai.
  • Pirminio rakto stulpelyje negali būti NULL reikšmių, tuo tarpu unikalus raktas gali turėti NULL reikšmes, tačiau lentelėje leidžiamas tik vienas NULL.
  • Pirminis raktas turi būti unikalus, tačiau unikalus raktas nebūtinai turi būti pirminis raktas.
  • Pagal numatytuosius nustatymus pirminis raktas yra sugrupuotas indeksas, kuriame duomenys fiziškai suskirstyti į nuoseklųjį indeksą. Priešingai, unikalus raktas yra unikalus nesugrupuotas indeksas.
  • Pirminis raktas įgyvendina objekto vientisumą, o unikalus raktas užtikrina unikalius duomenis.

Pirminio rakto ir unikalaus rakto palyginimo diagrama

Šioje palyginimo lentelėje greitai paaiškinami pagrindiniai jų skirtumai:

Palyginimo pagrindas Pirminis raktas Unikalus raktas
Pagrindinis Pirminis raktas naudojamas kaip unikalus kiekvieno įrašo lentelėje identifikatorius. Unikalus raktas taip pat yra unikalus įrašų identifikatorius, kai pirminio rakto lentelėje nėra.
NULL Pirminio rakto stulpelyje negalime saugoti NULL reikšmių. Mes galime saugoti NULL reikšmę unikalaus rakto stulpelyje, tačiau leidžiama tik viena NULL.
Tikslas Tai užtikrina subjekto vientisumą. Tai užtikrina unikalius duomenis.
Indeksas Pagal numatytuosius nustatymus pirminis raktas sukuria grupuotą indeksą. Pagal numatytuosius nustatymus unikalus raktas sukuria nesugrupuotą indeksą.
Rakto numeris Kiekviena lentelė palaiko tik vieną pirminį raktą. Lentelėje gali būti daugiau nei vienas unikalus raktas.
Vertės modifikavimas Negalime pakeisti ar ištrinti pirminio rakto reikšmių. Galime pakeisti unikalių raktų stulpelių reikšmes.
Naudoja Jis naudojamas kiekvienam lentelės įrašui identifikuoti. Tai neleidžia saugoti pasikartojančių įrašų stulpelyje, išskyrus NULL reikšmę.
Sintaksė Lentelėje galime sukurti pirminio rakto stulpelį naudodami toliau pateiktą sintaksę:
CREATE TABLE Employee ( Id INT PRIMARY KEY, name VARCHAR(150), address VARCHAR(250) )
Lentelėje galime sukurti unikalų rakto stulpelį naudodami toliau pateiktą sintaksę:
CREATE TABLE Person ( Id INT UNIQUE, name VARCHAR(150), address VARCHAR(250) )

Išvada

Šiame straipsnyje palyginome pirminio rakto ir unikalaus rakto apribojimus. Čia padarėme išvadą, kad unikalus raktas yra naudingas, kai norime, kad stulpeliuose nebūtų pasikartojančių reikšmių. Ir pirminis raktas yra naudingas, kai nenorime, kad lentelėje būtų NULL reikšmė. Taip pat gali būti idealu, kai kitoje lentelėje turime išorinį raktą, kad sukurtume ryšį tarp lentelių.