SQL数据库: DEFAULT默认值与CHECK约束基础

BY 2012数据库《SQL Server 数据库技术》课程摘要

DEFAULT (默认值) 定义是指表中添加新行时,给表中某一列指定的默认值
格式1 :创建时定义默认值

CREATE TABLE <表名> (
<列名1> 数据类型(长度) DEFAULT 默认值
<列名1> 数据类型(长度) DEFAULT 默认值
...	)

格式2:给列增加默认值

ALTER TABLE <表名1>
ADD CONSTRAINT <约束名> DEFAULT (默认值) 
FOR <字段名>

例:goods表中的列g_time默认获取电脑当前日期:

ALTER TABLE goods 
ADD CONSTRAINT def_g_time DEFAULT (getdate()) FOR g_time

CHECK约束:约束每个列得在表达式范围之内,约束当前列所有的值

// 注意:约束定义了后当前列所有的值都得按照它的约束来,假设在修改ALTER来添加CHECK约束时,如果之前的超过了定义的约束范围时则会报错。

例如定义了g_price约束范围为0-1000,而之前的都大于1000,超过约束的范围,那么则会如下报错

格式1:创建表达式设置约束

CRATE TABLE <表名>.....
	<列名> 数据类型 CHECK(表达式)
.... )

例:
创建表goods 并且定义g_price的列的值大于0

CREATE TBALE goods 
(
g_id CHAR(6) NOT NULL,
g_Name VARCAHR(20) NOT NULL,
g_price float CHECK(g_price>0)     //设置了输入的价格得大于0
)

格式2:给列定义CHECK 约束

ALTER TABLE <表名>
ADD CONSTRAINT 约束名 CHECK(表达式)   

例:给goods设置g_discount 列取值范围为0.5-1.0

ALTER TABLE goods
ADD CONSTRAINT ck_g_discount CHECK(g_discount>0.5 AND g_discount<1.0)

修改CHECK约束,CHECK修改原则是首先删除现有的CHECK约束,然后新添加CHECK约束
如:修改goods表中price的取值范围
首先删除原理的CHECK约束:

ALTER TABLE goods DROP CONSTRAINT ck_price 

添加新约束:

ALTER TABLE goods
ADD CONSTRAINT ck_price CHECK(g_price>10 AND g_price<100)  //约束大于10小于100

猜你喜欢

转载自blog.csdn.net/zguohuai/article/details/105414972
今日推荐