目录搜索
SQL 基础教程SQL 语法SQL SELECT 语句SQL SELECT DISTINCT 语句SQL WHERE 子句SQL AND & OR 运算符SQL ORDER BY 关键字SQL INSERT INTO 语句SQL UPDATE 语句SQL DELETE 语句SQL 函数SQL Date 函数SQL NULL 函数SQL 函数SQL AVG() 函数SQL COUNT() 函数SQL FIRST() 函数SQL LAST() 函数SQL MAX() 函数SQL MIN() FunctionSQL SUM() FunctionSQL GROUP BY 语句SQL HAVING 子句SQL UCASE() 函数SQL LCASE() 函数SQL MID() 函数SQL LEN() 函数SQL ROUND() 函数SQL NOW() 函数SQL FORMAT() 函数SQL 快速参考SQL 主机SQL 高级教程SQL SELECT TOP 子句SQL LIKE 操作符SQL 通配符SQL IN 操作符SQL BETWEEN 操作符SQL 别名(Aliases)SQL 连接(Joins)SQL INNER JOIN 关键字SQL LEFT JOIN 关键字SQL RIGHT JOIN 关键字SQL FULL OUTER JOIN 关键字SQL UNION 操作符SQL SELECT INTO 语句SQL INSERT INTO SELECT 语句SQL CREATE DATABASE 语句SQL CREATE TABLE 语句SQL 约束(Constraints)SQL NOT NULL 约束SQL UNIQUE 约束SQL PRIMARY KEY 约束SQL FOREIGN KEY 约束SQL CHECK 约束SQL DEFAULT 约束SQL CREATE INDEX 语句SQL 撤销索引、撤销表以及撤销数据库SQL ALTER TABLE 语句SQL AUTO INCREMENT 字段SQL 视图(Views)MySQL NOW() 函数MySQL CURDATE() 函数MySQL CURTIME() 函数MySQL DATE() 函数MySQL EXTRACT() 函数MySQL DATE ADD() 函数MySQL DATE SUB() 函数MySQL DATEDIFF() 函数MySQL DATE FORMAT() 函数SQL Server GETDATE() 函数SQL Server DATEPART() 函数SQL Server DATEADD() 函数SQL Server DATEDIFF() 函数SQL Server CONVERT() 函数SQL NULL 值SQL 通用数据类型SQL 用于各种数据库的数据类型
文字

SQL CHECK 约束



SQL CHECK 约束

CHECK 约束用于限制列中的值的范围。

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。


CREATE TABLE 时的 SQL CHECK 约束

下面的 SQL 在 "Persons" 表创建时在 "P_Id" 列上创建 CHECK 约束。CHECK 约束规定 "P_Id" 列必须只包含大于 0 的整数。

MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

如需命名 CHECK 约束,并定义多个列的 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)

ALTER TABLE 时的 SQL CHECK 约束

当表已被创建时,如需在 "P_Id" 列创建 CHECK 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CHECK (P_Id>0)

如需命名 CHECK 约束,并定义多个列的 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

撤销 CHECK 约束

如需撤销 CHECK 约束,请使用下面的 SQL:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person
上一篇:下一篇: