- 8
- 0
- 约1.73千字
- 约 3页
- 2023-09-15 发布于上海
- 举报
PAGE
PAGE 2
SQL查询
设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。三个表的结构如下图所示。要求:完成以下习题。
表 1 图书表结构
列名
说明
数据类型
约束
图书号
图书唯一的图书号
定长字符串,长度为
20
主键
书名
图书的书名
变长字符串,长度为
50
空值
作者
图书的编著者名
变长字符串,长度为
30
空值
出版社
图书的出版社
变长字符串,长度为
30
空值
单价
出版社确定的图书的单价
浮点型, FLOAT
空值
表 2 读者表结构
列名
说明
数据类型
约束说明
读者号
读者唯一编号
定长字符串,长度为 10
主键
姓名
读者姓名
定长字符串,长度为 8
非空值
性别
读者性别
定长字符串,长度为 2
非空值
办公电话
读者办公电话
定长字符串,长度为 8
空值
部门
读者所在部门
变长字符串,长度为 30
空值
表 3 借阅表结构
列名
说明
数据类型
约束说明
读者号
读者的唯一编号
定长字符串,长度为 10
外码,引用读者表的主键
图书号
图书的唯一编号
定长字符串,长度为 20
外码,引用图书表的主键
借出日期
图书借出的日期
定长字符串,长度为 8,
非空值
为’yymmdd’
归还日期
图书归还的日期
定长字符串,长度为 8,
为’yymmdd’
空值
主键为: (
主键为: (读者号, 图书号)
用 SQL 语句创建图书馆数据库。
答 : CREATE DATABASE 图书馆
创建图书馆数据库的三个表。(在 SQL Server 2008 平台环境下实现)
创建图书表
创建读者表
创建借阅表
针对以上三个表,用 SQL 语言完成以下各项查询:
查询全体图书的信息,其中单价打 8 折,并且将该列设置别名为 ’打折价’ 。
显示所有借阅者的读者号,并去掉重复行。
查询所有单价不在 20 到 30 之间的图书信息。
查询机械工业出版社、科学出版社、人民邮电出版社的图书信息
查询既不是机械工业出版社、也不是科学出版社出版的图书信息
查找姓名的第二个字符是 ’建’并且只有两三个字符的读者的读者号、姓名。
查找姓名不是以’王’、’张’或’李’开头的所有读者的读者号、姓名。
查询无归还日期的借阅信息。
查询机械工业出版社或科学出版社出版的图书名,出版社 ,单价。
求读者的总人数
求借阅了图书的读者的总人数
求机械工业出版社图书的平均价格、最高价、最低价。
查询借阅图书本数超过 2 本的读者号、总本数。并按借阅本数值从大到小排序。
针对以上三个表,用 SQL 语言完成以下各项多表连接查询、子查询、组合查询
查询读者的读者号、姓名、借阅的图书名、借出日期、归还日期。
查询借阅了机械工业出版社出版 ,并且书名中包含’数据库’三个字的图书的读者,显示读者号、姓名、书名、出版社,借出日期、归还日期。
查询至少借阅过 1 本机械工业出版社出版的书的读者的读者号、姓名、书名,借阅本数,并按借阅本数多少降序排列。
查询与’王平’的办公电话相同的读者的姓名。
查询办公电话为的所有读者的借阅情况,要求包括借阅了书籍的读者和没有借阅的读者,显示他们的读者号、姓名、书名、借阅日期。(提示:外连接)
查询所有单价小于平均单价的图书号、书名、出版社
查询’科学出版社’的图书中单价比 ’机械工业出版社 ’最高单价还高的的图书书名、单价。
查询科学出版社的图书中单价比机械工业出版社最低单价高的的图书书名、单价。
查询已被借阅过并已归还的图书信息。
查询从未被借阅过的图书信息。
查询正在借阅的图书信息。
查询借阅了机械工业出版社出版的书名中含有数 据库书三个字的图书、或者借阅了科学出版社出版的书名中含有数 据库书三个字的图书的读者姓名、书名。
查询借阅了机械工业出版社出版的书名中含有数 据库书三个字的图书并且也借阅了科学出版社出版的书名中含有数 据库书三个字的图书的读者姓名、书名。
查询借阅了机械工业出版社出版的书名中含有数 据库书三个字的图书但没有借阅了科学出版社出版的书名中含有数 据库书三个字的图书的读者姓名、书名。
原创力文档

文档评论(0)