DeCHECKbegrænsning i SQL håndhæver regler for kolonneværdier ved at begrænse de data, der kan indsættes eller opdateres. Det sikrer, at værdier opfylder specificerede betingelser. Hvis en værdi overtræder betingelsen, afvises handlingen.CHECKkan tilføjes under oprettelse eller ændring af tabellen.
Syntaks for CHECK-begrænsningen
De CHECK begrænsning kan defineres ved oprettelse af en tabel eller tilføjes senere ved hjælp af ALTER-sætningen.
1. Brug af CHECK med CREATE TABLE :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. Brug af CHECK med ALTER TABLE
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
Nøglepunkter om CHECK-begrænsningen:
- Domæneintegritet: Det sikrer, at værdierne i en kolonne opfylder angivne betingelser, hvilket hjælper med at opretholde gyldige data i databasen.
- Bruges med CREATE eller ALTER: CHECK-begrænsningen kan defineres, når du opretter en tabel eller tilføjes til en eksisterende tabel.
- Kan kombineres med andre begrænsninger: Du kan bruge CHECK sammen med andre begrænsninger som f.eks PRIMÆR NØGLE FOREIGN KEY og NOT NULL for at definere mere omfattende regler for tabeldataene.
- Begrænsninger på rækkeniveau: I modsætning til begrænsninger på kolonneniveau, der påvirker individuelle kolonner, kan en CHECK-begrænsning gælde for flere kolonner på én gang, hvis det er nødvendigt.
Eksempler på brug af CHECK-begrænsningen
Lad os se på nogle praktiske eksempler for bedre at forstå, hvordan CHECK-begrænsningen fungerer i SQL .
Eksempel 1: Anvendelse af CHECK på en enkelt kolonne
I dette eksempel opretter vi en kundetabel med en alderskolonne, der skal indeholde værdier mellem 18 og 120. CHECK-begrænsningen sikrer, at der ikke indsættes nogen ugyldig alder i tabellen.
inttostr java
Forespørgsel:
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(50)
Age INT CHECK (Age >= 18 AND Age <= 120)
);
-- Valid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (1 'John Doe' 25);
-- Invalid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (2 'Jane Smith' 15); -- This will fail due to the CHECK constraint
Alderskolonnen har en CHECK-begrænsning, der sikrer, at værdien skal være mellem 18 og 120. Hvis du forsøger at indsætte en alder uden for dette interval, vil databasen give en fejl.
Eksempel 2: CHECK begrænsning med flere kolonner
Vi kan også bruge CHECK-begrænsningen på tværs af flere kolonner. Lad os for eksempel sige, at vi har en Medarbejdertabel, og vi ønsker at sikre, at lønnen er positiv, og alderen er større end eller lig med 18 år.
Forespørgsel:
CREATE TABLE Employee (
EmployeeID INT PRIMARY KEY
Name VARCHAR(50)
Age INT
Salary DECIMAL(10 2)
CHECK (Age >= 18 AND Salary > 0)
);
-- Valid insert
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (1 'Alice Johnson' 30 50000);
-- Invalid insert (age < 18)
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (2 'Bob Lee' 16 45000); -- This will fail due to the CHECK constraint
CHECK-begrænsningen sikrer, at begge betingelser er opfyldt. medarbejderen skal være mindst 18 år gammel, og lønnen skal være større end 0. Denne form for begrænsning er nyttig, når flere kolonner er involveret i reglen.
Eksempel 3: Tilføjelse af en CHECK-begrænsning med ALTER TABLE
Vi kan tilføje en CHECK-begrænsning til en eksisterende tabel ved hjælp af ALTER TABLE-sætningen.
Forespørgsel:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
Dette tilføjer en CHECK-begrænsning ved navn chk_salary til medarbejdertabellen, hvilket sikrer, at kolonnen Løn har en minimumsværdi på 30.000. Hvis du forsøger at indsætte eller opdatere en post med en løn, der er lavere end 30.000, vil handlingen mislykkes.
Foreslået quiz Rediger quiz 5 spørgsmålHvad sikrer en CHECK-begrænsning i SQL?
- EN
Kolonne accepterer værdier uden nogen regler
- B
Kolonne accepterer kun værdier, når den er unik
java if-erklæring
- C
Kolonne accepterer kun værdier, når de ikke er nul
- D
Kolonne accepterer værdier, der matcher en given regel
CHECK håndhæver en betingelse på kolonneværdier, der afviser data, der overtræder den definerede regel.
Hvornår forhindrer SQL en INSERT ved hjælp af CHECK?
- EN
Når værdien er dublet i kolonnen
- B
Når værdien overtræder defineret betingelse
- C
Når tabellen ikke har nogen primær begrænsning
array vs arraylist
- D
Når værdien er NULL, og kolonnen tillader null
Hvis indsatte eller opdaterede data går i stykker, annullerer CHECK-betingelsen SQL handlingen.
Hvor kan en CHECK-begrænsning defineres?
- EN
Kun inden for SELECT-forespørgselssyntaks
kantet materiale
- B
Først efter at primærnøgle er erklæret
- C
Under oprettelse eller ændring af tabel
- D
Kun for numeriske kolonner med intervaller
CHECK kan tilføjes under oprettelse af tabellen eller senere ved hjælp af en ALTER TABLE-sætning.
Hvad sker der i en KONTROL-begrænsning med flere kolonner?
- EN
Betingelse kan kun referere til én kolonne
- B
Betingelse kan referere til flere kolonner
- C
Betingelsen virker kun på numeriske kolonner
format streng java
- D
Betingelse ignorerer værdier under indsættelse
CHECK kan anvende regler ved hjælp af to eller flere kolonner, der håndhæver kombineret validering.
Hvilken indsats opfylder begrænsningen CHECK (Alder ≥ 18)?
- EN
Aldersværdi lavere end femten år
- B
Aldersværdi nøjagtigt lig atten
- C
Aldersværdi større end femogtyve
- D
Aldersværdi gemt som NULL-værdi tilladt
Enhver værdi under 18 overtræder CHECK-reglen og resulterer i en indsættelsesfejl.
Quiz gennemførte med succes Din score: 2/5Nøjagtighed: 0 %Log ind for at se forklaring 1/5 1/5 < Previous Næste >