数据库实验答案6.docx

上传人:b****5 文档编号:8442437 上传时间:2023-01-31 格式:DOCX 页数:13 大小:1.19MB
下载 相关 举报
数据库实验答案6.docx_第1页
第1页 / 共13页
数据库实验答案6.docx_第2页
第2页 / 共13页
数据库实验答案6.docx_第3页
第3页 / 共13页
数据库实验答案6.docx_第4页
第4页 / 共13页
数据库实验答案6.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据库实验答案6.docx

《数据库实验答案6.docx》由会员分享,可在线阅读,更多相关《数据库实验答案6.docx(13页珍藏版)》请在冰豆网上搜索。

数据库实验答案6.docx

数据库实验答案数据库实验答案6实验

(2)、交互式SQL

(1):

利用SQL语句创建数据库、表及表之间关系一、实验目的和注意事项1、实验目的:

熟悉创建数据库和数据表的SQL语句。

2、注意事项:

输入SQL语句时应注意中文、英文的区别。

二、实验内容在查询分析器中,完成以下操作。

1、用SQL语句创建数据库,名称为“TSC”。

2、用SQL语句在TSC数据库创建4张表:

T,S,C,SC(参考教材P78例3.1)3、在上面的4张表中插入示例数据(参考教材P21例1.7)三、实验步骤(这部分不需要写作实验报告上)1、打开SQLServer2000的查询分析器2、创建数据库TSC。

3、创建4个表(参考教材P78例3.1)。

4、在4张表中插入数据(示例数据参考教材P21例1.7,Insert语句参考P973.4.1数据插入)四、实验报告记录部分(在实验报告中记录创建数据库、创建表及向表中插入数据的SQL语句)1、用SQL语句创建数据库,名称为“StudentCourse”。

2、用SQL语句创建StudentCourse中的3张表(见下面),同时指定主码、外码、约束等。

3、在3张表中插入下面的示例数据表1学生表(Students)数据学号Sno姓名Sname性别Ssex出生日期Sbirthday所在系Sdept备注Memo钟耀华男1987-05-01计算机优秀毕业生吴佳硕女1987-03-24计算机爱好:

音乐吴纯斌男1988-07-01计算机王腾飞男1988-05-04机电爱好:

音乐林师微女1987-04-03机电爱好:

体育李乐怡女1986-03-03机电李奇男1988-09-17工商管理表2课程表(Courses)数据课程号Cno课程名Cname先行课PreCno学分CreditC1数据结构4C2数据库原理C14C3大型数据库C23C4高尔夫1表3选课表(SC)数据学号Sno课程号Cno成绩GradeC161C272C388C1C261C150C2C378C152C387实验(3)、交互式SQL

(2)简单查询2012-04-2622:

12:

00|分类:

默认分类|字号订阅一、实验目的和注意事项实验目的:

掌握单表查询SELECT、FROM、WHERE的用法,特别要掌握比较运算符、逻辑运算符的使用。

注意事项:

子句WHERE表示元组筛选条件;子句HAVING表示元组选择条件;子句HAVING必须和GROUPBY子句配合使用;二、教材例题练习(不需要记录在实验报告上)在实验

(2)创建的表及插入的示例数据(数据库TSC)基础上,完成教材P83例3.9三、实验内容及步骤(在实验报告中记录每个查询的SQL语句)在实验

(2)创建的表及插入的示例数据(数据库StudentCourse)基础上,完成查询计算机系全体学生的信息查询姓“李”的学生的学号和姓名。

查询课程表中先行课为空的课程名。

查询考试成绩有不及格的学生的学号。

求选修了C1课程或C2课程的学生的学号及成绩。

查询全体计算机系学生的姓名及其年龄。

查询计算机系在19861987年之间出生的学生的姓名。

查询姓“李”的前2个学生(按姓名升序排列)的学号和姓名。

查询选修了两门以上课程的学生学号与课程数。

查询选修课程数大于等于2的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。

附:

参考解答实验(4)、交互式SQL(3)复杂查询2012-04-2622:

16:

24|分类:

默认分类|字号订阅一、实验目的和注意事项实验目的:

1.理解多表查询的概念;掌握多表查询的SELECT、FROM、WHERE、JOIN子句的用法,特别要对比内连接、外连接的结果差异。

2.掌握查询中嵌套查询和组合查询的操作方法,进一步加深对SELECT语句的理解。

注意事项:

1、内连接、左外连接和右外连接的含义及表达方法;2、子句的使用,注意语句的层次嵌套关系和括号的配对使用问题;二、教材例题练习(不需要记录在实验报告上)在实验

(2)创建的表及插入的示例数据(数据库TSC)基础上,完成1、教材P93例3.19,注意some,all的使用方法,并掌握其相应的IN、NOTIN的等价表示2、教材P94例3.20,注意SQLServer2000不支持Unique谓词,请给出解决这个问题的SQL语句,并记录在教材例3.20的旁边。

三、实验内容及步骤(在实验报告中记录每个查询的SQL语句)在查询分析器中输入SELECT查询语句,对在实验

(2)中已完成的StudentCourse数据库中的表,进行下列查询操作:

1、多表连接查询

(1)查询选修了【数据库原理】的计算机系的学生学号和姓名。

(2)查询每一门课的间接先行课(即先行课的先行课)。

(3)查询学生的学号、姓名、选修课程的名称和成绩。

(4)查询选修了课程的学生姓名。

(5)查询所有学生的信息和所选修的课程,没有选课的同学对应的选课信息为空。

(6)查询所有课程的课程编号、课程名称及选课人数,没有被选的课程选课人数显示为0。

(7)列出学生所有可能的选修情况。

(8)查找计算机系的学生选修课程数大于2的学生的姓名、平均成绩和选课门数,并按平均成绩降序排列。

2、嵌套查询和组合查询操作。

(1)统计选修了【数据库原理】课程的学生人数。

(2)查询没有选修【数据库原理】课程的学生信息。

(3)查询其他系中比计算机系学生年龄都小的学生。

(4)查询被学生或学生所选修的课程的课程号(用UNION组合查询与IN条件查询两种方法实现)。

(5)查询学生和学生同时选修的课程的课程号(用IN子查询与EXISTS嵌套子查询两种方法实现)。

(6)查询被学号学生所选修的课程的课程号。

附:

参考解答实验(5)、交互式SQL(4)数据更新2012-04-2622:

19:

24|分类:

2010级数据库教学|字号订阅一、实验目的和注意事项实验目的:

熟悉插入、修改和删除SQL语句的用法注意事项:

对于INSERT语句,要求理解默认值约束、非空约束在插入时所起的作用。

二、教材例题练习(不需要记录在实验报告上)在实验

(2)创建的表及插入的示例数据(数据库TSC)基础上,完成1、教材P98例3.25,注意更正教材上第,小题的错误,并记录在该题的旁边2、教材P99例3.263、教材P99例3.27,注意更正教材上第小题的错误,并记录在该题的旁边三、实验内容及步骤(在实验报告中记录每个查询的SQL语句)在实验

(2)创建的表及插入的示例数据(数据库StudentCourse)基础上,完成向表Students中插入(0601001,赵林,男,1985-09-08,计算机)的记录。

向SC表中添加一个学生的选课记录,学号为,所选的课程号为C2。

SC表中有Sno、Cno、Grade这3个列。

这里只知道学号和课程号,不知道成绩值。

向表Students中插入(0601002,张修雨,default)记录,该记录的数据中default表示默认值男,其他数据为空值。

用CREATE语句建立表StudentBAK1,包含(与Students的Sno、Sname、Sdept相同)3个字段,然后用INSERTSELECT语句实现向StudentBAK1添加Students表中的计算机系学生的学号、姓名、所在系的信息。

用SELECTINTO语句实现把Students表中1986年后(包含1986年)出生的学生的学号、姓名存储到一个新表StudentBAK2。

将Students表中姓名为【赵林】的同学所在系改为【机电】,爱好改为【足球】。

将选修了课程名为【数据库原理】并且有成绩的学生成绩加5分。

将StudentCourse数据库的StudentBAK1表中所有姓赵的同学删除。

删除机电系课程成绩不及格或者没有登记成绩的学生选课记录。

将StudentCourse数据库的StudentBAK2表中的所有行删除。

附:

参考解答实验(六)、第四章数据库安全性2011-11-0113:

00:

58|分类:

默认分类|字号订阅一、实验目的1.熟悉通过SQL语句对数据进行安全控制2.完成数据库系统概论(第四版)一书中第四章例题的上机练习二、实验平台MSSQLServer2000三、实验要求1、使用SQL语句对数据进行安全控制,包括授权和权力回收。

2、授权操作完成后,检查用户是否真正具有所授予的数据操作权力;在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。

四、实验内容及完成情况(实验参考解答见教学博客)在实验开始之前,需要把ftp(网盘上亦提供)上所提供的2个数据库文件(实验(6)student.mdf,实验(6)student_log.ldf)下载到本机,并将其附加到SQLServer上。

附加完成以后,会出现数据库student,在这个数据库中已建立了三张基本表:

student、course、SC,下面的实验是在这3张表的基础上进行的。

1.在数据库student中创建7个用户U1,U2,U3,U4,U5,U6,U7记录你的实际操作过程2.完成教材4.2.4小节例1例7(P138139)的授权语句。

3.在授权完成以后,验证用户是否拥有相应的权限注意:

验证时需要分别以不同的用户(U1U7)身份登录到数据库,进行相关的操作,检查他们是否具有教材表4.4(P139)中的相应权限。

4.完成教材4.2.4小节例8例10(P140)的权限回收语句,并验证在权限回收以后,该用户是否真正丧失了对数据的相应权限。

5.数据库角色的使用包括:

创建角色,为角色授权,将用户添加到角色中,从角色移除用户等操作,角色概念介绍参考教材4.2.5小节数据库角色的内容(P142),而在SQLServer上机操作需要参考教学博客上提供的示例代码自行完成。

五、出现的问题及解决方案附录一:

SQLServer2000数据库附加方法附录二:

本次实验参考解答实验(七)、第五章数据库完整性2011-11-0714:

37:

12|分类:

默认分类|字号订阅一、实验目的1.熟悉通过SQL语句对数据进行完整性控制2.完成数据库系统概论一书中第五章例题的上机练习二、实验平台MSSQLServer2000三、实验要求使用SQL语句对数据进行完整性控制,包括3类完整性约束、CHECK短语、CONSTRAINT子句、触发器。

通过实验证实,当操作违法完整性约束条件时,系统是如何处理的。

四、实验内容及完成情况在本次实验中,对数据完整性进行上机练习。

包括3类完整性、CHECK短语、CONSTRAINT子句、触发器。

因为完整性约束绝大部分是在定义表结构时进行的,因此可能需要多次重复定义同一张表。

如果表名发生重复,则需要先删除旧表后再重新建立。

在开始实验之前,先创建一个名为Practice7的数据库,下面所有的SQL语句都是在Practice7这个数据库内执行的1.在数据库Practice7中创建教材P82的student,course,sc三张表,先不设置主键,检查能否向表中插入重复值。

2.实体完整性:

删除上一步创建的3张表,重新创建,对每张表都设置主键,先不为SC表设置外键。

再次检查能否向表中插入重复值,能否在SC表中插入不存在的学号(Sno)或者课程号(Cno)3.参照完整性:

删除上一步创建的SC表,重新创建SC表并为其设置主键和外键。

再次验证能否在SC表中插入不存在的学号(Sno)或者课程号(Cno)4.用户定义的完整性:

完成教材P158例10,并通过插入数据进行验证。

5.触发器的使用(选做)创建一个名为Tab的表,它仅包含一整数列(列名为col)。

在表Tab上定义触发器Tri,在对Tab表插入或者更新前进行检查,如果插入或更新的值在60100之间,将值设置为60;如果大于100,则给出新值不允许大于100的提示信息。

五、出现的问题及解决方案附录:

本次实验参考解答

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1