TheCHECKograniczenie w SQL wymusza reguły dotyczące wartości kolumn, ograniczając dane, które można wstawić lub zaktualizować. Zapewnia, że wartości spełniają określone warunki. Jeżeli wartość narusza warunek, operacja zostaje odrzucona.CHECKmożna dodać podczas tworzenia lub modyfikacji tabeli.
Składnia ograniczenia CHECK
The SPRAWDŹ ograniczenie można zdefiniować podczas tworzenia tabeli lub dodać później za pomocą instrukcji ALTER.
1. Używanie CHECK z UTWÓRZ TABELĘ :
CREATE TABLE table_name (
column1 datatype
column2 datatype CHECK (condition)
...
);
2. Używanie CHECK z ALTER TABLE
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (condition);
Kluczowe punkty dotyczące ograniczenia CHECK:
- Integralność domeny: Zapewnia, że wartości w kolumnie spełniają określone warunki, pomagając w ten sposób utrzymać prawidłowe dane w bazie danych.
- Używane z CREATE lub ALTER: Ograniczenie CHECK można zdefiniować podczas tworzenia tabeli lub dodać do istniejącej tabeli.
- Można łączyć z innymi ograniczeniami: Możesz użyć CHECK wraz z innymi ograniczeniami, takimi jak KLUCZ PODSTAWOWY FOREIGN KEY i NOT NULL, aby zdefiniować bardziej kompleksowe reguły dla danych tabeli.
- Ograniczenia na poziomie wiersza: W przeciwieństwie do ograniczeń na poziomie kolumn, które wpływają na poszczególne kolumny, w razie potrzeby ograniczenie CHECK można zastosować do wielu kolumn jednocześnie.
Przykłady użycia ograniczenia CHECK
Przyjrzyjmy się kilku praktycznym przykładom, aby lepiej zrozumieć, jak działa ograniczenie CHECK SQL-a .
Przykład 1: Stosowanie CHECK w pojedynczej kolumnie
W tym przykładzie tworzymy tabelę Klienci z kolumną Wiek, która musi zawierać wartości z zakresu od 18 do 120. Ograniczenie CHECK gwarantuje, że do tabeli nie zostanie wstawiony żaden nieprawidłowy wiek.
Zapytanie:
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
Kolumna Wiek ma ograniczenie CHECK, które zapewnia, że wartość musi mieścić się w przedziale od 18 do 120. Jeśli spróbujesz wstawić wiek spoza tego zakresu, baza danych zgłosi błąd.
Przykład 2: Ograniczenie CHECK z wieloma kolumnami
Możemy również użyć ograniczenia CHECK w wielu kolumnach. Załóżmy na przykład, że mamy Tabela pracowników i chcemy mieć pewność, że wynagrodzenie jest dodatnie, a wiek jest większy lub równy 18.
Zapytanie:
algorytm dfs
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
Ograniczenie CHECK zapewnia, że oba warunki są spełnione. pracownik musi mieć ukończone 18 lat, a wynagrodzenie musi być większe od 0. Tego rodzaju ograniczenie jest przydatne, gdy reguła obejmuje wiele kolumn.
Przykład 3: Dodawanie ograniczenia CHECK za pomocą ALTER TABLE
Możemy dodać ograniczenie CHECK do istniejącej tabeli za pomocą instrukcji ALTER TABLE.
Zapytanie:
ALTER TABLE Employee
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);
Spowoduje to dodanie ograniczenia CHECK o nazwie chk_salary do tabeli Pracownik, zapewniając, że kolumna Salary ma minimalną wartość 30000. Jeśli spróbujesz wstawić lub zaktualizować rekord z wynagrodzeniem niższym niż 30000, operacja zakończy się niepowodzeniem.
Sugerowany quiz Edytuj quiz 5 pytańCo zapewnia ograniczenie CHECK w SQL?
- A
Kolumna akceptuje wartości bez żadnych reguł
- B
Kolumna akceptuje wartości tylko wtedy, gdy są unikalne
- C
Kolumna akceptuje wartości tylko wtedy, gdy nie jest null
- D
Kolumna przyjmuje wartości pasujące do podanej reguły
CHECK wymusza warunek na wartościach kolumn, odrzucając dane naruszające zdefiniowaną regułę.
Kiedy SQL uniemożliwia INSERT za pomocą CHECK?
- A
Gdy wartość w kolumnie jest zduplikowana
- B
Gdy wartość narusza zdefiniowany warunek
- C
Gdy tabela nie ma ograniczenia podstawowego
- D
Gdy wartość ma wartość NULL i kolumna dopuszcza wartość null
Jeśli wstawione lub zaktualizowane dane zostaną przerwane, warunek CHECK SQL anuluje operację.
Gdzie można zdefiniować ograniczenie CHECK?
- A
Tylko w składni zapytania SELECT
- B
Dopiero po zadeklarowaniu klucza podstawowego
grupowanie
- C
Podczas tworzenia lub modyfikacji tabeli
- D
Tylko dla kolumn numerycznych z zakresami
CHECK można dodać podczas tworzenia tabeli lub później za pomocą instrukcji ALTER TABLE.
Co się dzieje w przypadku wielokolumnowego ograniczenia CHECK?
- A
Warunek może odwoływać się tylko do jednej kolumny
ciąg podciągowy Java
- B
Warunek może odwoływać się do wielu kolumn
- C
Warunek działa tylko w przypadku kolumn numerycznych
- D
Warunek ignoruje wartości podczas wstawiania
CHECK może zastosować reguły wykorzystujące dwie lub więcej kolumn wymuszające łączną walidację.
Która wstawka nie spełnia ograniczenia CHECK (wiek ≥ 18 lat)?
- A
Wartość wieku niższa niż piętnaście lat
- B
Wartość wieku dokładnie równa osiemnastu
- C
Wartość wieku większa niż dwadzieścia pięć lat
- D
Dozwolona wartość wieku przechowywana jako wartość NULL
Każda wartość poniżej 18 narusza regułę CHECK i powoduje niepowodzenie wstawiania.
Quiz ukończony pomyślnie Twój wynik: 2/5Dokładność : 0%Zaloguj się, aby zobaczyć wyjaśnienie 1/5 1/5 < Previous Dalej >