2022年数据库实验答案资料 .pdf
实验 (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、打开 SQL Server 2000的查询分析器2、创建数据库TSC 。3、创建 4 个表(参考教材P78 例 3.1)。4、在 4 张表中插入数据(示例数据参考教材P21 例 1.7 , Insert 语句参考P97 3.4.1 数据插入) 四、实验报告记录部分(在实验报告中记录创建数据库、创建表及向表中插入数据的SQL语句)1、用 SQL 语句创建数据库,名称为“StudentCourse”。2、用 SQL 语句创建StudentCourse 中的 3 张表 (见下面 ),同时指定主码、外码、约束等。3、在 3 张表中插入下面的示例数据表 1 学生表 (Students) 数据学号 Sno 姓名Sname 性别Ssex 出生日期Sbirthday 所在系Sdept 备注 Memo 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - 0602001 钟耀华男1987-05-01 计算机优秀毕业生0602002 吴佳硕女1987-03-24 计算机爱好: 音乐0602003 吴纯斌男1988-07-01 计算机0701001 王腾飞男1988-05-04 机电爱好: 音乐0701002 林师微女1987-04-03 机电爱好: 体育0701003 李乐怡女1986-03-03 机电0703001 李奇男1988-09-17 工商管理表 2 课程表 (Courses) 数据课程号 Cno 课程名 Cname 先行课 PreCno 学分 Credit C1 数据结构4 C2 数据库原理C1 4 C3 大型数据库C2 3 C4 高尔夫1 表 3 选课表 (SC) 数据学号 Sno 课程号 Cno 成绩 Grade 0602001 C1 61 0602001 C2 72 0602001 C3 88 0602002 C1 0602002 C2 61 0701001 C1 50 0701001 C2 0701002 C3 78 0701003 C1 52 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 19 页 - - - - - - - - - 0701003 C3 87 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - - 实验 (3) 、交互式 SQL(2) 简单查询2012-04-26 22:12:00| 分类: 默认分类 |字号 订阅一、实验目的和注意事项实验目的:掌握单表查询SELECT 、FROM 、WHERE 的用法,特别要掌握比较运算符、逻辑运算符的使用。注意事项:子句WHERE表示元组筛选条件;子句HAVING表示元组选择条件; 子句 HAVING必须和 GROUP BY 子句配合使用;二、教材例题练习(不需要记录在实验报告上)在实验( 2)创建的表及插入的示例数据(数据库TSC )基础上,完成教材P83 例 3.9三、实验内容及步骤(在实验报告中记录每个查询的SQL 语句)在实验( 2)创建的表及插入的示例数据(数据库StudentCourse)基础上,完成 查询计算机系全体学生的信息 查询姓“李”的学生的学号和姓名。 查询课程表中先行课为空的课程名。 查询考试成绩有不及格的学生的学号。 求选修了 C1 课程或 C2 课程的学生的学号及成绩。 查询全体计算机系学生的姓名及其年龄。 查询计算机系在1986 1987 年之间出生的学生的姓名。 查询姓“李”的前2 个学生 (按姓名升序排列)的学号和姓名。 查询选修了两门以上课程的学生学号与课程数。 查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。附:参考解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - 实验 (4) 、交互式 SQL(3) 复杂查询2012-04-26 22:16:24| 分类: 默认分类 |字号 订阅一、实验目的和注意事项实验目的:1.理解多表查询的概念;掌握多表查询的SELECT 、 FROM 、WHERE、JOIN子句的用法,特别要对比内连接、外连接的结果差异。2.掌握查询中嵌套查询和组合查询的操作方法,进一步加深对SELECT 语句的理解。注意事项:1、内连接、左外连接和右外连接的含义及表达方法;2、子句的使用 , 注意语句的层次嵌套关系和括号的配对使用问题;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - 二、教材例题练习(不需要记录在实验报告上)在实验( 2)创建的表及插入的示例数据(数据库TSC )基础上,完成1、教材 P93 例 3.19 ,注意 some, all 的使用方法,并掌握其相应的IN 、NOT IN 的等价表示2、教材 P94 例 3.20 ,注意 SQL Server 2000不支持 Unique谓词,请给出解决这个问题的 SQL 语句,并记录在教材例3.20 的旁边。三、实验内容及步骤(在实验报告中记录每个查询的SQL 语句)在查询分析器中输入SELECT 查询语句,对在实验(2)中已完成的StudentCourse数据库中的表,进行下列查询操作:1、多表连接查询(1) 查询选修了【数据库原理】的计算机系的学生学号和姓名。(2) 查询每一门课的间接先行课(即先行课的先行课)。(3) 查询学生的学号、姓名、选修课程的名称和成绩。(4) 查询选修了课程的学生姓名。(5) 查询所有学生的信息和所选修的课程,没有选课的同学对应的选课信息为空。(6) 查询所有课程的课程编号、课程名称及选课人数,没有被选的课程选课人数显示为0。(7) 列出学生所有可能的选修情况。(8) 查找计算机系的学生选修课程数大于2 的学生的姓名、平均成绩和选课门数,并按平均成绩降序排列。2、嵌套查询和组合查询操作。(1) 统计选修了【数据库原理】课程的学生人数。(2) 查询没有选修【数据库原理】课程的学生信息。(3) 查询其他系中比计算机系学生年龄都小的学生。(4) 查询被 0602001 学生或 0602002 学生所选修的课程的课程号(用 UNION 组合查询与IN 条件查询两种方法实现)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 19 页 - - - - - - - - - (5) 查询 0602001 学生和 0602002 学生同时选修的课程的课程号(用 IN 子查询与EXISTS 嵌套子查询两种方法实现)。(6) 查询被学号0602001 学生所选修的课程的课程号。附:参考解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 19 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 19 页 - - - - - - - - - 实验 (5) 、交互式 SQL(4) 数据更新2012-04-26 22: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 表中添加一个学生的选课记录,学号为0601001 ,所选的课程号为C2。 SC 表中有 Sno 、Cno 、Grade 这 3 个列。这里只知道学号和课程号,不知道成绩值。 向表 Students 中插入 (0601002 ,张修雨, default) 记录,该记录的数据中default 表示默认值男,其他数据为空值。 用 CREATE 语句建立表StudentBAK1 ,包含 (与 Students 的 Sno 、Sname 、 Sdept 相同)3 个字段, 然后用 INSERT SELECT 语句实现向StudentBAK1 添加 Students 表中的计算机系学生的学号、姓名、所在系的信息。 用 SELECT INTO语句实现把Students 表中 1986 年后 (包含 1986 年)出生的学生的学号、姓名存储到一个新表StudentBAK2 。 将 Students表中姓名为【赵林】的同学所在系改为【机电】,爱好改为【足球】。 将选修了课程名为【数据库原理】并且有成绩的学生成绩加5 分。 将 StudentCourse 数据库的 StudentBAK1 表中所有姓赵的同学删除。 删除机电系课程成绩不及格或者没有登记成绩的学生选课记录。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 19 页 - - - - - - - - - 将 StudentCourse 数据库的 StudentBAK2 表中的所有行删除。附:参考解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 19 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 19 页 - - - - - - - - - 实验 (六)、第四章数据库安全性2011-11-01 13:00:58| 分类: 默认分类 |字号 订阅一、实验目的1.熟悉通过 SQL 语句对数据进行安全控制2.完成数据库系统概论(第四版 )一书中第四章例题的上机练习二、实验平台MS SQL Server 2000 三、实验要求1、使用 SQL 语句对数据进行安全控制,包括授权和权力回收。2、授权操作完成后,检查用户是否真正具有所授予的数据操作权力;在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。四、实验内容及完成情况(实验参考解答见教学博客)在实验开始之前,需要把ftp (网盘上亦提供)上所提供的2 个数据库文件(实验(6)student.mdf, 实验 (6)student_log.ldf)下载到本机,并将其附加到SQL Server上。附加完成以后,会出现数据库student, 在这个数据库中已建立了三张基本表:student 、course 、SC,下面的实验是在这3 张表的基础上进行的。 1.在数据库 student 中创建 7 个用户 U1,U2,U3,U4,U5,U6,U7 记录你的实际操作过程 2.完成教材 4.2.4 小节 例 1例 7(P138139) 的授权语句。 3.在授权完成以后,验证用户是否拥有相应的权限注意:验证时需要分别以不同的用户(U1 U7)身份登录到数据库,进行相关的操作,检查他们是否具有教材表4.4(P139) 中的相应权限。 4.完成教材 4.2.4 小节 例 8例 10 (P140) 的权限回收语句,并验证在权限回收以后,该用户是否真正丧失了对数据的相应权限。 5.数据库角色的使用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 19 页 - - - - - - - - - 包括 : 创建角色 ,为角色授权,将用户添加到角色中,从角色移除用户等操作,角色概念介绍参考教材 4.2.5 小节数据库角色的内容( P142) ,而在 SQL Server上机操作需要参考教学博客上提供的示例代码自行完成。五、出现的问题及解决方案附录一: SQL Server2000数据库附加方法附录二:本次实验参考解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 19 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 19 页 - - - - - - - - - 实验 (七)、第五章数据库完整性2011-11-07 14:37:12| 分类: 默认分类 |字号 订阅一、实验目的1.熟悉通过 SQL 语句对数据进行完整性控制2.完成数据库系统概论一书中第五章例题的上机练习二、实验平台MS SQL Server 2000 三、实验要求使用 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.触发器的使用(选做)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 19 页 - - - - - - - - - 创建一个名为Tab 的表,它仅包含一整数列(列名为 col)。在表 Tab 上定义触发器Tri, 在对Tab 表插入或者更新前进行检查,如果插入或更新的值在60100 之间,将值设置为60;如果大于 100,则给出新值不允许大于100 的提示信息。五、出现的问题及解决方案附录:本次实验参考解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 19 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 19 页 - - - - - - - - -