SQL CHECK 约束
CHECK 约束用于限制列中的值的范围
如果对单个列定义 CHECK 约束,那么该列只允许特定的值
如果对一个表定义 CHECK 约束,那么次约束会在特定的列中对值进行限制
下面的SQL在表创建时为列 创建CHECK约束
下面的SQL 在“Persons”表创建时为“Id_P”列创建 CHECK 约束。CHECK 约束规定“Id_P”列必须只包含大于0的整数
MySQL
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (id_P>0) )
SQL Server / Oracle / MS Access
CREATE TABLE Persons ( Id_P int NOT NULL CHECK (Id_P>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 ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK (Id_P>0 AND City=‘Sandnes‘)
如果在表已经存在的情况下为列 创建 CHECK约束
如果在表已经存在的情况下为“Id_P”列创建CHECK约束,请使用下面的SQL
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons ADD CHECK (Id_P>0)
如果需要命名CHECK 约束,以及为多个列定义 CHECK约束,请用下面的SQL
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE Persons ADD CONSTRAINT chk_Person CHEKC(Id_P>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
SQL DEFAULT 约束
DEFAULT 约束用于向列中插入默认值
如果没有规定其他的值,那么会将默认值添加到所有的新纪录
在表创建时为列创建DEFAULT约束
下面的SQL 在“Persons”表创建时为“City”列创建DEFAULT约束:
MySQL / SQL Server / Oracle / MS Access
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT ‘Sandnes‘ )
通过使用类似 GETDATE() 这样的函数, DEFAULT约束也可以用于插入系统值
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, OrderDate date DEFAULT GETDATE() )
在表已经存在的情况下为列创建 DEFAULT约束
如果在表已经存在的情况下为“City”列创建 DEFAULT约束,请使用下面的SQL:
MYSQL
ALTER TABLE Persons ALTER City SET DEFAULT ‘Sandnes‘
SQL Server / Oracle / MS Access
ALTER TABLE Persons ALTER COLUMN City SET DEFAULT ‘Sandnes‘
撤销DEFAULT 约束
如需撤销 DEFAULT 约束,请使用下面的SQL
MySQL
ALTER TABLE Persons ALTER City DROP DEFAULT
SQL Server / Oracle / MS Access
ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT