欢迎来到天天文库
浏览记录
ID:37404401
大小:883.31 KB
页数:55页
时间:2019-05-12
《数据定义完整性约束的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章数据定义与完整性约束的实现SQL的表定义和完整性定义功能SQL数据操作与完整性约束的作用先建立数据库回忆第2章建立数据库的命令CREATEDATABASE仓储订货ON(NAME=order_dat,FILENAME='c:mssqldataorderdat.mdf',SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOGON(NAME=order_log,FILENAME='d:mssqllogorderlog.ldf',SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB)5.1SQL的
2、表定义和完整性定义功能定义架构定义表及其完整性约束修改表结构的命令3什么是架构(Schema)?定义架构CREATESCHEMA仓储CREATESCHEMA订货CREATESCHEMA基础5架构仓储仓库表库存表订货供应商表订购单表订购表基础职工表器件表保管表供应表定义表及其完整性约束CREATETABLE命令的基本格式列的定义计算列的定义表级约束6CREATETABLE命令的基本格式一个表由若干列构成,在SQLServer2005/2008中可以定义实列(简称列,column_definition)定义虚列(即计算列,computed_col
3、umn_definition)理解:CREATETABLE[schema_name].table_name({
4、}[][,...n])列的定义()CREATETABLE[schema_name].table_name({5、ion>6、}[][,...n])column_name[NULL7、NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY8、UNIQUE9、[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION10、CASCADE11、SETNULL12、SETDEFAULT}][ONUPDATE{NO13、ACTION14、CASCADE15、SETNULL16、SETDEFAULT}]17、CHECK(logical_expression)][DEFAULTconstant_expression]列名数据类型是否允许空值主关键字约束唯一性约束参照完整性约束域完整性约束定义默认值PRIMARYKEY和UNIQUE约束的区别?如何实现候选关键字约束?9测试部门号部门名B1XB2YB3Z职工号职工名部门号Z1AB1Z2CB2ONDELETE{NOACTION18、CASCADE19、SETNULL20、SETDEFAULT}ONUPDATE{NOACTION21、CASCADE22、23、SETNULL24、SETDEFAULT}上面这些短语说明,在被参照表的被参照记录上发生删除(DELETE)和更新(UPDATE)操作时的处理方式。BA进行级联处理禁止删除或更新被参照记录将参照记录的对应字段设置为空值将参照记录的对应字段设置为默认值计算列的定义column_nameAScomputed_column_expression[PERSISTED[NOTNULL]][[CONSTRAINTconstraint_name]{PRIMARYKEY25、UNIQUE}26、[FOREIGNKEY]REFERENCESreferenced_table27、_name[(ref_column)][ONDELETE{NOACTION28、CASCADE}][ONUPDATE{NOACTION}]29、CHECK(logical_expression)]CREATETABLE[schema_name].table_name({30、}[][,...n])为什么ONDELETE和ONUPDATE少了一些内容?由于是虚列,所以不能作为插入操作和更新操作的目标。表级约束如果某个完整性约束与31、多个列相关,则这样的完整性约束不能定义在单个列上,这时候就需要表级完整性约束。在定义表时,需要先定义被参照表,然后定义参照表。仓储数据库例5-1:定义仓库表CREA
5、ion>
6、}[][,...n])column_name[NULL
7、NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY
8、UNIQUE
9、[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION
10、CASCADE
11、SETNULL
12、SETDEFAULT}][ONUPDATE{NO
13、ACTION
14、CASCADE
15、SETNULL
16、SETDEFAULT}]
17、CHECK(logical_expression)][DEFAULTconstant_expression]列名数据类型是否允许空值主关键字约束唯一性约束参照完整性约束域完整性约束定义默认值PRIMARYKEY和UNIQUE约束的区别?如何实现候选关键字约束?9测试部门号部门名B1XB2YB3Z职工号职工名部门号Z1AB1Z2CB2ONDELETE{NOACTION
18、CASCADE
19、SETNULL
20、SETDEFAULT}ONUPDATE{NOACTION
21、CASCADE
22、
23、SETNULL
24、SETDEFAULT}上面这些短语说明,在被参照表的被参照记录上发生删除(DELETE)和更新(UPDATE)操作时的处理方式。BA进行级联处理禁止删除或更新被参照记录将参照记录的对应字段设置为空值将参照记录的对应字段设置为默认值计算列的定义column_nameAScomputed_column_expression[PERSISTED[NOTNULL]][[CONSTRAINTconstraint_name]{PRIMARYKEY
25、UNIQUE}
26、[FOREIGNKEY]REFERENCESreferenced_table
27、_name[(ref_column)][ONDELETE{NOACTION
28、CASCADE}][ONUPDATE{NOACTION}]
29、CHECK(logical_expression)]CREATETABLE[schema_name].table_name({
30、}[][,...n])为什么ONDELETE和ONUPDATE少了一些内容?由于是虚列,所以不能作为插入操作和更新操作的目标。表级约束如果某个完整性约束与
31、多个列相关,则这样的完整性约束不能定义在单个列上,这时候就需要表级完整性约束。在定义表时,需要先定义被参照表,然后定义参照表。仓储数据库例5-1:定义仓库表CREA
此文档下载收益归作者所有