1.用户自定义完整性

       SQL Server支持的用户自定义完整性主要有NOT
NULL(不为空)、UNIQUE(唯一)、NULL(空)、CHECK(检查是否在某一范围之内)。

2.实例
1.定义NULL/NOT NULL约束 CREATE TABLE nation2(/*国家表*/ nationkey INTEGER PRIMARY
KEY, /*国家编号*/ name CHAR(25)NOT NULL, /*国家名称*/ regionkey INTEGER REFERENCES
region(regionkey),/*地区编号*/ comment VARCHAR(152)NULL /*备注*/ ); 2.定义属性的缺省值
定义零件基本表的制造厂的缺省值为,表示其他厂商 CREATE TABLE part2(/*零件基本表*/ partkey INTEGER PRIMARY
KEY, /*零件编号*/ name VARCHAR(100), /*零件名称*/ mfgr CHAR(50)DEFAULT '0', /*制造厂*/
brand VARCHAR(50), /*品牌*/ type VARCHAR(25), /*零件类型*/ size INTEGER, /*尺寸*/
container CHAR(10), /*包装*/ retailprice REAL, /*零售价格*/ comment VARCHAR (23)
/*备注*/ ); 3.定义属性UNIQUE约束 定义地区表的地区名称必须唯一的约束 CREATE TABLE region2(/*地区表*/
regionkey INTEGER PRIMARY KEY, /*地区编号*/ name CHAR(25)UNIQUE, /*地区名称*/ comment
CHAR(152) /*备注*/ ); 4.使用CHECK 使用CHECK定义订单表中某些属性应该满足的约束 CREATE TABLE
orders2(/*订单表*/ orderkey INTEGER PRIMARY KEY,/*订单编号*/ custkey INTEGER,/*顾客编号*/
/*订单状态有中,0表示尚未处理,1表示已经处理*/ orderstatus CHAR(1)CHECK(orderstatus
IN('0','1')),/*订单状态*/ totalprice REAL,/*订单总金额*/ orderdate DATE,/*订单日期*/
/*订单优先级有三等,0表示最高,1次之,2表示最低*/ orderpriority CHAR(15)CHECK (orderpriority
IN('0','1','2')),/*订单优先级别*/ clerk CHAR(15),/*记账员*/ shippriority INTEGER
,/*运输优先级别*/ comment VARCHAR(79),/*备注*/ ); 5.插入orders2中的一条记录,验证是否违反CHECK 约束
INSERT INTO orders2 VALUES(1,2,'0',200,'2017-11-19','1','liuhui',2,'fast');
SELECT * FROM orders2; UPDATE orders2 SET orderpriority='3' WHERE orderkey=1;


3.注意

     
 任何关系数据库系统都应该支持实体完整性和参照完整性,此外,不同关系数据库根据应用环境的不同,往往还需要一些特殊的条件,用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体数据必须满足的语义要求,个人认为正是有了用户完整性,数据才会更加严谨,使用起来也会更加方便。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信