数据库实验答案Word文档格式.docx
- 文档编号:15388327
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:14
- 大小:1.19MB
数据库实验答案Word文档格式.docx
《数据库实验答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验答案Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
(在实验报告中记录创建数据库、创建表及向表中插入数据的SQL语句)
语句创建数据库,名称为“StudentCourse”。
语句创建StudentCourse
中的3
张表(见下面),同时指定主码、外码、约束等。
3、在3张表中插入下面的示例数据
表1
学生表(Students)数据
学号Sno
姓名Sname
性别Ssex
出生日期Sbirthday
所在系Sdept
备注Memo
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
数据库原理
C3
大型数据库
3
C4
高尔夫
1
表3
选课表(SC)数据
成绩Grade
61
72
88
50
78
52
87
实验(3)、交互式SQL
(2)—简单查询
2012-04-2622:
12:
00|
分类:
默认分类|字号
订阅
实验目的:
掌握单表查询SELECT、FROM、WHERE
的用法,特别要掌握比较运算符、逻辑运算符的使用。
注意事项:
子句WHERE<
条件>
表示元组筛选条件;
子句HAVING<
表示元组选择条件;
必须和GROUPBY
子句配合使用;
二、教材例题练习(不需要记录在实验报告上)
在实验
(2)创建的表及插入的示例数据(数据库TSC)基础上,完成教材P83
例3.9
三、实验内容及步骤(在实验报告中记录每个查询的SQL语句)
在实验
(2)创建的表及插入的示例数据(数据库StudentCourse)基础上,完成
①
查询计算机系全体学生的信息
②
查询姓“李”的学生的学号和姓名。
③
查询课程表中先行课为空的课程名。
④
查询考试成绩有不及格的学生的学号。
⑤
求选修了C1
课程或C2
课程的学生的学号及成绩。
⑥
查询全体计算机系学生的姓名及其年龄。
⑦
查询计算机系在1986-1987
年之间出生的学生的姓名。
⑧
查询姓“李”的前2个学生(按姓名升序排列)的学号和姓名。
⑨
查询选修了两门以上课程的学生学号与课程数。
⑩
查询选修课程数大于等于2
的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。
附:
参考解答
实验(4)、交互式SQL(3)—复杂查询
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的旁边。
在查询分析器中输入SELECT
查询语句,对在实验
(2)中已完成的StudentCourse数据库中的表,进行下列查询操作:
1、多表连接查询
(1)
查询选修了【数据库原理】的计算机系的学生学号和姓名。
(2)
查询每一门课的间接先行课(即先行课的先行课)。
(3)
查询学生的学号、姓名、选修课程的名称和成绩。
(4)
查询选修了课程的学生姓名。
(5)
查询所有学生的信息和所选修的课程,没有选课的同学对应的选课信息为空。
(6)
查询所有课程的课程编号、课程名称及选课人数,没有被选的课程选课人数显示为0。
(7)
列出学生所有可能的选修情况。
(8)
查找计算机系的学生选修课程数大于2
的学生的姓名、
平均成绩和选课门数,并按平均成绩降序排列。
2、嵌套查询和组合查询操作。
统计选修了【数据库原理】课程的学生人数。
查询没有选修【数据库原理】课程的学生信息。
查询其他系中比计算机系学生年龄都小的学生。
查询被0602001
学生或0602002
学生所选修的课程的课程号(用UNION
组合查询与IN
条件查询两种方法实现)。
查询0602001
学生和0602002
学生同时选修的课程的课程号(用IN
子查询与EXISTS
嵌套子查询两种方法实现)。
查询被学号0602001
学生所选修的课程的课程号。
实验(5)、交互式SQL(4)—数据更新
19:
2010级数据库教学|字号
熟悉插入、修改和删除SQL
语句的用法
对于INSERT
语句,要求理解默认值约束、非空约束在插入时所起的作用。
1、教材P98
例3.25,注意更正教材上第③,⑤小题的错误,并记录在该题的旁边
2、教材P99
例3.26
3、教材P99
例3.27,注意更正教材上第④小题的错误,并记录在该题的旁边
向表Students
中插入(0601001,赵林,
男,1985-09-08,计算机)的记录。
向SC
表中添加一个学生的选课记录,学号为0601001,所选的课程号为C2。
SC表中有Sno、Cno、Grade
这3
个列。
这里只知道学号和课程号,不知道成绩值。
中插入(0601002,张修雨,default)记录,该记录的数据中default
表示默认值‘男’,其他数据为空值。
用CREATE
语句建立表StudentBAK1,包含(与Students
的Sno、Sname、Sdept
相同)3
个字段,
然后用INSERTSELECT
语句实现向StudentBAK1
添加Students
表中的计算机系学生的学号、姓名、所在系的信息。
用
SELECT…INTO
语句实现把Students
表中1986
年后(包含1986
年)出生的学生的学号、姓名存储到一个新表StudentBAK2。
将Students表中姓名为【赵林】的同学所在系改为【机电】,爱好改为【足球】。
将选修了课程名为【数据库原理】并且有成绩的学生成绩加5
分。
将StudentCourse
数据库的StudentBAK1
表中所有姓赵的同学删除。
删除机电系课程成绩不及格或者没有登记成绩的学生选课记录。
数据库的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](P138~139)的授权语句。
记录下授权的过程,需要自己完成>
3.在授权完成以后,验证用户是否拥有相应的权限
注意:
验证时需要分别以不同的用户(U1~U7)身份登录到数据库,进行相关的操作,检查他们是否具有教材表4.4(P139)中的相应权限。
记录下验证过程,需要自己完成>
4.完成教材4.2.4小节[例8]~[例10](P140)的权限回收语句,并验证在权限回收以后,该用户是否真正丧失了对数据的相应权限。
记录下权限回收及验证过程,需要自己完成>
5.数据库角色的使用
包括:
创建角色,为角色授权,将用户添加到角色中,从角色移除用户等操作,角色概念介绍参考教材4.2.5小节数据库角色的内容(P142),而在SQLServer上机操作需要参考教学博客上提供的示例代码自行完成。
记录下角色的使用过程,需要自己完成>
五、出现的问题及解决方案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)