首页 数据库视图完整性

数据库视图完整性

举报
开通vip

数据库视图完整性实验五:数据库视图的定义及使用 实验五:数据库视图的定义及使用 实验目的: 掌握视图的用法,加深对视图作用的理解。 实验内容: 1、​ 创建、修改和删除视图。 2、​ 利用视图进行查询。 实验步骤: I: 在SQL Server企业管理器中,依次选择数据库――XSGL――视图――鼠标右击――新建视图。然后通过单击按钮 或右击鼠标第一格的空白区域,选择弹出菜单中的“添加表”。然后拖拽主键到外键,建立关联,点击字段左边的方框选择输出字段。 仅以命令方式来操作(写出命令): 一、​ 视图的创建: 1.创建信息系学生信息的...

数据库视图完整性
实验五:数据库视图的定义及使用 实验五:数据库视图的定义及使用 实验目的: 掌握视图的用法,加深对视图作用的理解。 实验内容: 1、​ 创建、修改和删除视图。 2、​ 利用视图进行查询。 实验步骤: I: 在SQL Server企业管理器中,依次选择数据库――XSGL――视图――鼠标右击――新建视图。然后通过单击按钮 或右击鼠标第一格的空白区域,选择弹出菜单中的“添加表”。然后拖拽主键到外键,建立关联,点击字段左边的方框选择输出字段。 仅以命令方式来操作(写出命令): 一、​ 视图的创建: 1.创建信息系学生信息的视图: 2. 创建信息系选修了1号课程的学生的视图: 3. 建立信息系选修了1号课程且成绩在90分以上的学生的视图: 4. 创建一个反映学生出生年份的视图: 5. 将所有女生的记录定义为一个视图: 6. 将所有学生的学号和他的平均成绩定义为一个视图: 二、 视图结构的修改: 6. 将视图F_student修改为信息系的所有女士的视图 说明: 视图结构的修改的AS 后的Select语句与创建视图的完全一致, 引入结构修改的目的是为了避免与视图相关的数据库对象的变换, 如触发器, 关联等 三、查询视图 7. 在信息系的学生视图中查询年龄小于20岁的学生: 8. 查询信息系选修了1号课程的学生: 9. 在视图S_G中查询平均成绩在90分以上的学生的学号和平均成绩: 四、更新视图: 10.将信息系学生视图IS_Student中学号为”95002”的学生姓名改为”刘辰”: 比较: update IS_Student set sname=’刘辰’ wheresno=’95003’ 此语句不能实现数据的更新. 11. 向信息系学生视图IS_Student中插入一个新的学生记录, 学号为95029,姓名为”赵新”, 年龄为20岁: 12. 删除信息系学生视图IS_Student中学号为95004的学生的记录: 五、删除视图: 13. 删除视图IS_S1: 思考: 1. 创建所有学生的基本信息和选课信息的视图 2. 基于上述视图查询各系学生各门功课的平均成绩. 实验六:数据完整性 (SQL SERVER版) 实验目的: 加深对数据完整性的理解。 实验内容: 数据库的完整性设置。 实验步骤: 可视化界面的操作 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 : 一、实体完整性 1.将student表的“sno”字段设为主键:在表设计界面中,单击左边的行选定块,选定“sno”字段,单击工具按钮 设置主键。如图6-1所示:              图6-1 2. 将“sc”表的“sno”和“cno”设置为主键:在表设计界面中,单击并拖动左边的行选定块,选定sno和cno字段,单击工具按钮 设置主键。如图6-2所示:            图6-2 二、域完整性 3. 将“ssex”字段设置为只能取“男”,“女”两值:在表设计界面,点击图4-3箭头所指按钮,出现属性(Property)对话框,选择新建(New)按钮,然后在约束表达式(Constraint expression)框中输入“ ssex in ('男','女') ”。 如图6-3所示。               图6-3 三、参照完整性 4. 将“student”表和“sc”表中的“sno”字段设为参照: 打开“sc”表的设计界面, 点击工具栏按钮 , 在弹出的属性(properties)对话框中点击“新建”按钮,在“主键表(Primary key table)”下拉框中选择“student”表,在其下的字段选择框中选择“sno”,在“外键表(Foreign key table)”下拉框中选择“sc”表,在其下的字段选 择框中选择“sno”,单击关闭即可。见图6.4。             图6.4 命令方式操作方法()写出命令 一、​ 实体完整性 1.​ 将“student”表的“sno”字段设为主键: 当“student”表已存在则执行: alter table student add constraint pk_sno primary key (sno) 当“student”表不存在则执行: Create table student(sno CHAR(5) primary key , sname CHAR(10),ssex CHAR(2), sage int,sdept CHAR(4)) 注:可用命令“drop table student”删除“student”表 2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录) Alter table student add id char(18) unique (id) 3. 将“sc”表的“sno”和“cno”设置为主键: 当“sc”表已存在则执行: alter table sc add constraint PK_SnoCno primary key (sno,cno) 当“sc”表不存在则执行: Create table sc(sno CHAR(5),cno CHAR(2), grade INT NULL, constraint PK_SnoCno primary key (sno,cno)) 二、域完整性 4. 将“ssex”字段设置为只能取“男”,“女”两值: 当“student”表已存在则执行: alter table student add constraint CK_Sex check (ssex in ('男' ,'女')) 当“student”表不存在则执行: Create table student(sno CHAR(5) primary key , sname CHAR(10), ssex CHAR(2) check (ssex in ('男' ,'女')) , sage int, sdept CHAR(4)) 5. 设置学号字段只能输入数字: alter table student add constraint CK_Sno_Format check (sno like '[0-9][0-9][0-9][0-9][0-9]') 6. 设置身份证号的输入格式: alter table student add constraint CK_ID_Format check ((id like '[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_') OR (id like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]')) 7. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050) alter table student add constraint CK_ID_Format2 check ( not len(id)=18 or ( (convert(smallint,substring(id,7,4) )>=1900) and(convert(smallint,substring(id,7,4) )<=2050)) ) 三、参照完整性 9. 设置男生的年龄必须大于22, 女生的年龄必须大于20. Alter table student add constraint CK_age check (sex='男' and sage>=22 or sex='女' and sage>=20 ) 10. 将“student”表和“sc”表中的“sno”字段设为参照: 当“sc”表已存在则执行: alter table sc add constraint FP_sno foreign key (sno) references student(sno ) 当“sc”表不存在则执行: Create table sc(sno CHAR(5) constraint FP_sno foreign key references student(sno), cno CHAR(2),grade INT NULL, constraint PK_SnoCno primary key (sno,cno) ) 四、完整性验证 1. 实体完整性: 在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误如下图所示: 或者在命令窗口输入下面两条命令也会出现错误提示: insert into student values('95001','张三','男',20,'CS') insert into student values('95001','李四','女',18,'CS') 下面的语句用来验证“sc”表中的实体完整性: insert into sc values('95002', '10',65) insert into sc values('95002', '10',90) 2. 域完整性: 使用下面的语句验证“ssex”字段的域完整性: insert into student values('95009','张匀','大',20,'CS') 3.参照完整性: 使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录): insert into sc values('98998', '10',98) 思考: 1.建立课程的实体完整性, 和课程号cno的参照完整性; 2.建立年龄的域完整性, 约束条件为“年龄在15到30岁之间” 3*. 在学生表中添加“出生日期”和“身份证号”字段,设置一完整性规则,确保身份证号中的关于出生日期的数字与“出生日期”字段的值相匹配。
本文档为【数据库视图完整性】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_610809
暂无简介~
格式:doc
大小:361KB
软件:Word
页数:9
分类:理学
上传时间:2010-12-02
浏览量:75