logo

SQL | PREVERITE Omejitev

TheCHECKomejitev v SQL uveljavlja pravila za vrednosti stolpcev z omejevanjem podatkov, ki jih je mogoče vstaviti ali posodobiti. Zagotavlja, da vrednosti izpolnjujejo določene pogoje. Če vrednost krši pogoj, je operacija zavrnjena.CHECKlahko dodate med ustvarjanjem ali spreminjanjem tabele.

Sintaksa omejitve CHECK

The Omejitev CHECK lahko definirate pri ustvarjanju tabele ali dodate pozneje z uporabo stavka ALTER.

1. Uporaba CHECK z CREATE TABLE :

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

2. Uporaba CHECK z ALTER TABLE

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

Ključne točke o omejitvi CHECK:



  • Integriteta domene: Zagotavlja, da vrednosti v stolpcu izpolnjujejo določene pogoje in tako pomagajo ohranjati veljavne podatke v bazi podatkov.
  • Uporablja se z CREATE ali ALTER: Omejitev CHECK je mogoče določiti pri ustvarjanju tabele ali dodati v obstoječo tabelo.
  • Lahko se kombinira z drugimi omejitvami: CHECK lahko uporabite skupaj z drugimi omejitvami, kot je PRIMARNI KLJUČ FOREIGN KEY in NOT NULL za definiranje obsežnejših pravil za podatke tabele.
  • Omejitve na ravni vrstice: Za razliko od omejitev na ravni stolpcev, ki vplivajo na posamezne stolpce, lahko omejitev CHECK po potrebi velja za več stolpcev hkrati.

Primeri uporabe omejitve CHECK

Oglejmo si nekaj praktičnih primerov, da bomo bolje razumeli, kako deluje omejitev CHECK SQL .

1. primer: uporaba CHECK v enem stolpcu

V tem primeru ustvarimo tabelo Stranke s stolpcem Starost, ki mora vsebovati vrednosti med 18 in 120. Omejitev CHECK zagotavlja, da v tabelo ni vstavljena neveljavna starost.

poizvedba:

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

Stolpec Starost ima omejitev CHECK, ki zagotavlja, da mora biti vrednost med 18 in 120. Če poskusite vstaviti starost zunaj tega obsega, bo baza podatkov vrgla napako.

Primer 2: Omejitev CHECK z več stolpci

Uporabimo lahko tudi omejitev CHECK v več stolpcih. Na primer, recimo, da imamo Tabelo zaposlenih in želimo zagotoviti, da je plača pozitivna in da je starost večja ali enaka 18.

poizvedba:

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

Omejitev CHECK zagotavlja, da sta oba pogoja izpolnjena. zaposleni mora biti star najmanj 18 let in plača mora biti višja od 0. Ta vrsta omejitve je uporabna, če je v pravilu vključenih več stolpcev.

Primer 3: Dodajanje omejitve CHECK z ALTER TABLE

Obstoječi tabeli lahko dodamo omejitev CHECK z uporabo stavka ALTER TABLE.

poizvedba:

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

To doda omejitev CHECK z imenom chk_salary v tabelo Employee, ki zagotavlja, da ima stolpec Plača najmanjšo vrednost 30000. Če poskusite vstaviti ali posodobiti zapis s plačo, nižjo od 30000, operacija ne bo uspela.

Predlagani kviz Uredi kviz 5 vprašanj

Kaj zagotavlja omejitev CHECK v SQL?

  • A

    Stolpec sprejema vrednosti brez pravil

  • B

    Stolpec sprejema vrednosti le, če je edinstven

  • C

    Stolpec sprejema vrednosti le, če ni nič

  • D

    Stolpec sprejme vrednosti, ki se ujemajo z danim pravilom

Pojasnilo:

CHECK uveljavi pogoj za vrednosti stolpcev, ki zavračajo vse podatke, ki kršijo definirano pravilo.

Kdaj SQL prepreči INSERT z uporabo CHECK?

  • A

    Ko je vrednost v stolpcu podvojena

  • B

    Ko vrednost krši definirani pogoj

  • C

    Ko tabela nima primarne omejitve

    pojasni neodvisnost podatkov
  • D

    Ko je vrednost NULL in stolpec dovoljuje null

Pojasnilo:

Če se vstavljeni ali posodobljeni podatki prekinejo, pogoj CHECK SQL prekliče operacijo.

Kje je mogoče definirati omejitev CHECK?

  • A

    Samo znotraj sintakse poizvedbe SELECT

  • B

    Šele po deklaraciji primarnega ključa

  • C

    Med ustvarjanjem ali spreminjanjem tabele

  • D

    Samo za številske stolpce z obsegi

Pojasnilo:

CHECK lahko dodate med ustvarjanjem tabele ali pozneje z uporabo stavka ALTER TABLE.

Kaj se zgodi v omejitvi CHECK z več stolpci?

  • A

    Pogoj se lahko nanaša samo na en stolpec

  • B

    Pogoj se lahko sklicuje na več stolpcev

  • C

    Pogoj deluje samo na številskih stolpcih

  • D

    Pogoj ignorira vrednosti med vstavljanjem

Pojasnilo:

CHECK lahko uporablja pravila z uporabo dveh ali več stolpcev, ki uveljavljajo kombinirano preverjanje veljavnosti.

Kateri vložek ne izpolnjuje omejitve CHECK (starost ≥ 18)?

  • A

    Starostna vrednost nižja od petnajst let

  • B

    Vrednost starosti je natanko enaka osemnajstim

  • C

    Starostna vrednost je višja od petindvajset let

  • D

    Vrednost starosti je shranjena kot dovoljena vrednost NULL

Pojasnilo:

Vsaka vrednost pod 18 krši pravilo CHECK in povzroči neuspešno vstavljanje.

SQL | PREVERITE OmejitevKviz uspešno zaključen Vaš rezultat:  2/5Natančnost: 0 %Prijavite se za ogled razlage 1/5 1/5 < Previous Naprej >