资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
建立图书管理系统中的3个表分别为:
( 1) STUDENT( 借书证号, 姓名, 专业, 性别, 出生时间, 借书数, 照片, 办证日期)
( 2) BOOK( ISBN, 书名, 作者, 出版社, 价格, 复本书, 库存量)
( 3) BORROW( 借书证号, ISBN, 借书时间, 应还时间)
借书证号
姓名
专业名
性别
借书数
出生年份
办证日期
080101
吕亭亭
计 算 机
女
3
1988-01
-06
080102
张玉玲
计 算 机
女
1
1989-05
-07
080105
汪东升
网络工程
男
2
1988-06
-06
080208
陈 艺
电 子
女
2
1987-10
-09
080210
张 彦
电 子
男
0
1988-09
-07
080511
孙森茂
外 语
男
1
1986-05
-10
┇
┇
┇
┇
┇
┇
┇
ISBN
书名
作者
出版社
价格
复本数
库存量
X
版主答疑-Delphi高级编程技巧
岳庆生
机械工业出版社
49.0
7
5
X
大学英语词汇记忆点津与考点要览
马德高
牛津大学出版社(港)
16.0
20
15
数据库系统导论
C.J.Date
机械工业出版社
75.0
10
2
英语网上文摘
董素华
科学出版社
5.0
20
3
C++程序设计语言( 特别版)
Special Stroustrup
人民交通出版社
55.67
8
1
计算机网络
谢希仁
电子工业出版社
39.0
4
0
数据库系统概论
王珊
高等教育出版社
36.8
8
2
亲密接触ASP.NET
杜亮
清华大学出版社
39
20
1
┇
┇
┇
┇
┇
┇
┇
借书证号
ISBN
借书时间
应还时间
080101
-09-01
-12-01
080101
-09-01
-12-01
080101
-09-01
-12-01
080102
X
-08-25
-11-25
080105
X
-09-10
-12-10
080208
X
-10-09
-01-09
080208
-09-28
-11-28
080515
-10-23
-01-23
┇
┇
┇
┇
练习:
1. 在STUDENT表中查询出所有读者的姓名、 专业名和借书数。
a) Select 姓名,专业名,借书数 from STUDENT;
2. 在BORROW表中找出所有的借阅信息。
a) Select * from BORROW;
3. 查询学生的姓名和年龄。
a) Select 姓名,year(now())-year(出生年份) as 年龄 from STUDENT;
4. 查询所有读者的姓名、 还可借书籍的数量, 要求两个字段之间用字符串”还可借书数: ”进行连接, 并为所计算的列指定列名”可借书数”。(假设每人最多可借书6本)
a) Select 姓名,6-借书数 as 可借书数 from STUDENT;
5. 从BORROW表中找出所有借了书的读者的借书证号。
a) Select DISTINCT 借书证号 from BORROW;
6. 查询STUDENT表中借书数在3本以上的学生情况。
a) Select * from STUDENT where借书数>=3;
7. 查询BOOK表中价格介于30元到50元之间( 包括30和50) 的书籍的ISBN、 书名、 作者和出版社信息。
a) Select ISBN,书名,作者,出版社 from BOOK where价格 between 30 and 50;
8. 查询STUDENT表中专业名为”计算机”、 ”网络工程”、 ”软件工程”的学生信息。
a) Select * from STUDENT where专业名 in(”计算机”、 ”网络工程”、 ”软件工程”);
9. 查询STUDENT表中电子专业的学生的借书证号、 姓名和借书数。
a) Select 借书证号,姓名,借书数 from STUDENT where专业名=”电子”;
10. 查询STUDENT表中所有姓王的学生的借书证号、 姓名、 专业名和性别。
a) Select 借书证号,姓名,专业名,性别 from STUDENT where姓名 like ”王*”;
11. 查询BOOK表中书名以”100%”结束的书籍的ISBN和出版社。
a) Select ISBN,出版社 from BOOK where书名 like ”*100%”;
12. 查询STUDENT表中专业名尚不确定的学生的详细信息。
a) Select * from STUDENT where 专业名 is null;
13. 查询BOOK表中价格在40元以上电子工业出版社的图书和所有清华大学出版社的图书的ISBN、 书名、 出版社和价格信息。
a) Select ISBN,书名,出版社,价格 from BOOK where价格>40 and出版社=” 电子工业出版社” or出版社=” 清华大学出版社”;
14. 查询读者总人数。
a) Select count(*) from STUDENT;
15. 查询图书总册数和库存图书总册数。
a) Select sum(复本数),sum(库存量) from BOOK;
16. 查询计算机或网络工程专业借书最多和最少的册数。
a) Select max(借书数), min(借书数) from STUDENT where专业名 in(”计算机”、 ”网络工程”);
17. 查询STUDENT表中各个专业的学生数。
a) SELECT专业名, count(*) FROM STUDENT GROUP BY专业名;
18. 查询BOOK表中各个出版社各有多少本图书。
a) SELECT 出版社, count(*) FROM BOOK GROUP BY 出版社;
19. 查询STUDENT表中, 女生人数不超过5人的专业名。
a) SELECT专业名FROM STUDENT WHERE性别="女" GROUP BY专业名 HAVING count(*)<=5;
20. 查询BOOK表中水利水电出版社的图书, 并按照价格进行由高向低排列。
a) SELECT * FROM BOOK where 出版社=”水利水电出版社” ORDER BY 价格 DESC;
21. 查询STUDENT表中所有学生的信息, 查询结果按专业名升序排列, 同一个专业的学生按照年龄升序排列( 即按照出生年份降序排列) 。
a) Select * from STUDENT order by 专业名, 生年份降序 desc;
22. 查询每个读者的基本信息及借书情况。
a) Select STUDENT.借书证号,姓名,专业名,性别,借书数,出生年份,办证日期,ISBN,借书时间,应还时间 from STUDENT, BORROW where STUDENT.借书证号= BORROW.借书证号;
23. 查找在同一天借阅了不同图书的学生的借书证号、 ISBN和借书时间。
a) Select 借书证号,ISBN,借书时间 from BORROW A, BORROW B where A. 借书时间=B.借书时间;
24. 查询计算机专业的学生借阅图书的信息, 包括学生的姓名、 借书数、 所借书的书名、 应还时间。
a) Select 姓名,借书数,书名,应还时间 from STUDENT,BORROW,BOOK where STUDENT.借书证号=BORROW.借书证号 and专业名=” 计算机” and BORROW.ISBN= BOOK.ISBN;
25. 查询借阅了书名中含有”数据库”的图书的学生的借书证号、 姓名、 专业名、 所借图书的ISBN、 书名和应还书时间。
a) Select借书证号,姓名,专业名,借书数, BORROW.ISBN,书名,应还时间 from STUDENT,BORROW,BOOK where STUDENT.借书证号=BORROW.借书证号 and BORROW.ISBN= BOOK.ISBN and 书名 like ”*数据库*”;
26. 查询与”张彦”同一个专业的学生的借书证号、 姓名、 性别和借书数。
a) Select借书证号,姓名,性别,借书数 from STUDENT where专业名=(Select专业名 from STUDENT where姓名=”张彦”);
27. 查询没有借阅书名中含有”数据库”字样图书的计算机专业学生的借书证号、 姓名、 性别、 专业名和借书数。
a) Select借书证号,姓名,专业名,借书数
b) from STUDENT
c) where专业名=”计算机” and 借书证号 in
i. (Select BORROW.借书证号
ii. from BORROW,BOOK
iii. where BORROW.ISBN= BOOK.ISBN and 书名 not like ”*数据库*”);
28. 查询图书表中每个出版社的图书的库存量低于该出版社的所有图书的平均库存量的图书的ISBN和书名。
a) SELECT ISBN,书名
b) FROM BOOK s1
c) where 库存量<
i. (Select avg(库存量)
ii. From BOOK s2
iii. Where s1.出版社=s2.出版社
iv. Group by 出版社)
d) Group by 出版社;
29. 查询其它专业比所有计算机专业的学生年龄都小的学生的信息。
Select *
from STUDENT
where专业名<>”计算机” and year(now())-year(出生年份)<
(Select min(year(now())-year(出生年份))
from STUDENT
where专业名=”计算机”);
展开阅读全文