CHECK w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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

  • AND oznacza, że oba warunki muszą być prawdziwe.
  • OR oznacza, że wystarczy spełnienie jednego warunku.
  • BETWEEN 0 AND 50 obejmuje granice, czyli dopuszcza także 0 i 50.
  • 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)