logo

SQL | KONTROLLER begrænsning

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ål

Hvad 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

Forklaring:

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

Forklaring:

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

Forklaring:

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

Forklaring:

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

Forklaring:

Enhver værdi under 18 overtræder CHECK-reglen og resulterer i en indsættelsesfejl.

SQL | KONTROLLER begrænsningQuiz gennemførte med succes Din score:  2/5Nøjagtighed: 0 %Log ind for at se forklaring 1/5 1/5 < Previous Næste >