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小时内删除。