SQL begrænsninger er væsentlige elementer i relationel database design der sikrer integritet nøjagtighed og pålidelighed af de data, der er lagret i en database. Ved at håndhæve specifikke regler på tabelkolonner hjælper SQL-begrænsninger med at opretholde datakonsistens, hvilket forhindrer ugyldige dataindtastninger og optimerer forespørgselsydeevnen.
I denne artikel vil vi forklare de mest almindelige SQL-begrænsninger i detaljer med klare eksempler og forklare, hvordan man implementerer dem effektivt.
Hvad er SQL-begrænsninger?
SQL begrænsninger gælder regler for kolonner eller borde i en relationel database at begrænse den type data, der kan være indsat opdateret eller slettet . Disse regler sikrer, at dataene er gyldige konsistente og overholder forretningslogikken eller databasekrav . Begrænsninger kan håndhæves under oprettelse af tabel eller senere ved hjælp af ALTER TABLE erklæring. De spiller en afgørende rolle i at opretholde kvaliteten og integriteten af din database.
Typer af SQL-begrænsninger
SQL giver flere typer begrænsninger til at styre forskellige aspekter af dataintegritet. Disse begrænsninger er afgørende for at sikre, at data opfylder kravene i nøjagtighed konsistens og gyldighed . Lad os gennemgå hver af dem med detaljerede forklaringer og eksempler.
1. IKKE NULL Begrænsning
De IKKE NULL begrænsning sikrer, at en kolonne ikke kan indeholde NULL-værdier. Dette er især vigtigt for kolonner, hvor en værdi er afgørende for at identificere poster eller udføre beregninger. Hvis en kolonne er defineret som IKKE NULL hver række skal indeholde en værdi for den kolonne.
Eksempel:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
Forklaring: I ovenstående eksempel bådeIDogNAMEkolonner er defineret med IKKE NULL begrænsning betyder, at hver elev skal have enIDogNAMEværdi.
2. UNIK begrænsning
De ENESTÅENDE constraint sikrer, at alle værdier i en kolonne er forskellige på tværs af alle rækker i en tabel. I modsætning til PRIMÆR NØGLE som kræver unikhed og ikke tillader NULL'er, UNIQUE-begrænsningen tillader NULL-værdier, men håndhæver stadig unikhed for ikke-NULL-indgange.
Eksempel:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);
Forklaring : HerIDkolonne skal have unikke værdier, der sikrer, at ikke to elever kan dele det sammeID. Vi kan have mere end én ENESTÅENDE begrænsning i en tabel.
3. PRIMÆR NØGLE Begrænsning
EN PRIMÆR NØGLE begrænsning er en kombination af IKKE NULL og ENESTÅENDE begrænsninger. Det identificerer entydigt hver række i en tabel. Et bord kan kun have én PRIMÆR NØGLE og den kan ikke acceptere NULL-værdier. Dette bruges typisk til den kolonne, der 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 tilfældeIDkolonne er angivet som den primære nøgle, hvilket sikrer, at hver elevs ID er unikt og ikke kan være NULL.
4. UDENLANDSKE NØGLE-begrænsning
EN UDENLANDSKE NØGLE begrænsning linker en kolonne i én tabel til primær nøgle i en anden tabel. Dette forhold hjælper med at opretholde referentiel integritet ved at sikre, at værdien i fremmed nøgle kolonne matcher en gyldig post i den refererede tabel.
Ordre tabel:
| O_ID | BESTILLINGSNR | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
Kundetabel:
java streng til int konvertering
| C_ID | NAVN | ADRESSE |
|---|---|---|
| 1 | RAMESH | DELHI |
| 2 | SURESH | NOIDA |
| 3 | DHARMESH | GURGAON |
Som vi tydeligt kan se, at feltet C_ID i Ordre bord er den primær nøgle i kundetabellen, dvs. den identificerer entydigt hver række i Kunder tabel. Derfor er det en Foreign Key in Orders-tabel.
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 eksempelC_IDkolonne iOrderstabel er en fremmednøgle, der refererer tilC_IDkolonne iCustomerstabel. Dette sikrer, at kun gyldige kunde-id'er kan indsættes iOrderstabel.
5. KONTROLLER begrænsning
De CHECK constraint giver os mulighed for at specificere en betingelse, som data skal opfylde, før de indsættes i tabellen. Dette kan bruges til at håndhæve regler, såsom at sikre, at en kolonnes værdi opfylder visse kriterier (f.eks. skal alder 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 ovenstående tabel CHECK constraint sikrer, at kun elever på 18 år eller ældre kan indsættes i tabellen.
6. STANDARD Begrænsning
De MISLIGHOLDELSE constraint giver en standardværdi for en kolonne, når der ikke er angivet nogen værdi under indsættelse. Dette er nyttigt for at sikre, at visse kolonner altid har en meningsfuld værdi, selvom brugeren ikke angiver en
Eksempel:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);
Forklaring: Her, hvis der ikke er angivet nogen værdiAGEunder en indsats vil standardværdien på 18 automatisk blive tildelt.
Sådan specificeres begrænsninger i SQL
Begrænsninger kan specificeres under tabeloprettelsesprocessen ved hjælp af CREATE TABLE erklæring. Derudover kan begrænsninger ændres eller tilføjes til eksisterende tabeller ved hjælp afALTER TABLEerklæring.
Syntaks til at skabe begrænsninger:
OPRET TABEL tabelnavn
(
kolonne1 datatype [konstraint_name]
kolonne 2 datatype [konstraint_name]
kolonne3 datatype [begrensningsnavn]
...
);
Vi kan også tilføje eller fjerne begrænsninger, efter at en tabel er oprettet:
Eksempel på tilføjelse af en begrænsning:
string sammenligne java
ALTER TABLE Student
ADD CONSTRAINT unique_student_id UNIQUE (ID);
Konklusion
SQL-begrænsninger er afgørende for vedligeholdelse dataintegritet og sikring af sammenhæng i relationelle databaser. At forstå og implementere disse begrænsninger effektivt vil hjælpe med at designe robuste fejlfrie databaser. Ved at udnytte IKKE NULL UNIK PRIMÆR NØGLE UDENLANDSKE NØGLE KONTROLLER STANDARD og INDEKS du kan sikre din database er optimeret til nøjagtighed og præstation .
Opret quiz