CHECK to ograniczenie integralności danych stosowane w SQL. Pozwala określić warunek, który musi być spełniony przez wartość wpisywaną do kolumny lub przez cały rekord w tabeli.
Najczęściej CHECK definiuje się podczas tworzenia tabeli za pomocą CREATE TABLE.
Przykład
CREATE TABLE praca (
id INT PRIMARY KEY,
stawka FLOAT CHECK (stawka > 0 AND stawka < 50.00)
);
Taki zapis oznacza, że kolumna stawka może przyjmować tylko wartości:
- większe od
0, - mniejsze od
50.00, - spełniające oba warunki jednocześnie.
Dlatego używa się operatora logicznego AND, a nie OR.
Najważniejsze zasady
ANDoznacza, że oba warunki muszą być prawdziwe.ORoznacza, że wystarczy spełnienie jednego warunku.BETWEEN 0 AND 50obejmuje granice, czyli dopuszcza także0i50.IN (0, 50)oznacza wybór tylko spośród podanych wartości, a nie przedział.
Typowy błąd egzaminacyjny
CHECK (stawka > 0 OR stawka < 50.00)
Ten warunek jest błędny, bo prawie każda liczba go spełni. Na przykład 100 spełnia stawka > 0, a -5 spełnia stawka < 50.00.
Poprawny zapis dla dodatnich wartości mniejszych niż 50 to:
CHECK (stawka > 0 AND stawka < 50.00)