数据库实验答案.doc

上传人:sk****8 文档编号:4284716 上传时间:2019-10-12 格式:DOC 页数:19 大小:1.53MB
下载 相关 举报
数据库实验答案.doc_第1页
第1页 / 共19页
数据库实验答案.doc_第2页
第2页 / 共19页
数据库实验答案.doc_第3页
第3页 / 共19页
数据库实验答案.doc_第4页
第4页 / 共19页
数据库实验答案.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、实验(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张表

2、中插入数据(示例数据参考教材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备注Memo0602001钟耀华男1987-05-01计算机优秀毕业生0602002吴佳硕女1987-03-24计算

3、机爱好:音乐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学分CreditC1数据结构4C2数据库原理C14C3大型数据库C23C4高尔夫1表3选课表(SC)数据学号Sno课程号Cno成绩Grade0602001C1610602001C2720602001C3880602002C10602002C26107010

4、01C1500701001C20701002C3780701003C1520701003C387实验(3)、交互式SQL(2)简单查询2012-04-26 22:12:00|分类:默认分类|字号订阅一、实验目的和注意事项实验目的:掌握单表查询SELECT、FROM、WHERE的用法,特别要掌握比较运算符、逻辑运算符的使用。注意事项:子句WHERE表示元组筛选条件;子句HAVING表示元组选择条件;子句HAVING必须和GROUP BY子句配合使用;二、教材例题练习(不需要记录在实验报告上)在实验(2)创建的表及插入的示例数据(数据库TSC)基础上,完成教材P83例3.9三、实验内容及步骤(在实

5、验报告中记录每个查询的SQL语句)在实验(2)创建的表及插入的示例数据(数据库StudentCourse)基础上,完成查询计算机系全体学生的信息查询姓“李”的学生的学号和姓名。查询课程表中先行课为空的课程名。查询考试成绩有不及格的学生的学号。求选修了C1课程或C2课程的学生的学号及成绩。查询全体计算机系学生的姓名及其年龄。查询计算机系在19861987年之间出生的学生的姓名。查询姓“李”的前2个学生(按姓名升序排列)的学号和姓名。查询选修了两门以上课程的学生学号与课程数。查询选修课程数大于等于2的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。附:参考解答实验(4)、交互式SQL(3)复

6、杂查询2012-04-26 22:16:24|分类:默认分类|字号订阅一、实验目的和注意事项实验目的:1.理解多表查询的概念;掌握多表查询的SELECT、FROM、WHERE、JOIN子句的用法,特别要对比内连接、外连接的结果差异。2.掌握查询中嵌套查询和组合查询的操作方法,进一步加深对SELECT语句的理解。注意事项:1、内连接、左外连接和右外连接的含义及表达方法;2、子句的使用,注意语句的层次嵌套关系和括号的配对使用问题;二、教材例题练习(不需要记录在实验报告上)在实验(2)创建的表及插入的示例数据(数据库TSC)基础上,完成1、教材P93例3.19,注意some, all的使用方法,并掌

7、握其相应的IN、NOT IN的等价表示2、教材P94例3.20,注意SQL Server 2000不支持Unique谓词,请给出解决这个问题的SQL语句,并记录在教材例3.20的旁边。三、实验内容及步骤(在实验报告中记录每个查询的SQL语句)在查询分析器中输入SELECT查询语句,对在实验(2)中已完成的StudentCourse数据库中的表,进行下列查询操作:1、多表连接查询(1)查询选修了【数据库原理】的计算机系的学生学号和姓名。(2)查询每一门课的间接先行课(即先行课的先行课)。(3)查询学生的学号、姓名、选修课程的名称和成绩。(4)查询选修了课程的学生姓名。(5)查询所有学生的信息和所

8、选修的课程,没有选课的同学对应的选课信息为空。(6)查询所有课程的课程编号、课程名称及选课人数,没有被选的课程选课人数显示为0。(7)列出学生所有可能的选修情况。(8)查找计算机系的学生选修课程数大于2的学生的姓名、平均成绩和选课门数,并按平均成绩降序排列。2、嵌套查询和组合查询操作。(1)统计选修了【数据库原理】课程的学生人数。(2)查询没有选修【数据库原理】课程的学生信息。(3)查询其他系中比计算机系学生年龄都小的学生。(4)查询被0602001学生或0602002学生所选修的课程的课程号(用UNION组合查询与IN条件查询两种方法实现)。(5)查询0602001学生和0602002学生同

9、时选修的课程的课程号(用IN子查询与EXISTS嵌套子查询两种方法实现)。(6)查询被学号0602001学生所选修的课程的课程号。附:参考解答实验(5)、交互式SQL(4)数据更新2012-04-26 22:19:24|分类:2010级数据库教学|字号订阅一、实验目的和注意事项实验目的:熟悉插入、修改和删除SQL语句的用法注意事项:对于INSERT语句,要求理解默认值约束、非空约束在插入时所起的作用。二、教材例题练习(不需要记录在实验报告上)在实验(2)创建的表及插入的示例数据(数据库TSC)基础上,完成1、教材P98例3.25,注意更正教材上第,小题的错误,并记录在该题的旁边2、教材P99例

10、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表示默认值男,其他数据为

11、空值。用CREATE语句建立表StudentBAK1,包含(与Students的Sno、Sname、Sdept相同)3个字段,然后用INSERT SELECT语句实现向StudentBAK1添加Students表中的计算机系学生的学号、姓名、所在系的信息。用SELECT INTO语句实现把Students表中1986年后(包含1986年)出生的学生的学号、姓名存储到一个新表StudentBAK2。将Students表中姓名为【赵林】的同学所在系改为【机电】,爱好改为【足球】。将选修了课程名为【数据库原理】并且有成绩的学生成绩加5分。将StudentCourse数据库的StudentBAK1表中

12、所有姓赵的同学删除。删除机电系课程成绩不及格或者没有登记成绩的学生选课记录。将StudentCourse数据库的StudentBAK2表中的所有行删除。附:参考解答实验(六)、第四章 数据库安全性2011-11-01 13:00:58|分类:默认分类|字号订阅一、实验目的1.熟悉通过SQL语句对数据进行安全控制2.完成数据库系统概论(第四版)一书中第四章例题的上机练习二、实验平台MS SQL Server 2000三、实验要求1、使用SQL语句对数据进行安全控制,包括授权和权力回收。2、授权操作完成后,检查用户是否真正具有所授予的数据操作权力;在权力回收操作之后,用户是否确实丧失了所回收的数据

13、操作权力。四、实验内容及完成情况(实验参考解答见教学博客)在实验开始之前,需要把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.在授权完成以后,验证用户是否拥

14、有相应的权限注意:验证时需要分别以不同的用户(U1U7)身份登录到数据库,进行相关的操作,检查他们是否具有教材表4.4(P139)中的相应权限。4.完成教材4.2.4小节例8例10 (P140)的权限回收语句,并验证在权限回收以后,该用户是否真正丧失了对数据的相应权限。5.数据库角色的使用包括:创建角色,为角色授权,将用户添加到角色中,从角色移除用户等操作,角色概念介绍参考教材4.2.5小节数据库角色的内容( P142),而在SQL Server上机操作需要参考教学博客上提供的示例代码自行完成。五、出现的问题及解决方案附录一:SQL Server2000数据库附加方法附录二:本次实验参考解答实

15、验(七)、第五章 数据库完整性2011-11-07 14:37:12|分类:默认分类|字号订阅一、实验目的1.熟悉通过SQL语句对数据进行完整性控制2.完成数据库系统概论一书中第五章例题的上机练习二、实验平台MS SQL Server 2000三、实验要求使用SQL语句对数据进行完整性控制,包括3类完整性约束、CHECK短语、CONSTRAINT子句、触发器。通过实验证实,当操作违法完整性约束条件时,系统是如何处理的。四、实验内容及完成情况在本次实验中,对数据完整性进行上机练习。包括3类完整性、CHECK短语、CONSTRAINT子句、触发器。因为完整性约束绝大部分是在定义表结构时进行的,因此

16、可能需要多次重复定义同一张表。如果表名发生重复,则需要先删除旧表后再重新建立。在开始实验之前,先创建一个名为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 © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。