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ågorVad 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
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
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
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
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
Alla värden under 18 bryter mot CHECK-regeln och resulterar i ett insättningsfel.
Quiz 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 >