sql数据库第六章SQLServer数据表管理2课件.ppt
《sql数据库第六章SQLServer数据表管理2课件.ppt》由会员分享,可在线阅读,更多相关《sql数据库第六章SQLServer数据表管理2课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、SQL Server 数据库程序设计,授课教师:姜 姗,SQL Server 数据库程序设计授课教师:姜 姗,数据库中的数据现实世界的反映,数据库的设计必须能够满足现实情况的实现,即满足现实商业规则的要求,这也就是数据完整性的要求。在数据库管理系统中,约束是保证数据库中的数据完整性的重要方法。,6.3完整性与约束,数据库中的数据现实世界的反映,数据库的设计必须能够满足现实情,2FOREIGN KEY约束外键(FOREIGN KEY)用于建立和加强两个表(主表与从表)的一列或多列数据之间的链接,当数据添加、修改或删除时,通过外键约束保证两个表之间数据的一致性。定义表之间的参照完整性是先定义主表的
2、主键,再对从表定义外键约束。FOREIGN KEY约束要求列中的每个值在所引用的表中对应的被引用列中都存在,同时FOREIGN KEY约束只能引用在所引用的表中是PRIMARY KEY或UNIQUE约束的列,或所引用的表中在UNIQUE INDEX内的被引用列。,2FOREIGN KEY约束外键(FOREIGN KEY,使用表设计器创建FOREIGN KEY约束,打开需要建立外键的表设计器,在需要设置外键的列上单击鼠标右键选择【关系】命令。,使用表设计器创建FOREIGN KEY约束打开需要建立外键的,打开【外键关系】对话框,单击表和列规范后面的按钮,设置外键关系。,打开【外键关系】对话框,单
3、击表和列规范后面的按钮,设置外键,使用数据库关系图建立外键,使用数据库关系图建立外键,使用T-SQL语句创建FOREIGN KEY约束,创建外键约束的语法形式如下: CONSTRAINT constraint_name FOREIGN KEY REFERENCES referenced_table_name (column_name) (, n ) 参数说明如下:referenced_table_name是FOREIGN KEY约束引用的表的名称。 column_name是FOREIGN KEY约束所引用的表中的某列。,使用T-SQL语句创建FOREIGN KEY约束创建外键约束,【例6】:建
4、立一个新的stu_info表,指定“学号”为主键,“班级编号”为外键,与class表中的“班级编号”列关联。,Create table stu_info(学号 char(10) NOT NULL, 姓名 char(8) NOT NULL, 出生年月 datetime NULL, 性别 char(2) NOT NULL, 地址 char(20), 班级编号 char(4)Constraint PK_学号 primary key(学号),Constraint FK_班级编号 foreign key(班级编号)References class (班级编号)),也可写成Create table stu
5、_info(学号 char(10) NOT NULL PRIMARY KEY, 姓名 char(8) NOT NULL, 出生年月 datetime NULL, 性别 char(2) NOT NULL, 地址 char(20), 班级编号 char(4) references class)注:此法只能用于列名相同时使用,【例6】:建立一个新的stu_info表,指定“学号”为主键,【例7】:在stu_info表中sclass列上添加一个外键,名称为FK_bno,与class表中的bno列关联。,Alter table stu_infoAdd constraint FK_bnoForeign k
6、ey(sclass) references class(bno),【例7】:在stu_info表中sclass列上添加一个外键,3UNIQUE约束UNIQUE约束用于确保表中某个列或某些列(非主键列)没有相同的列值。与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,但UNIQUE约束用于非主键的一列或多列组合,而且一个表中可以定义多个UNIQUE约束,另外UNIQUE约束可以用于定义允许空值的列。例如在课程表(course_info)中已经定义“课程号”作为主键,而现在对于“课程名”也不允许出现重复,就可以通过设置“课程名”为UNIQUE约束来确保其唯一性。,3UNIQUE约束U
7、NIQUE约束用于确保表中某个列或某,使用表设计器创建UNIQUE约束,在表设计器需要加入UNIQUE约束的列上单击鼠标右键选择【索引/键】选项。,使用表设计器创建UNIQUE约束在表设计器需要加入UNIQU,使用T-SQL语句创建UNIQUE约束,创建唯一性约束的语法形式如下: CONSTRAINT constraint_name UNIQUE CLUSTERED | NONCLUSTERED 其中,CLUSTERED | NONCLUSTERED表示所创建的UNIQUE约束是聚集索引还是非聚集索引,默认为NONCLUSTERED非聚集索引。,使用T-SQL语句创建UNIQUE约束创建唯一性
8、约束的语法形,【例8】:将course表中cname列设置成为唯一列。,Alter table courseAdd constraint ix_courseunique (cname),【例8】:将course表中cname列设置成为唯一列。Al,4CHECK约束CHECK约束用于限制输入到一列或多列的值的范围,从逻辑表达式判断数据的有效性,也就是一个列的输入内容必须满足CHECK约束的条件,否则,数据无法正常输入,从而强制数据的域完整性。例如在学生成绩表(stu_grade)中的“成绩”来讲,应该保证在0 100之间,又如在课程信息表(course_info)中的“学时”来讲,应该保证在0
9、80之间,而只用int数据类型是无法实现的,可以通过CHECK约束来完成。,4CHECK约束CHECK约束用于限制输入到一列或多列的,使用表设计器创建CHECK约束,使用表设计器创建CHECK约束,使用T-SQL语句创建CHECK约束,创建检查约束的语法形式如下: CONSTRAINT constraint_name CHECK ( check_expression )其中,check_expression 为约束范围表达式。,使用T-SQL语句创建CHECK约束创建检查约束的语法形式如,【例8】:新建“成绩”表,要求成绩的值在0100之间,Create table 成绩( 编号 char(1
10、0) NOT NULL, 课程编号 char(4)references 课程表, 学号 char(10)references 学生信息, 姓名 char(8) NOT NULL,成绩 int Constraint PK_学号 primary key(编号),Constraint CK_成绩 CHECK(成绩 between 0 and 100)),成绩 int CHECK(成绩 between 0 and 100),【例8】:新建“成绩”表,要求成绩的值在0100之间Cre,5DEFAULT约束若将表中某列定义了DEFAULT约束后,用户在插入新的数据行时,如果没有为该列指定数据,那么系统将默
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 数据库 第六 SQLServer 数据表 管理 课件
链接地址:https://www.31ppt.com/p-1288865.html