浙江农林大学暨阳学院数据库期末复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江农林大学暨阳学院数据库期末复习题
数据库技术复习纲要
第一章数据库的基本概念
1.什么是数据库?
2.理解、掌握数据库管理系统的基本功能
3.理解、掌握数据库系统的构成
4.理解三种数据模型的基本特征
5.理解、掌握E-R模型的绘制
6.掌握E-R图到关系模型的转换
7.练习题
(1)某顾客对某些商品要进行订货。
有关顾客.商品.订货的数据属性如下:顾客(顾客代码,顾客名,地址,联系电话,负责人);商品(商品代码,商品名,单价,生产日期);订货(订货日期,订货量,订货额)。
请画出顾客对某些商品要进行订货的E—R图,并将该E—R图转换为关系数据模型。
(2)教务管理系统中教师给学生授课,教师有属性教师编号、姓名、职称,学生有属性学号、姓名、性别,课程有属性课程编号、课程名、学时、学分、教材名称,教师授课可根据教学效果分A、B、C 三个等级衡量,学生学习课程以成绩来衡量。
画出该描述的E-R图并转换为关系模型,指出个关系中的关键字。
(3)书P23页,习题1,2,3,4
第二章数据库的建立
(一)知识要点
1.SQL Sever 2005所使用的文件包括哪三类,各类文件的主要作用
2.了解文件组的概念
3.了解SQL Sever中的系统数据库和用户数据库
4.掌握界面方式创建和操作数据库的过程
5.掌握用命令创建数据库
6.掌握修改数据库的命令及用法
7.练习题:
(1)数据库相关的磁盘文件主要有哪三种,它们的扩展名分别是什么?
(2)创建一个只含一个数据文件和一个事务日志文件的数据库,数据库名为JWGL1,主数据库文件逻辑名称为jwgl1_data,数据文件的操作系统名称jwgl1.mdf,数据文件初始大小为5MB,最大值为500MB,数据文件大小以10%的增量增加。
日志逻辑文件名称jwgl1_log.ldf,事务日志的操作系统名称jwgl1.ldf,日志文件初始大小为5MB,最大值100MB,日志文件以2MB增量增加。
(3)创建一个指定多个数据文件和日志文件的数据库。
该数据库名称为jwgl2,有2个10MB 的数据文件和2个10MB的事务日志文件。
主文件是列表中的第一个文件,并使用PRIMARY 关键字显式指定。
事务日志文件在LOG ON关键字后指定。
注意FILE_NAME选项中所用的文件扩展名:主数据文件使用.mdf,次数据文件使用.ndf,事务文件使用.ldf。
(4)创建一个包含2个文件组的数据库。
该数据库名为jwgl3,主文件组包含文件
jwgl30_data和jwgl31_data。
文件组jwgl3_group包含文件jwgl32_data和 jwgl33_data。
两个文件组数据文件的FILEGROWTH 增量为 15%,数据文件的初始大小为10 MB。
事务日志文件的文件名为jwgl3_log,FILEGROWTH 增量为 15%,日志文件的初始大小为5 MB。
(5)创建一个包含2个文件组的数据库。
该数据库名为jwgl3,主文件组包含文件jwgl30_data和jwgl31_data。
文件组jwgl3_group包含文件jwgl32_data和jwgl33_data。
两个文件组数据文件的FILEGROWTH 增量为 15%,数据文件的初始大小为10 MB。
事务日志文件的文件名为jwgl3_log,FILEGROWTH 增量为 15%,日志文件的初始大小为5 MB。
(6)创建数据库TBASE1,它只有一个主数据文件,其逻辑文件名为TBASE1_DATA,大小为5MB,最大为
50MB,按10%增长。
创建后再对其进行修改,将主数据文件最大大小改为100MB,增长方式按每次5MB增长。
(7)先在(6)题中的数据库TBASE1增加数据文件TBASE1_BAK,其大小为10MB,最大为50MB,并且按5%增长,然后再将其删除。
(8)为TBASE1添加文件组FGROUP,并为该文件组增添两个大小均为10MB的数据文件,最后再将添加的文件组删除
(9)删除TBSE1数据库
第三章表与表数据的操作
已知天目学院学生表XS(学号,姓名,性别,生日,专业,总学分,手机号,来源,高考成绩),课程表KC(课程编号,课程名称,开课学期,学分),选课表XKB(学号,课程编号,成绩)。
其中性别字段取值为“男”或“女”,专业字段以天目学院所开设的专业为准,来源指学生高考时的中学名称。
试完成下列表的操作,写出相应的操作命令(注,各小题操作结果互不影响,且不影响原表)
(1)给出上述三个表的结构定义并创建这三个表
(2)在XS表中增加“奖学金等级”和“爱好”字段
(3)将来源字段长度由原来的30改为50
(4)删除手机号字段
(5)删除表XKB
(6)将本宿舍的学生记录插入XS中
(7)产生表XSDS,包括学号,姓名,高考成绩,并将XS中所有电商专业的学生相应情况插入XSDS表中
(8)删除XSDS中所有高考成绩500分以下的同学记录
(9)删除表XSDS
(10)将XS中所有英语专业的学生成绩增加10分
(11)将手机号为138********的学生专业改为计算机,学号改为200704160524
(12)P71页,5,6,7题
第四章数据库的查询与视图
1.掌握关系运算中选择、投影、连接、自然连接的概念
2.以第三者中所建的表XS、KC、XKB为例,写出实现下列查询的命令
(一)单表查询
(1)查询XS表中的所有学生情况。
(2)查找电子商务专业的所有学生的学号、姓名、性别、来源和高考成绩。
(3)查找XS表中计算机系同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。
(4)查询XS表中计算机系各同学的学号、姓名和高考成绩,对高考成绩550分以上的显示优秀,530-549之间的显示良好,其余显示合格。
(5)给出XS中所有的专业名称
(6)给出XKB中所有选课的学生的学号
(7)查询XS表中通信工程专业总学分大于等于30的同学的情况。
(8)查询XS表中计算机系所有姓“王”的学生情况。
(9)查询XS表中所有宁波或温州来的同学的学号、姓名、来源和高考成绩
(10)查询XS表中不在1979年出生的学生情况。
查询90年后出生的学生。
(11)查询XS表中专业名为“计算机”或“通信工程”或“无线电”的学生的情况(12)查找XS表中没有手机号的学生学号和姓名。
(二)子查询
(13)查找选修了课程号为101的课程的学生的情况
(14)查询选修数据库技术的学生情况
(15)查找未选修离散数学的学生的情况。
(16)查找比所有计算机系的学生年龄都大的学生。
(17)查找课程号C121的成绩比课程号C101的最高成绩都高的学生的学号、姓名和专业。
(18)查找选修206号课程的学生姓名。
(三)多表查询、连接查询
(19)查找每个学生的情况以及选修的课程情况。
(20)查询每个学生的学号、姓名、性别、生日、专业、课程号、成绩。
(21)查询选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩。
(22)查询总学分大于50的男同学的姓名和学号。
(23)用FROM的JOIN关键字表达下列查询:查找选修了206课程且成绩在80分以上的学生姓名及成绩。
(内连接)
(24)用FROM的JOIN关键字表达下列查询:查找选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩。
(内连接)
(25)查找不同课程成绩相同的学生的学号、课程号和成绩。
(自身内连接)
(26)查找所有学生情况,及他们选修的课程号,若学生未选修任何课,也要包括其情况。
(右连接)
(27)查找被选修了的课程的选修情况和所有开设的课程名。
(左连接)
(28)列出学生所有可能的选课情况。
(交叉连接)
(29)将XSB中各专业名输出。
(GROUP BY)
(30)求XSB中各专业的学生数。
(31)求被选修的各门课程的课程号、课程名、平均成绩和选修该课程的人数。
(32)查询每个专业的男生、女生人数、总人数及学生总人数。
(ROLLUP)
(33)查询各专业每门课程的课程名、专业、平均成绩、每门课程的总平均成绩和所有课程的总平均成绩。
(WITH ROLLUP)(34)求选修C101课程的学生的最高分、最低分和平均成绩。
(35)求XS表中学生的总人数。
(36)求选修了课程的学生总人数。
(37)统计离散数学课程成绩在85分以上的人数
(39)查找XKB中平均成绩在85分以上的学生的学号和平均成绩。
(GROUP BY)
(40)查找选修课程超过2门且成绩都在80分以上的学生的学号。
(41)查找通信工程专业平均成绩在85分以上的学生的学号和平均成绩。
(42)查找通信工程专业学生的学号、姓名、出生时间,并产生一个学生总人数行。
(43) 将通信工程专业的学生按出生时间先后排序。
(ORDER BY)
(44)将计算机专业学生的“计算机基础”课程成绩按降序排列。
(45)将学生按专业名排序,并汇总各专业人数和平均学分。
(COMPUTE)
(46)由XSB表创建“计算机系学生”表,包括学号和姓名。
(INTO)
(四)、视图
(47)创建CS_KC视图,包括计算机专业各学生的学号、其选修的课程号及成绩。
(48) 创建计算机专业学生的平均成绩视图CS_KC_AVG,包括学号(在视图中列名为num)和平均成绩(在视图中列名为score_avg)。
(49) 使用视图CS_KC查找计算机专业的学生学号和选修的课程号。
(50) 查找平均成绩在80分以上的学生的学号和平均成绩。
本例首先创建学生平均成绩视图XS_KC_AVG,包括学号(在视图中列名为num)和平均成绩(在视图中列名为score_avg)。
再对XS_KC_AVG视图进行查询。
(51) 向CS_XS视图中插入一条记录:(‘001115’ , ‘刘明仪’, ‘计算机’, 1,‘1978-3-2’, 50 , NULL )
(52) 向XS12_VIEW视图中插入一条记录:(‘004010’, ‘蓝圆圆’, ‘外语’, 0, 40 )
(53) 将CS_XS视图中所有学生的总学分增加8。
(54) 将CS_KC视图中学号为001101的学生的101课程成绩改为90。
(55) 将XS12_VIEW视图中的每个学生的总学分增加10。
(56) 删除CS_XS中女同学的记录。
(57) 删除XS12_VIEW中学号为“******”的学生记录。
(五)、附加练习
1.按要求创建:顾客表Customer、定购表Book 。
(1)表名:CS (Customer)
属性:ID 字符型最大10个字符——顾客编号
NAME 字符型最大16个字符——顾客姓名
SEX 字符型最大2个字符——性别
TEL 字符型最大11个字符——移动电话
ADDR 字符型最大50个字符——家庭住址
约束:ID——主码;NAME—非空属性;SEX——取值“男”或“女”;
MOBILE——唯一性;
(2)表名:CM (Commodity)
属性:ID 字符型最大12个字符——商品编号
NAME 字符型最大20个字符——商品名称
DATE (生产日期和保质期)
MANUF 字符型最大20个字符——生产厂商
PRICE 小数型最大不超过4位数,保留2位小数—商品单价约束:ID——主码
2.数据库的操作
根据如下给定的几个关系(雇员、工作、公司和经理),用SQL 语句实现下列数据操作(删除和修改,不考虑参照关系)。
雇员(姓名,街道,城市)
工作(雇员名,公司名,工资)
公司(公司名,城市)
经理(雇员名,经理名)
其中,下划线表示各关系的主码,外码参照关系如下:工作表中的雇员名参照雇员表的姓名;工作表中的公司名参照公司表中的公司名;经理表中的雇员名参照雇员表的姓名。
(1).查询公司表中的全部数据
(2).查询在大连的全部公司,结果公司名称升序排序。
(3).查询公司的名称中带有“软件”字样的公司名称
(4).查询IBM员工的工资总合
(5).找出所有为“IBM”工作并且工资超过2000的员工的姓名。
(6).找出所有工资少于3000元员工的姓名,及城市。
(7).查找每个公司的平均工资
(8).查询最高工资少于3000元的公司名称
(9).添加记录“北京市”的“呵呵”公司到公司表。
(10).修改数据,使“呵呵”公司所在地为“大连”。
(11).为“东软”所有不是经理的人加薪10%。
(12).删除工资多余10000的所有工作表中记录
(13).创建在“大连”工作的所有雇员信息的视图DLEmployee,显示雇员的姓名和街道.
(14).创建在“呵呵”公司工作的员工的视图“呵呵”,包括员工的姓名、街道、工资。
(15).在呵呵视图中查询在工资多余1000的雇员信息。
(16).查询在公司所在地为大连的员工的居住城市
(17).找出工资总额最小的公司。
(18).找出所有居住的城市和公司所在的城市相同的员工。
(19).找出所有居住的街道和城市与其经理相同的员工。
(20).找出数据库中所有工资高于“IBM”的每一个员工的员工信息。
(21).找出工资高于其所在公司员工平均工资的所有员工姓名(思考题)。
(22).找出平均工资高于“东软”的平均工资的所有公司。
(23).删除员工的居住地及其公司所在地都是“大连”的员工在工作表中的记录。
3.综合练习
问题描述:
本题用到下面三个关系表:
CARD 借书卡。
CNO 卡号,NAME 姓名,CLASS 班级
BOOKS 图书。
BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数
BORROW 借书记录。
CNO 借书卡号,BNO 书号,RDATE 还书日期
备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
要求实现如下15个处理:
(1) 写出建立BORROW表的SQL语句.
(2) 找出借书超过5本的读者,输出借书卡号及所借图书册数。
(3) 查询借阅了"水浒"一书的读者,输出姓名及班级。
(4) 查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
(5) 查询书名包括"网络"关键词的图书,输出书号、书名、作者。
(6) 查询现有图书中价格最高的图书,输出书名及作者。
(7) 查询当前借了"计算方法"但没有借"计算方法习题集"的读者,输出其借书卡号,并按卡号降序排序输出。
(8) 将"C01"班同学所借图书的还期都延长一周。
(9) 从BOOKS表中删除当前无人借阅的图书记录。
(10)建立一个视图,显示"力01"班学生的借书信息(只要求显示姓名和书名)。
(11)查询当前同时借有"计算方法"和"组合数学"两本书的读者,输出其借书卡号,并按卡号升序排序输出。
(12).对CARD表做如下修改:
a. 将NAME最大列宽增加到10个字符(假定原为6个字符)。
b. 为该表增加1列NAME(系名),可变长,最大20个字符。