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 constraintAz É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 constraintA 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ésMit 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
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
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
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
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
A 18 alatti érték sérti az ELLENŐRZÉS szabályt, és a beillesztési hibához vezet.
A 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ő >