TheCHECKograničenje u SQL-u nameće pravila o vrijednostima stupaca ograničavanjem podataka koji se mogu umetnuti ili ažurirati. Osigurava da vrijednosti zadovoljavaju određene uvjete. Ako vrijednost krši uvjet, operacija se odbija.CHECKmože se dodati tijekom izrade ili izmjene tablice.
Sintaksa ograničenja CHECK
The PROVJERITE ograničenje može se definirati prilikom kreiranja tablice ili dodati kasnije pomoću naredbe ALTER.
1. Korištenje CHECK-a s CREATE TABLE :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. Korištenje CHECK-a s ALTER TABLE
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
Ključne točke o ograničenju CHECK:
- Integritet domene: Osigurava da vrijednosti u stupcu ispunjavaju određene uvjete i tako pomaže u održavanju valjanih podataka u bazi podataka.
- Koristi se s CREATE ili ALTER: Ograničenje CHECK može se definirati prilikom izrade tablice ili dodati postojećoj tablici.
- Može se kombinirati s drugim ograničenjima: Možete koristiti CHECK zajedno s drugim ograničenjima poput PRIMARNI KLJUČ FOREIGN KEY i NOT NULL za definiranje sveobuhvatnijih pravila za podatke tablice.
- Ograničenja na razini retka: Za razliku od ograničenja na razini stupca koja utječu na pojedinačne stupce, ograničenje CHECK može se primijeniti na više stupaca odjednom ako je potrebno.
Primjeri korištenja ograničenja CHECK
Pogledajmo neke praktične primjere kako bismo bolje razumjeli kako ograničenje CHECK funkcionira SQL .
Primjer 1: Primjena PROVJERE na jedan stupac
U ovom primjeru stvaramo tablicu Kupci sa stupcem Dob koji mora sadržavati vrijednosti između 18 i 120. Ograničenje CHECK osigurava da se u tablicu ne umetne nevažeća dob.
Upit:
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
Stupac Dob ima ograničenje CHECK koje osigurava da vrijednost mora biti između 18 i 120. Ako pokušate umetnuti dob izvan ovog raspona, baza podataka će izbaciti pogrešku.
Primjer 2: CHECK ograničenje s više stupaca
Također možemo koristiti ograničenje CHECK u više stupaca. Na primjer, recimo da imamo Tablica zaposlenika i želimo osigurati da je plaća pozitivna, a dob veća ili jednaka 18.
Upit:
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
Ograničenje CHECK osigurava da su oba uvjeta zadovoljena. zaposlenik mora imati najmanje 18 godina i plaća mora biti veća od 0. Ova vrsta ograničenja je korisna kada je više stupaca uključeno u pravilo.
Primjer 3: Dodavanje ograničenja CHECK s ALTER TABLE
Ograničenje CHECK možemo dodati postojećoj tablici pomoću izjave ALTER TABLE.
Upit:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
Ovo dodaje ograničenje CHECK pod nazivom chk_salary u tablicu zaposlenika osiguravajući da stupac plaća ima minimalnu vrijednost od 30000. Ako pokušate umetnuti ili ažurirati zapis s plaćom nižom od 30000, operacija neće uspjeti.
Predloženi kviz Uredi kviz 5 pitanjaŠto osigurava ograničenje CHECK u SQL-u?
- A
Stupac prihvaća vrijednosti bez ikakvih pravila
- B
Stupac prihvaća vrijednosti samo kada je jedinstven
css tekst za omatanje
- C
Stupac prihvaća vrijednosti samo ako nije nula
- D
Stupac prihvaća vrijednosti koje odgovaraju zadanom pravilu
CHECK nameće uvjet na vrijednosti stupca odbijajući sve podatke koji krše definirano pravilo.
Kada SQL sprječava INSERT koristeći CHECK?
- A
Kada je vrijednost duplikat u stupcu
- B
Kada vrijednost krši definirani uvjet
- C
Kada tablica nema primarno ograničenje
- D
Kada je vrijednost NULL, a stupac dopušta null
Ako se umetnuti ili ažurirani podaci pokvare, CHECK uvjet SQL poništava operaciju.
Gdje se može definirati CHECK ograničenje?
- A
Samo unutar SELECT sintakse upita
- B
Tek nakon deklaracije primarnog ključa
- C
Tijekom izrade ili izmjene tablice
- D
Samo za numeričke stupce s rasponima
CHECK se može dodati tijekom kreiranja tablice ili kasnije korištenjem naredbe ALTER TABLE.
Što se događa u ograničenju CHECK s više stupaca?
- A
Uvjet se može odnositi na samo jedan stupac
- B
Uvjet može upućivati na više stupaca
- C
Uvjet funkcionira samo na numeričkim stupcima
- D
Uvjet zanemaruje vrijednosti tijekom umetanja
CHECK može primijeniti pravila koja koriste dva ili više stupaca za provođenje kombinirane provjere valjanosti.
Koji umetak ne zadovoljava ograničenje CHECK (dob ≥ 18)?
- A
Dobna vrijednost niža od petnaest godina
- B
Vrijednost dobi točno jednaka osamnaest
- C
Vrijednost dobi veća od dvadeset pet
- D
Dopuštena vrijednost dobi pohranjena kao vrijednost NULL
Svaka vrijednost ispod 18 krši pravilo CHECK i rezultira neuspješnim umetanjem.
Kviz uspješno završen Vaš rezultat: 2/5Točnost: 0%Prijavite se za pregled objašnjenja 1/5 1/5 < Previous Dalje >