桂 林 电 子 科 技 大 学 机 试 试 卷
2010-2011 学年第 二 学期 课号 SY123121_04
课程名称 数据库原理与应用 (A卷; 开卷) 适用班级(或年级、专业)
考试时间 分钟 班级 学号 姓名
题 号 | 一 | 二 | 三 | 四 | 五 | 六 | 七 | 八 | 九 | 十 | 成绩 |
满 分 | |||||||||||
得 分 | |||||||||||
评卷人 | |||||||||||
现有图书借阅关系数据库如下:
表1 “读者”表
列名 | 数据类型 | 长度 | 是否可空 | 默认值 | 说明 |
读者编号 | char | 7 | × | 无 | 主键 |
读者姓名 | char | 8 | × | 无 | |
性别 | char | 2 | × | ‘男’ | 取值为‘男’或‘女’ |
所在系 | varchar | 20 | × | 无 | |
入学年份 | char | 4 | × | 无 | |
表2 “图书”表
列名 | 数据类型 | 长度 | 是否可空 | 默认值 | 说明 |
图书编号 | char | 4 | × | 无 | 主键 |
图书名称 | varchar | 30 | × | 无 | |
作者 | char | 8 | × | 无 | |
单价 | money | × | 无 | ||
出版社 | varchar | 50 | × | 无 | |
表3 “借阅”表
列名 | 数据类型 | 长度 | 是否可空 | 默认值 | 说明 |
读者编号 | char | 7 | × | 无 | 和图书编号合起来作为主键;单独作为“读者”表的外键 |
图书编号 | char | 4 | × | 无 | 和读者编号合起来作为主键;单独作为“图书”表的外键 |
借书日期 | datetime | × | 无 | ||
还书日期 | datetime | √ | 无 | ||
(首先在F盘以“自己的学号+姓名”命名新建一个文件夹)
1.建立名称为TSGL的数据库,并指定主文件和事务日志文件的保存位置为你刚刚新建的文件夹中。(7分)
2.在TSGL数据库中创建“读者”表、“图书”表、“借阅”表,表的详细信息参见表1、表2、表3 (18分)。
(提醒:先建好表的约束后再插入数据!)
3.往表中插入数据(15分):
读者(0601001,钟文辉,女,计算机,2009;
0601002,吴超西,男,计算机,2009;
0602001,吴希文,女,计算机,2010;
0701001,王崇瑞,男,机电,2009;
0701002,林涛涛,女,机电,2010;
0701003,李秀雨,女,管理,2010;
0801001,刘冲,女,外语,2011;
0802002,汤程妮,女,电子信息,2011;
数据库原理及应用期末考试题0802003,雷凡,男,管理,2010)
图书(b001,计算机文化基础,唐培和,30,广西师范大学出版社;
b002,经济法基础,冯丽华,20,电子工业出版社;
b003,数据库原理及应用,胡锦丽,35,北京大学出版社;
b004,C语言程序设计,谭浩强,38,清华大学出版社;
b005,java核心技术,史密斯,34,清华大学出版社;
b006,java系统开发,王玲,29,电子工业出版社
b007,梦里花落知多少,郭敬明,15,百花出版社)
借阅(0601001,b002,2011-4-1,null;
0601001,b004,2011-3-4, 2011-4-18;
0601001,b005,2011-4-3, 2011-5-9;
0602001,b001,2011-1-3,null;
0602001,b002,2011-2-8, 2011-3-19;
0602001,b007,2011-3-9,null;
0602001,b003,2010-7-1,null;
0701003,b002,2010-4-2,null;
0701003,b006,2010-4-14,null;)
4.用SQL语句完成下列查询功能(60分,每题6分):
--1)检索清华大学出版社出版的图书名称和作者。
--2)检索2010年入学的机电系的读者信息。
--3)检索同时借阅了图书编号为’b002’和’b007’的读者编号。
--4)检索比电子工业出版社的所有图书单价更高的图书信息。
--5)检索借阅了图书编号为’b002’的读者姓名。
--6)检索读者‘钟文辉’所借阅图书的书名;
--7)查询当前至少借阅了两本图书的读者姓名及所在系。
--8)将读者编号为’0602001’所借阅的图书单价加5;
--9)建立2010级学生借书信息的视图vw1(读者编号,读者姓名,图书编号,图书名称,所在系)
--10)创建一个存储过程p1,当输入一个@读者姓名,返回该学生的借阅信息。并调用此
存储过程查看读者姓名为’吴希文’的借阅信息。
答案
--1)检索读者编号为'0701002'的读者姓名和所在系。
SELECT 读者姓名,所在系
FROM 读者
WHERE 读者编号='0701002'
--2)检索每个出版社图书的册数。
SELECT 出版社,COUNT(图书编号)
FROM 图书
GROUP BY 出版社
--3)检索图书名称中含有'基础'二字的图书名称及作者。
SELECT 图书名称,作者
FROM 图书
WHERE 图书名称 LIKE '%基础%'
--4)检索2010年入学的计算机系的读者信息。
SELECT *
FROM 读者
WHERE 所在系='计算机' AND 入学年份='2010'
--5)检索借阅了图书编号为’b002’的读者姓名。
SELECT 读者编号
FROM 借阅
WHERE 图书编号='b002'
--6)检索读者‘吴希文’所借阅图书的书名;
SELECT 图书名称
FROM 图书
WHERE 图书编号 In
(SELECT 图书编号
FROM 借阅 JOIN 读者 ON 读者.读者编号=借阅.读者编号
WHERE 读者姓名='吴希文')
--7)查询当前至少借阅了两本图书的读者姓名及所在系。
SELECT 读者姓名,所在系
FROM 读者
WHERE 读者编号 IN(
SELECT 读者编号
FROM 借阅
GROUP BY 读者编号 HAVING COUNT(*)>=2)
--8)将读者‘李秀雨’所借图书的记录从借阅表中删除;
DELETE FROM 借阅 WHERE 读者编号=
(SELECT 读者编号 FROM 读者 WHERE 读者姓名='李秀雨')
--9)建立计算机系学生借书信息的视图vw1(读者编号,读者姓名,图书编号,图书名称)
--10)创建一个存储过程p1,当输入一个@读者编号,返回该学生的借阅信息。并调用此存储过程查看读者编号为’ 0602001’的借阅信息。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论