SQL研习录(24)——CHECK约束

SQL研习录(24)——CHECK约束


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、CHECK约束

  在数据库中,CHECK 约束是指约束表中某一个或者某些列中可接受的数据值或者数据格式,如果对单个列定义 CHECK 约束,那么该列只允许特定的值;如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制
  当除去某个表时,对这个表的CHECK 约束也将同时被去除

1、基本语法

  创建表(CREATE TABLE)时的CHECK约束
  (1)在MySQL数据库中创建表时定义某一列的CHECK约束应该使用以下语法:

CREATE TABLE table_name(
	column_name1 int NOT NULL,
	column_name2 data_type (size) NOT NULL,
	column_name3 data_type (size),
	column_name4 data_type (size),
	...
	CHECK (column_name1 > 0)
)

  (2)在SQL Server / Oracle / MS Access数据库中创建表时定义某一列的CHECK约束应该使用以下语法:

CREATE TABLE table_name(
	column_name1 int NOT NULL CHECK (column_name1>0),
	column_name2 data_type (size) NOT NULL,
	column_name3 data_type (size),
	column_name4 data_type (size),
	...
)

  (3)如需命名 CHECK 约束,并定义多个列的 CHECK 约束则可使用下面的语法(MySQL / SQL Server / Oracle / MS Access):

CREATE TABLE table_name(
	column_name1 int NOT NULL,
	column_name2 varchar (255) NOT NULL,
	column_name3 data_type (size),
	column_name4 data_type (size),
	...
	CONSTRAINT chk_name CHECK (column_namw1 >0 AND column_name2='xxx')  
)

  修改表(ALTER TABLE)时的CHECK约束
  (1)当表已被创建时,如需在某一列创建 CHECK 约束则可使用下面的语法(MySQL / SQL Server / Oracle / MS Access):

ALTER TABLE table_name  
ADD CHECK (column_name1>0)

  (2)如需命名 CHECK 约束,并定义多个列的 CHECK 约束则可使用下面的语法(MySQL / SQL Server / Oracle / MS Access):

ALTER TABLE table_name
ADD CONSTRAINT chk_name CHECK (column_name1 >0 AND column_name2='xxx')

  撤销CHECK约束
  (1)在MySQL数据库中,如需撤销 CHECK 约束则可使用下面的语法:

ALTER TABLE table_name
DROP CHECK chk_name

  (2)在SQL Server / Oracle / MS Access数据库中,如需撤销 CHECK 约束则可使用下面的语法:

ALTER TABLE table_name 
DROP CONSTRAINT chk_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值