GETTING STARTED
DATA DEFINITION
DATA QUERIES
CONDITION & OPERATORS
EXPLORED
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Ràng buộc CHECK trong SQL Server

Ở bài trước chúng ta đã tìm hiểu ràng buộc UNIQUE rồi, vậy thì trong bài này mình sẽ giới thiệu ràng một ràng buộc khác cũng rất quan trọng trước khi đi qua phần khác đó là CHECK.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. CHECK trong SQL Server

CHECK là ràng buộc miền giá trị, nghĩa là nó chỉ giá trị của bạn nhập vào chỉ nằm trong một phạm vi nhất định. Ví dụ column DIEMTHI thì phải nằm trong khoảng [0, 10], giới tính thì phải là {"Nam", 'Nữ'}.

Hãy xem ví dụ mình tạo ràng buộc giá của sản phẩm phải lớn hơn 0 như sau.

CREATE SCHEMA test;
GO
 
CREATE TABLE test.products(
    product_id INT IDENTITY PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    unit_price DEC(10,2) CHECK(unit_price > 0)
);

Nếu bạn muốn đặt tên cho CHECK để sau này dễ quản lý thì hãy xem ví dụ sau.

Bài viết này được đăng tại [free tuts .net]

CREATE TABLE test.products(
    product_id INT IDENTITY PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    unit_price DEC(10,2) CONSTRAINT positive_price CHECK(unit_price > 0)
);

Với cách này thì bạn dễ dàng thay đổi CHECK bằng lệnh ALTER TABLE.

Nếu bạn cố tình nhập sai dữ liệu như ví dụ dưới đây thì sẽ bị báo lỗi.

INSERT INTO test.products(product_name, unit_price)
VALUES ('Awesome Free Bike', 0);

Lỗi xuất hiện như sau:

The INSERT statement conflicted with the CHECK constraint "positive_price". 
The conflict occurred in database "BikeStores",
 table "test.products", column 'unit_price'.

Lưu ý:  Trong ví dụ này price vẫn chấp nhận giá trị NULL vì trong SQL Server NULL và 0 là hai giá trị khác nhau.

2. Tạo nhiều điều kiện ở CHECK

Nếu bạn muốn tạo nhiều điều kiện ở CHECK thì hãy sử dụng toán tử AND để nối các điều kiện với nhau.

CREATE TABLE test.products(
    product_id INT IDENTITY PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    unit_price DEC(10,2),
    discounted_price DEC(10,2),
    CHECK(unit_price > 0),
    CHECK(discounted_price > 0 AND discounted_price > unit_price)

3. Thêm CHECK ở lệnh ALTER TABLE

Nếu bạn tạo table rồi nhưng quên tạo CHECK thì có thể sử dụng lệnh ALTER TABLE.

Không đăt tên
ALTER TABLE test.products
ADD discounted_price DEC(10,2)
CHECK(discounted_price > 0);

Có đặt tên
ALTER TABLE test.products
ADD CONSTRAINT valid_price 
CHECK(unit_price > discounted_price);

4. Xóa ràng buộc CHECK

Nếu bạn muốn xóa CHECK thì hãy sử dụng lệnh ALTER TABLE kết hợp DROP CONSTRAINT nhé.

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

Nếu bạn không muốn xóa mà tạm thời vô hiệu hóa nó thì hãy sử dụng lệnh sau:

ALTER TABLE test.products
NO CHECK CONSTRAINT valid_price

Cùng chuyên mục:

Hàm CHAR trong SQL Server

Hàm CHAR trong SQL Server

Cách sử dụng hàm CHAR trong SQL Server

Hàm CHARINDEX trong SQL Server

Hàm CHARINDEX trong SQL Server

Cách sử dụng hàm CHARINDEX trong SQL Server

Hàm CONCAT trong SQL Server

Hàm CONCAT trong SQL Server

Cách sử dụng hàm CONCAT trong SQL Server

Hàm + trong SQL Server

Hàm + trong SQL Server

Cách sử dụng hàm + trong SQL Server

Hàm DATALENGTH trong SQL Server

Hàm DATALENGTH trong SQL Server

Cách sử dụng hàm DATALENGTH trong SQL Server

Hàm LEFT trong SQL Server

Hàm LEFT trong SQL Server

Cách sử dụng hàm LEFT trong SQL Server

Hàm LEN trong SQL Server

Hàm LEN trong SQL Server

Cách sử dụng hàm LEN trong SQL Server

Hàm LOWER trong SQL Server

Hàm LOWER trong SQL Server

Cách sử dụng hàm LOWER trong SQL Server

Hàm LTRIM trong SQL Server

Hàm LTRIM trong SQL Server

Cách sử dụng hàm LTRIM trong SQL Server

Hàm NCHAR trong SQL Server

Hàm NCHAR trong SQL Server

Cách sử dụng hàm NCHAR trong SQL Server

Hàm PATINDEX trong SQL Server

Hàm PATINDEX trong SQL Server

Cách sử dụng hàm PATINDEX trong SQL Server

Hàm REPLACE trong SQL Server

Hàm REPLACE trong SQL Server

Cách sử dụng hàm REPLACE trong SQL Server

Hàm RIGHT trong SQL Server

Hàm RIGHT trong SQL Server

Cách sử dụng hàm RIGHT trong SQL Server

Hàm RTRIM trong SQL Server

Hàm RTRIM trong SQL Server

Cách sử dụng hàm RTRIM trong SQL Server

Hàm SPACE trong SQL Server

Hàm SPACE trong SQL Server

Cách sử dụng hàm SPACE trong SQL Server

Hàm STR trong SQL Server

Hàm STR trong SQL Server

Cách sử dụng hàm STR trong SQL Server

Hàm UPPER trong SQL Server

Hàm UPPER trong SQL Server

Cách sử dụng hàm UPPER trong SQL Server

Hàm SUBSTRING trong SQL Server

Hàm SUBSTRING trong SQL Server

Cách sử dụng hàm SUBSTRING trong SQL Server

Hàm STUFF trong SQL Server

Hàm STUFF trong SQL Server

Cách sử dụng hàm STUFF trong SQL Server

Hàm ABS trong SQL Server

Hàm ABS trong SQL Server

Cách sử dụng hàm ABS trong SQL Server

Top