SQL | Begrensninger

SQL-begrensninger er vesentlige elementer i relasjonsdatabasedesign som sikrer integritet nøyaktighet og pålitelighet av dataene som er lagret i en database. Ved å håndheve spesifikke regler på tabellkolonner bidrar SQL-begrensninger til å opprettholde datakonsistens og forhindrer ugyldige dataoppføringer og optimaliserer søkeytelsen.

I denne artikkelen vil vi forklare de vanligste SQL-begrensningene i detalj og gi klare eksempler og forklare hvordan du implementerer dem effektivt.

Hva er SQL-begrensninger?

SQL-begrensninger er regler som gjelder kolonner eller tabeller i en relasjonsdatabase å begrense typen data som kan være satt inn oppdatert eller slettet . Disse reglene sikrer at dataene er gyldige konsistente og overholder forretningslogikken eller databasekrav . Begrensninger kan håndheves under tabelloppretting eller senere ved å bruke ALTER TABLE uttalelse. De spiller en viktig rolle i å opprettholde kvaliteten og integriteten til databasen din.

Typer SQL-begrensninger 

SQL gir flere typer begrensninger for å administrere ulike aspekter av dataintegritet. Disse begrensningene er avgjørende for å sikre at data oppfyller kravene til nøyaktighet konsistens og gyldighet . La oss gå gjennom hver av dem med detaljerte forklaringer og eksempler.

1. IKKE NULL-begrensning

De IKKE NULL constraint sikrer at en kolonne ikke kan inneholde NULL-verdier. Dette er spesielt viktig for kolonner der en verdi er avgjørende for å identifisere poster eller utføre beregninger. Hvis en kolonne er definert som IKKE NULL hver rad må inneholde en verdi for den kolonnen.

Eksempel:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);

Forklaring: I eksemplet ovenfor både ID og NAME kolonner er definert med IKKE NULL begrensning betyr at hver elev må ha en ID og NAME verdi.

2. UNIK begrensning

De UNIK constraint sikrer at alle verdier i en kolonne er forskjellige på tvers av alle rader i en tabell. I motsetning til PRIMÆR NØKKEL som krever unikhet og ikke tillater NULL-er. UNIQUE-begrensningen tillater NULL-verdier, men fremtvinger fortsatt unikhet for ikke-NULL-oppføringer.

Eksempel:

 CREATE TABLE Student   
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);

Forklaring : Her ID kolonnen må ha unike verdier som sikrer at ikke to elever kan dele det samme ID . Vi kan ha mer enn én UNIK begrensning i en tabell.

3. PRIMÆR NØKKEL Begrensning  

EN PRIMÆR NØKKEL begrensning er en kombinasjon av IKKE NULL og UNIK begrensninger. Den identifiserer hver rad i en tabell unikt. Et bord kan bare ha ett PRIMÆR NØKKEL og den kan ikke godta NULL-verdier. Dette brukes vanligvis for kolonnen som vil tjene som identifikator for poster.

Eksempel:

 CREATE TABLE Student   
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);

Forklaring: I dette tilfellet ID kolonnen er satt som primærnøkkelen, noe som sikrer at hver elevs ID er unik og ikke kan være NULL.

4. UTENLANDSKE NØKKEL-begrensning

EN UTENLANDSKE NØKKEL begrensning kobler en kolonne i én tabell til primærnøkkel i en annen tabell. Dette forholdet bidrar til å opprettholde referanseintegritet ved å sikre at verdien i fremmednøkkel kolonnen samsvarer med en gyldig post i den refererte tabellen.

Bestillingstabell:

O_ID BESTILLINGSNR C_ID
1 2253 3
2 3325 3
3 4521 2
4 8532 1

Kundetabell:

C_ID NAVN ADRESSE
1 RAMESH DELHI
2 SURESH NOIDA
3 DHARMESH GURGAON

Som vi kan se tydelig at feltet C_ID i Bestillingstabell er primærnøkkel i Kunder-tabellen, dvs. den identifiserer hver rad i Kunder bord. Derfor er det en utenlandsk nøkkel i ordretabell. 

Eksempel:

 CREATE TABLE Orders   
(
O_ID int NOT NULL
ORDER_NO int NOT NULL
C_ID int
PRIMARY KEY (O_ID)
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)

Forklaring: I dette eksemplet C_ID kolonne i Orders tabellen er en fremmednøkkel som refererer til C_ID kolonne i Customers bord. Dette sikrer at kun gyldige kunde-ID-er kan settes inn i Orders bord.

5. SJEKK begrensning

De SJEKKE constraint lar oss spesifisere en betingelse som data må tilfredsstille før de settes inn i tabellen. Dette kan brukes til å håndheve regler som å sikre at en kolonnes verdi oppfyller visse kriterier (f.eks. alder må være over 18)

Eksempel:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);

Forklaring: I tabellen ovenfor SJEKKE constraint sikrer at kun elever på 18 år eller eldre kan settes inn i tabellen.

6. STANDARD Begrensning

De MISLIGHOLDE constraint gir en standardverdi for en kolonne når ingen verdi er spesifisert under innsetting. Dette er nyttig for å sikre at enkelte kolonner alltid har en meningsfull verdi selv om brukeren ikke oppgir en

Eksempel:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);

Forklaring: Her hvis det ikke er gitt noen verdi AGE under et innlegg vil standardverdien på 18 bli tildelt automatisk.

Hvordan spesifisere begrensninger i SQL

Begrensninger kan spesifiseres under tabellopprettingsprosessen ved å bruke CREATE TABLE uttalelse. I tillegg kan begrensninger endres eller legges til eksisterende tabeller ved å bruke ALTER TABLE uttalelse.

Syntaks for å lage begrensninger:

CREATE TABLE tabellnavn

(

kolonne1 datatype [begrensningsnavn]

kolonne2 datatype [begrensningsnavn]

kolonne3 datatype [begrensningsnavn]

...

);

Vi kan også legge til eller fjerne begrensninger etter at en tabell er opprettet:

Eksempel for å legge til en begrensning:

 ALTER TABLE Student   
ADD CONSTRAINT unique_student_id UNIQUE (ID);

Konklusjon

SQL-begrensninger er avgjørende for vedlikehold dataintegritet og sikre konsistens i relasjonsdatabaser. Å forstå og implementere disse begrensningene effektivt vil hjelpe til med å designe robuste feilfrie databaser. Ved å utnytte IKKE NULL UNIK PRIMÆR NØKKEL UTENLANDSKE NØKKEL KONTROLLER STANDARD og INDEKS du kan sikre at databasen er optimalisert for nøyaktighet og ytelse .

Lag quiz