logo

SQL | CHECK Omezení

TheCHECKomezení v SQL vynucuje pravidla pro hodnoty sloupců omezením dat, která lze vkládat nebo aktualizovat. Zajišťuje, že hodnoty splňují stanovené podmínky. Pokud hodnota porušuje podmínku, operace je zamítnuta.CHECKlze přidat během vytváření nebo úpravy tabulky.

Syntaxe omezení CHECK

The CHECK omezení lze definovat při vytváření tabulky nebo přidat později pomocí příkazu ALTER.

1. Pomocí CHECK s CREATE TABLE :

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

2. Pomocí CHECK s ALTER TABLE

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

Klíčové body o omezení CHECK:



  • Integrita domény: Zajišťuje, že hodnoty ve sloupci splňují zadané podmínky, čímž pomáhá udržovat platná data v databázi.
  • Používá se s CREATE nebo ALTER: Omezení CHECK lze definovat při vytváření tabulky nebo přidat do existující tabulky.
  • Lze kombinovat s dalšími omezeními: Můžete použít CHECK spolu s dalšími omezeními, jako je PRIMÁRNÍ KLÍČ FOREIGN KEY a NOT NULL pro definování komplexnějších pravidel pro data tabulky.
  • Omezení na úrovni řádků: Na rozdíl od omezení na úrovni sloupců, které ovlivňují jednotlivé sloupce, lze omezení CHECK v případě potřeby použít na více sloupců najednou.

Příklady použití omezení CHECK

Podívejme se na několik praktických příkladů, abychom lépe porozuměli tomu, jak funguje omezení CHECK SQL .

Příklad 1: Aplikace CHECK na jeden sloupec

V tomto příkladu vytvoříme tabulku Zákazníci se sloupcem Age, který musí obsahovat hodnoty mezi 18 a 120. Omezení CHECK zajišťuje, že do tabulky nebude vložen žádný neplatný věk.

Dotaz:

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

Sloupec Age má omezení CHECK, které zajišťuje, že hodnota musí být mezi 18 a 120. Pokud se pokusíte vložit věk mimo tento rozsah, databáze vyvolá chybu.

Příklad 2: CHECK Constraint with Multiple Column

Můžeme také použít omezení CHECK přes více sloupců. Řekněme například, že máme Tabulka zaměstnanců a chceme zajistit, aby plat byl kladný a věk byl vyšší nebo roven 18.

Dotaz:

obecná porucha ochrany
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

Omezení CHECK zajišťuje, že jsou splněny obě podmínky. zaměstnanci musí být alespoň 18 let a plat musí být vyšší než 0. Tento druh omezení je užitečný, pokud je v pravidle zahrnuto více sloupců.

Příklad 3: Přidání omezení CHECK pomocí ALTER TABLE

Do existující tabulky můžeme přidat omezení CHECK pomocí příkazu ALTER TABLE.

Dotaz:

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

Tím se do tabulky Zaměstnanec přidá omezení CHECK s názvem chk_salary, které zajistí, že sloupec Plat má minimální hodnotu 30 000. Pokud se pokusíte vložit nebo aktualizovat záznam s platem nižším než 30 000, operace se nezdaří.

Doporučený kvíz Upravit kvíz 5 otázek

Co zajišťuje omezení CHECK v SQL?

  • A

    Sloupec přijímá hodnoty bez jakýchkoli pravidel

    nejkrásnější úsměv
  • B

    Sloupec přijímá hodnoty pouze tehdy, jsou-li jedinečné

  • C

    Sloupec přijímá hodnoty pouze v případě, že není null

  • D

    Sloupec přijímá hodnoty odpovídající danému pravidlu

Vysvětlení:

CHECK vynutí podmínku pro hodnoty sloupců, která odmítne všechna data, která porušují definované pravidlo.

Kdy SQL zabrání INSERT pomocí CHECK?

  • A

    Když je hodnota ve sloupci duplicitní

  • B

    Když hodnota poruší definovanou podmínku

  • C

    Když tabulka nemá žádné primární omezení

  • D

    Když je hodnota NULL a sloupec umožňuje hodnotu null

    mysql se nerovná
Vysvětlení:

Pokud vložená nebo aktualizovaná data přeruší, podmínka CHECK SQL operaci zruší.

Kde lze definovat omezení CHECK?

  • A

    Pouze uvnitř syntaxe dotazu SELECT

  • B

    Teprve po deklaraci primárního klíče

  • C

    Při vytváření nebo úpravě tabulky

  • D

    Pouze pro číselné sloupce s rozsahy

Vysvětlení:

CHECK lze přidat při vytváření tabulky nebo později pomocí příkazu ALTER TABLE.

Co se stane ve vícesloupcovém omezení CHECK?

  • A

    Podmínka může odkazovat pouze na jeden sloupec

  • B

    Podmínka může odkazovat na více sloupců

  • C

    Podmínka funguje pouze u číselných sloupců

    hlavní java
  • D

    Podmínka ignoruje hodnoty během vkládání

Vysvětlení:

CHECK může aplikovat pravidla pomocí dvou nebo více sloupců vynucujících kombinovanou validaci.

Která vložka nesplňuje podmínku CHECK (věk ≥ 18)?

  • A

    Hodnota věku nižší než patnáct let

  • B

    Hodnota věku přesně rovná osmnácti

  • C

    Hodnota věku větší než dvacet pět

  • D

    Hodnota věku uložená jako povolená hodnota NULL

Vysvětlení:

Jakákoli hodnota nižší než 18 porušuje pravidlo CHECK a vede k chybě vložení.

SQL | CHECK OmezeníKvíz úspěšně dokončen Vaše skóre:  2/5Přesnost: 0 %Pro zobrazení vysvětlení se přihlaste 1/5 1/5 < Previous Další >