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šanjKaj 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
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
Č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
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
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
Vsaka vrednost pod 18 krši pravilo CHECK in povzroči neuspešno vstavljanje.
Kviz uspešno zaključen Vaš rezultat: 2/5Natančnost: 0 %Prijavite se za ogled razlage 1/5 1/5 < Previous Naprej >