SQL语句练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
某大学图书馆管理系统
分类(分类编号,类名)
书目(ISBN, 书名,作者,出版社,单价,分类编号)
图书(图书编号,ISBN,是否借出,备注)
读者(借书证号,单位,姓名,性别,职称,地址,联系电话,身份证编号)借阅(借阅编号,借书证号,图书编号,借书日期,归还日期,罚款,备注)*注意可以有相同的书多本(即ISBN相同,但图书编号不同),
用SQL 完成
1 建立表书目,主关键字为ISBN(编码规则请网上查阅)
create table 书目
(ISBN char(13)PRIMARY KEY,
书名varchar(50) ,
作者varchar(50),
出版社varchar(50)
单价float,
分类编号char(10) ,
foreign key分类编号references 分类(分类编号)
)
2 建立表借阅,主关键字为借阅编号,并且是自动递增字段。create table借阅
(
借阅编号int identity(1,1) primary key,
借书证号char(8)
图书编号char(15)
借书日期datetime
归还日期datetime
罚款float,
备注text()
)
3 添加‘2002’号借书证的读者借阅编号‘w11010’的书的借阅信息insert into 借阅(借阅编号,借书证号)values(
update
4 查询“红楼梦“目前可借的各图书编号,及所属版本,出版社。(是否借出为‘否‘的图书)
5查找高等教育出版社的所有书目及单价,结果按单价降序排序ORDER BY 单价DESC
6统计“红楼梦“各版的藏书数量(ISBN不同则版本不同)。
SELECT 书目.ISBN,COUNT(图书编号)
from 书目,图书
WHERE 书目. 书名=’红楼梦’ and书目.ISBN=图书.ISBN
GROUP BY 书目.ISBN
7 查询‘2002’号借书证的读者姓名和所借图书的总价值SELCET 姓名,SUM(单价)
FROM 书目,图书,借阅,读者
where
8 查询‘2002’号借书证借阅未还的图书。
select
where 归还日期IS NULL
9查询所藏图书中,各个出版社的图书最高单价、平均单价和册数10要查询借阅了两本和两本以上图书的读者姓名和单位
select 姓名,单位
from 读者,借阅
where读者.借阅证号=借阅.借阅证号
having count(*)>=2
11.查询‘王二’的单位、所借图书的书名和借阅日期,
12查询每类图书的册数和平均单价。
select 书目.分类编号, count(*),avg(单价)
from 书目,图书
where书目.ISBN= 图书.ISBN
GROUP BY 书目.分类编号
13查询每类图书中多于10册的册数和平均单价(ISBN相同的不重复计算)select 书目.分类编号, avg(单价)
from 书目
GROUP BY 书目.分类编号
HAVING count(*)>10
14检索书名是以“Internet”开头的所有图书的书名和作者。
15分别求出各个单位当前借阅图书的读者人次。
SELECT 单位,count(*) as ‘人次’
from 读者,借阅
where 读者.借阅证号=借阅.借阅证号
group by 单位
16查询各图书的罚款总数。
17查询经济系未还书的读者的姓名和联系电话。