博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL语句(九)用户自定义完整性
阅读量:4075 次
发布时间:2019-05-25

本文共 1874 字,大约阅读时间需要 6 分钟。

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 约束INSERTINTO orders2VALUES(1,2,'0',200,'2017-11-19','1','lllllll',2,'fast');SELECT *FROM orders2;UPDATE orders2SET orderpriority='3'WHERE orderkey=1;

3.注意

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

你可能感兴趣的文章
为什么很多程序员都选择跳槽?
查看>>
mongdb介绍
查看>>
Yotta企业云盘更好地为教育行业服务
查看>>
Yotta企业云盘怎么帮助到能源化工行业
查看>>
企业云盘如何助力商业新发展
查看>>
医疗行业运用企业云盘可以带来什么样的提升
查看>>
媒体广告业如何运用云盘提升效率
查看>>
IOS开发的开源库
查看>>
Jenkins - sonarqube 代码审查
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 高可用集群部署(三)
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform皮肤控件IrisSkin4.dll使用
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>