MySQL primærnøkkel

Sammendrag: i denne opplæringen lærer du hvordan du bruker MySQL primærnøkkelbegrensning for å lage primærnøkkelen til en tabell.

Introduksjon til MySQL primærnøkkel

En primærnøkkel er en kolonne eller et sett med kolonner som unikt identifiserer hver rad i tabellen. Primærnøkkelen følger disse reglene:

  • En primærnøkkel må inneholde unike verdier. Hvis primærnøkkelen består av flere kolonner, må kombinasjonen av verdier i disse kolonnene være unik.
  • En primærnøkkelkolonne kan ikke ha NULL verdier. Ethvert forsøk på å sette inn eller oppdatere NULL til hovednøkkelkolonner, vil føre til en feil. Vær oppmerksom på at MySQL implisitt legger til en NOT NULL begrensning i primære nøkkelkolonner.
  • En tabell kan ha en og en primærnøkkel.

Fordi MySQL fungerer raskere med heltall, skal datatypen til den primære nøkkelkolonnen være heltallet, f.eks. INT, BIGINT. Og du bør forsikre deg om at verdiområder av heltallstypen for primærnøkkelen er tilstrekkelig til å lagre alle mulige rader som tabellen kan ha.

En primærnøkkelkolonne har ofte AUTO_INCREMENT attributt som automatisk genererer et sekvensielt heltall når du setter inn en ny rad i tabellen.

Når du definerer en primærnøkkel for en tabell, oppretter MySQL automatisk en indeks kalt PRIMARY.

PRIMÆRE NØkkel-eksempler på MySQL

PRIMARY KEY -begrensningen lar deg definere en primærnøkkel i en tabell når du oppretter eller endrer tabell.

1) Definer en primær nøkkelbegrensning i OPPRETT TABELL

Vanligvis definerer du primærnøkkelen til en tabell i CREATE TABLE uttalelse.

Hvis primærnøkkelen har en kolonne, kan du bruke PRIMARY KEY begrensningen som en kolonnebegrensning:

Code language: SQL (Structured Query Language) (sql)

Når primærnøkkelen har mer enn én kolonne, må du bruke e PRIMARY KEY begrensning som en tabellbegrensning.

I denne syntaksen skiller du kolonner i column_list med komma ( ,).

PRIMARY KEY tabellbegrensning kan brukes når primærnøkkelen har en kolonne:

Følgende eksempel oppretter en tabell med navnet users hvis primære nøkkel er user_id -kolonnen:

Denne uttalelsen oppretter roles tabell som har PRIMARY KEY begrensning som tabellbegrensning:

Hvis primærnøkkelen består av flere kolonner, må du spesifisere dem på slutten av CREATE TABLE uttalelsen. Du setter en kommaseparert liste over primære nøkkelkolonner i parentes fulgt PRIMARY KEY nøkkelordene.

Følgende eksempel oppretter user_roles tabell hvis primære nøkkel består av to kolonner: user_id og role_id. Den definerer PRIMARY KEY -begrensningen som tabellbegrensningen:

Merk at uttalelsen også opprettet to begrensninger for utenlandske nøkler.

2) Definer PRIMÆR NØkkelbegrensninger ved å bruke ALTER TABLE

Hvis en tabell av noen grunner ikke har en primærnøkkel, kan du bruke setningen ALTER TABLE for å legge til en primærnøkkel til tabellen som følger:

Code language: SQL (Structured Query Language) (sql)

Følgende eksempel legger til id -kolonnen i primærnøkkelen.

Opprett først pkdemos tabellen uten en primærnøkkel.

Code language: SQL (Structured Query Language) (sql)

For det andre, legg til en primær nøkkel til pkdemos tabellen ved hjelp av ALTER TABLE utsagnet:

Code language: SQL (Structured Query Language) (sql)

Hvis du legger til en primærnøkkel i en tabell som allerede har data. Dataene i kolonnene (kolonnene), som vil bli inkludert i primærnøkkelen, må være unike og ikke NULL.

PRIMÆR NØKKEL vs. UNIK NØKKEL vs. NØKKEL

KEY er synonymet for INDEX. Du bruker KEY når du vil lage en indeks for en kolonne eller et sett med kolonner som ikke er en del av en primærnøkkel eller unik nøkkel.

En UNIQUE indeks sikrer at verdiene i en kolonne må være unike. I motsetning til PRIMARY indeksen tillater MySQL NULL verdier i UNIQUE indeksen. I tillegg kan en tabell ha flere UNIQUE indekser.

Anta at email og username av brukere i users -tabellen må være unik.For å håndheve disse reglene kan du definere UNIQUE indekser for email og username kolonnene som følgende utsagn:

Legg til en UNIQUE -indeks for username -kolonnen:

Code language: SQL (Structured Query Language) (sql)

Legg til en UNIQUE -indeks for email -kolonnen:

Code language: SQL (Structured Query Language) (sql)

I denne opplæringen har du lært hvordan du oppretter en primærnøkkel for en ny tabell eller legger til en primærnøkkel i en eksisterende tabell.

  • Var denne opplæringen nyttig?
  • JaNei

Leave a Reply

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *