Έλεγχος περιορισμού σε SQL - Εξηγείται με παραδείγματα σύνταξης MySQL και SQL Server

Ο περιορισμός CHECK χρησιμοποιείται για τον περιορισμό του εύρους τιμών που μπορεί να τοποθετηθεί σε μια στήλη.

Εάν ορίσετε έναν περιορισμό CHECK σε μία μόνο στήλη, επιτρέπονται μόνο ορισμένες τιμές για αυτήν τη στήλη.

Εάν ορίσετε έναν περιορισμό CHECK σε έναν πίνακα, μπορεί να περιορίσει τις τιμές σε ορισμένες στήλες με βάση τις τιμές σε άλλες στήλες της σειράς.

SQL CHECK στο ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ

Η ακόλουθη SQL δημιουργεί έναν περιορισμό CHECK στη στήλη "Age" όταν δημιουργείται ο πίνακας "Persons". Ο περιορισμός CHECK διασφαλίζει ότι δεν μπορείτε να έχετε κανένα άτομο κάτω των 18 ετών:

MySQL:

CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CHECK (Age>=18) ); 

Πρόσβαση SQL Server / Oracle / MS:

CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int CHECK (Age>=18) ); 

Για να επιτρέψετε την ονομασία ενός περιορισμού CHECK και για τον καθορισμό ενός περιορισμού CHECK σε πολλές στήλες, χρησιμοποιήστε την ακόλουθη σύνταξη SQL:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, City varchar(255), CONSTRAINT CHK_Person CHECK (Age>=18 AND City="Sandnes") ); 

SQL CHECK στο ALTER TABLE

Για να δημιουργήσετε έναν περιορισμό CHECK στη στήλη "Age" όταν ο πίνακας έχει ήδη δημιουργηθεί, χρησιμοποιήστε την ακόλουθη SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CHECK (Age>=18); 

Για να επιτρέψετε την ονομασία ενός περιορισμού CHECK και για τον καθορισμό ενός περιορισμού CHECK σε πολλές στήλες, χρησιμοποιήστε την ακόλουθη σύνταξη SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City="Sandnes"); 

ΣΤΑΣΤΕ έναν περιορισμό ελέγχου

Για να αφήσετε έναν περιορισμό CHECK, χρησιμοποιήστε την ακόλουθη SQL:

Πρόσβαση SQL Server / Oracle / MS:

ALTER TABLE Persons DROP CONSTRAINT CHK_PersonAge; 

MySQL:

ALTER TABLE Persons DROP CHECK CHK_PersonAge;