logo

SQL | KONTROLLERA begränsning

DeCHECKbegränsning i SQL upprätthåller regler för kolumnvärden genom att begränsa data som kan infogas eller uppdateras. Det säkerställer att värden uppfyller specificerade villkor. Om ett värde bryter mot villkoret avvisas operationen.CHECKkan läggas till när tabell skapas eller ändras.

Syntax för CHECK-begränsningen

De KONTROLLERA begränsning kan definieras när du skapar en tabell eller läggas till senare med ALTER-satsen.

1. Använda CHECK med CREATE TABLE :

CREATE TABLE table_name (  
column1 datatype
column2 datatype CHECK (condition)
...
);

2. Använda CHECK med ALTER TABLE

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

Nyckelpunkter om CHECK-begränsningen:



  • Domänintegritet: Det säkerställer att värdena i en kolumn uppfyller specificerade villkor och hjälper på så sätt att upprätthålla giltiga data i databasen.
  • Används med CREATE eller ALTER: CHECK-begränsningen kan definieras när en tabell skapas eller läggas till i en befintlig tabell.
  • Kan kombineras med andra begränsningar: Du kan använda CHECK tillsammans med andra begränsningar som PRIMÄRNYCKEL FOREIGN KEY och NOT NULL för att definiera mer omfattande regler för tabelldata.
  • Begränsningar på radnivå: Till skillnad från begränsningar på kolumnnivå som påverkar enskilda kolumner kan en CHECK-begränsning tillämpas på flera kolumner samtidigt om det behövs.

Exempel på användning av CHECK-begränsningen

Låt oss titta på några praktiska exempel för att bättre förstå hur CHECK-begränsningen fungerar i SQL .

Exempel 1: Tillämpning av CHECK på en enskild kolumn

I det här exemplet skapar vi en kundtabell med en ålderskolumn som måste innehålla värden mellan 18 och 120. CHECK-begränsningen säkerställer att ingen ogiltig ålder infogas i tabellen.

Fråga:

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

Kolumnen Ålder har en KONTROLL-begränsning som säkerställer att värdet måste vara mellan 18 och 120. Om du försöker infoga en ålder utanför detta intervall kommer databasen att ge ett fel.

Exempel 2: KONTROLLERA begränsning med flera kolumner

Vi kan också använda CHECK-begränsningen över flera kolumner. Låt oss till exempel säga att vi har en Medarbetartabell och vi vill säkerställa att lönen är positiv och åldern är högre än eller lika med 18.

Fråga:

java sträng klass
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 säkerställer att båda villkoren är uppfyllda. den anställde måste vara minst 18 år och lönen måste vara större än 0. Denna typ av begränsning är användbar när flera kolumner är inblandade i regeln.

Exempel 3: Lägga till en CHECK-begränsning med ALTER TABLE

Vi kan lägga till en CHECK-begränsning till en befintlig tabell med hjälp av ALTER TABLE-satsen.

Fråga:

ALTER TABLE Employee  
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);

Detta lägger till en CHECK-restriktion med namnet chk_salary i tabellen Employee och säkerställer att kolumnen Lön har ett lägsta värde på 30000. Om du försöker infoga eller uppdatera en post med en lön lägre än 30000 kommer operationen att misslyckas.

Förslag på frågesport Redigera frågesport 5 frågor

Vad säkerställer en CHECK-begränsning i SQL?

  • A

    Kolumn accepterar värden utan några regler

  • B

    Kolumn accepterar endast värden när den är unik

  • C

    Kolumn accepterar endast värden när de inte är null

  • D

    Kolumnen accepterar värden som matchar given regel

Förklaring:

CHECK tillämpar ett villkor på kolumnvärden som avvisar all data som bryter mot den definierade regeln.

När förhindrar SQL en INSERT med CHECK?

urval sortera
  • A

    När värdet är duplicerat i kolumnen

  • B

    När värdet bryter mot definierat villkor

  • C

    När tabellen inte har någon primär begränsning

  • D

    När värdet är NULL och kolumn tillåter null

Förklaring:

Om infogade eller uppdaterade data går sönder avbryter CHECK-villkoret SQL operationen.

Var kan en CHECK-begränsning definieras?

  • A

    Endast inom SELECT-frågesyntax

  • B

    Först efter att primärnyckeln har deklarerats

  • C

    Under tabellskapande eller ändring

    char till sträng
  • D

    Endast för numeriska kolumner med intervall

Förklaring:

CHECK kan läggas till när tabellen skapas eller senare med en ALTER TABLE-sats.

Vad händer i en KONTROLL-begränsning med flera kolumner?

  • A

    Villkor kan endast referera till en kolumn

  • B

    Villkor kan referera till flera kolumner

  • C

    Skick fungerar endast på numeriska kolumner

    hashbar java
  • D

    Villkor ignorerar värden under infogning

Förklaring:

CHECK kan tillämpa regler genom att använda två eller flera kolumner som upprätthåller kombinerad validering.

Vilken insats klarar av begränsningen CHECK (Ålder ≥ 18)?

  • A

    Åldersvärde lägre än femton år

  • B

    Åldersvärde exakt lika med arton

  • C

    Åldersvärde större än tjugofem

  • D

    Åldersvärde lagrat som NULL-värde tillåtet

Förklaring:

Alla värden under 18 bryter mot CHECK-regeln och resulterar i ett insättningsfel.

SQL | KONTROLLERA begränsningQuiz har slutförts framgångsrikt. Ditt resultat:  2/5Noggrannhet: 0 %Logga in för att se förklaring 1/5 1/5 < Previous Nästa >