SQL | ELLENŐRIZZE a kényszert

SQL | ELLENŐRIZZE a kényszert

A CHECK Az SQL megszorítása szabályokat kényszerít ki az oszlopértékekre a beszúrható vagy frissíthető adatok korlátozásával. Biztosítja, hogy az értékek megfeleljenek a meghatározott feltételeknek. Ha egy érték sérti a feltételt, a művelet elutasításra kerül. CHECK táblázat létrehozása vagy módosítása során hozzáadható.

A CHECK kényszer szintaxisa

A ELLENŐRIZZE a kényszert táblázat létrehozásakor vagy később hozzáadható az ALTER utasítással.

1. A CHECK használata a CREATE TABLE funkcióval :

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

2. A CHECK használata az ALTER TABLE segítségével

 ALTER TABLE table_name   
ADD CONSTRAINT constraint_name CHECK (condition);

Főbb pontok a CHECK-korlátozással kapcsolatban:

  • Domain integritása: Gondoskodik arról, hogy az oszlopban lévő értékek megfeleljenek a meghatározott feltételeknek, ezáltal segítve az érvényes adatok megtartását az adatbázisban.
  • A CREATE vagy ALTER funkcióval használható: Az ELLENŐRZÉS kényszer megadható tábla létrehozásakor, vagy hozzáadható egy meglévő táblához.
  • Más megkötésekkel kombinálható: Használhatja a CHECK-et más megszorításokkal együtt, mint pl PRIMER KULCS FOREIGN KEY és NOT NULL, hogy átfogóbb szabályokat határozzon meg a táblaadatokhoz.
  • Sorszintű megszorítások: Ellentétben az oszlopszintű megszorításokkal, amelyek az egyes oszlopokat érintik, a CHECK megkötés szükség esetén egyszerre több oszlopra is vonatkozhat.

Példák a CHECK kényszer használatára

Nézzünk meg néhány gyakorlati példát, hogy jobban megértsük, hogyan működik a CHECK kényszer SQL .

1. példa: A CHECK alkalmazása egyetlen oszlopon

Ebben a példában létrehozunk egy Vevők táblát egy Életkor oszloppal, amelynek 18 és 120 közötti értékeket kell tartalmaznia. Az ELLENŐRZÉS kényszer biztosítja, hogy a táblába ne kerüljön be érvénytelen életkor.

Lekérdezés:

 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

Az Életkor oszlop rendelkezik egy ELLENŐRZÉSI kényszerrel, amely biztosítja, hogy az érték 18 és 120 között legyen. Ha ezen a tartományon kívüli életkort próbál meg beszúrni, az adatbázis hibát jelez.

2. példa: ELLENŐRIZZE a kényszert több oszloppal

A CHECK kényszert több oszlopon is használhatjuk. Tegyük fel például, hogy van egy Alkalmazotti táblázat, és szeretnénk biztosítani, hogy a Fizetés pozitív legyen, az életkor pedig nagyobb vagy egyenlő, mint 18 év.

Lekérdezés:

 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

A CHECK megkötés biztosítja, hogy mindkét feltétel teljesüljön. a munkavállalónak legalább 18 évesnek kell lennie, és a fizetésnek nagyobbnak kell lennie 0-nál. Ez a fajta megszorítás akkor hasznos, ha a szabály több oszlopot tartalmaz.

3. példa: CHECK kényszer hozzáadása az ALTER TABLE segítségével

Egy létező táblához CHECK kényszert adhatunk az ALTER TABLE utasítás segítségével.

Lekérdezés:

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

Ez hozzáad egy chk_salary nevű ELLENŐRZÉS kényszert az Employee táblához, amely biztosítja, hogy a Fizetés oszlop minimális értéke 30000. Ha 30000-nél alacsonyabb fizetésű rekordot próbál beszúrni vagy frissíteni, a művelet sikertelen lesz.

Javasolt kvíz Kvíz szerkesztése 5 kérdés

Mit biztosít a CHECK kényszer az SQL-ben?

  • A

    Az oszlop szabályok nélkül fogad el értékeket

  • B

    Az oszlop csak akkor fogad el értékeket, ha egyedi

  • C

    Az oszlop csak akkor fogad el értékeket, ha nem nulla

  • D

    Az oszlop az adott szabálynak megfelelő értékeket fogadja el

Magyarázat:

A CHECK olyan feltételt kényszerít ki az oszlopértékekre, amelyek elutasítják a meghatározott szabályt sértő adatokat.

Mikor akadályozza meg az SQL az INSERT-t a CHECK használatával?

  • A

    Ha az érték duplikált az oszlopban

  • B

    Amikor az érték sérti a meghatározott feltételt

  • C

    Amikor a táblázatnak nincs elsődleges megkötése

  • D

    Ha az érték NULL, és az oszlop megengedi a nullát

Magyarázat:

Ha a beszúrt vagy frissített adatok megszakítják az ELLENŐRZÉS feltételt, az SQL megszakítja a műveletet.

Hol definiálható a CHECK megszorítás?

  • A

    Csak a SELECT lekérdezés szintaxisában

  • B

    Csak az elsődleges kulcs deklarálása után

  • C

    Táblázat létrehozása vagy módosítása során

  • D

    Csak tartományokkal rendelkező numerikus oszlopokhoz

Magyarázat:

A CHECK hozzáadható a táblázat létrehozásakor vagy később egy ALTER TABLE utasítással.

Mi történik egy többoszlopos ELLENŐRZÉS kényszerben?

  • A

    A feltétel csak egy oszlopra hivatkozhat

  • B

    A feltétel több oszlopra is hivatkozhat

  • C

    A feltétel csak numerikus oszlopokon működik

  • D

    A feltétel figyelmen kívül hagyja az értékeket a beillesztés során

Magyarázat:

A CHECK két vagy több oszlop használatával is alkalmazhat szabályokat, amelyek kombinált érvényesítést hajtanak végre.

Melyik betét nem felel meg a CHECK (életkor ≥ 18) megkötésének?

  • A

    Tizenöt évnél alacsonyabb életkor

  • B

    Az életkor pontosan egyenlő tizennyolccal

  • C

    Az életkor nagyobb, mint huszonöt

  • D

    Megengedett NULL értékként tárolt életkor

Magyarázat:

A 18 alatti érték sérti az ELLENŐRZÉS szabályt, és a beillesztési hibához vezet.

SQL | ELLENŐRIZZE a kényszertA kvíz sikeresen kitöltött pontszáma:   2 /5 Pontosság:  0% Jelentkezzen be a magyarázat megtekintéséhez 1 /5 1 /5 < Previous Következő >