SQL语句(九)用户自定义完整性

您所在的位置:网站首页 sql中的完整性约束机制是什么 SQL语句(九)用户自定义完整性

SQL语句(九)用户自定义完整性

2023-08-10 10:45| 来源: 网络整理| 查看: 265

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','lllllll',2,'fast'); SELECT * FROM orders2; UPDATE orders2 SET orderpriority='3' WHERE orderkey=1;

3.注意

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3