SQL图书管理综合练习


数据库的相关信息及创建

表BookInfo
ISBN:图书编号,Bname:书名,Author:作者,Publish:出版社,Ptime:出版日期。

表Student
Sno:学号,Sname:姓名,Ssex:性别,Sdept:系名,Grade:年级,Profession:专业。

表Borrow
Sno:学号,ISBN:图书编号,Btime:借阅日期,Flag:借阅状态。

Create database myDB
GO
Use myDB
GO

create table BookInfo
(
 ISBN varchar(30) primary key,
 Bname varchar(20),
 Author varchar(10),
 Publish varchar(30),
 Ptime smalldatetime 
)
go
create table Student
(
 sno varchar(10) primary key,
 sname varchar(20) not null,
 ssex varchar(2),
 sdept varchar(50) ,
 grade varchar(4),
 profession varchar(50)
)
go
create table Borrow
(
  sno varchar(10) ,
  ISBN varchar(30),
  Btime smalldatetime,
  Flag varchar(10),
  primary key(sno,ISBN)
)
go

1、增加两条图书信息

图书编号:T01、书名:数据库原理、作者:张三、出版社:清华大学出版社、出版日期:2014-10-1;
图书编号:T02、书名:网页设计、作者:李四、出版社:人民邮电出版社、出版日期:2014-5-1;

/*1、增加两条图书信息:
图书编号:T01、书名:数据库原理、作者:张三、
出版社:清华大学出版社、出版日期:2014-10-1;
图书编号:T02、书名:网页设计、作者:李四、
出版社:人民邮电出版社、出版日期:2014-5-1;*/
Use myDB
Go
insert into  BookInfo values('T01','数据库原理','张三',
'清华大学出版社','2014-10-1')
insert into  BookInfo values('T02','网页设计',
'李四','人民邮电出版社','2014-5-1')

2、增加两条学生信息

学号:S01、姓名:李华、性别:f、系别:CS、年级:2014、专业:电子商务;
学号:S02、姓名:莉莉、性别:m、系别:MA、年级:2013、专业:工商管理;

/*2、增加两条学生信息:
学号:S01、姓名:李华、性别:f、系别:CS、
年级:2014、专业:电子商务; 
学号:S02、姓名:莉莉、性别:m、系别:MA、
年级:2013、专业:工商管理; */
Use myDB
Go
insert into Student values('S01','李华','f','CS','2014','电子商务')
insert into Student values('S02','莉莉','m','MA','2013','工商管理')

3、增加一条借阅信息

学生S01在2015年1月10日借阅T01,借阅状态为正常;

/*3、增加一条借阅信息:
学生S01在2015年1月10日借阅T01,借阅状态为正常; */
Use myDB
Go
insert into Borrow values('S01','T01','2015-1-10','正常')

4、修改学生“李华”所借的图书编号为“T02”的借阅状态为“超期”。

/*4、修改学生“李华”所借的图书编号为“T02”的借阅状态为“超期”。 */
Use myDB
Go
Update Borrow set Flag='超期' 
where sno in(select sno from Student where sname='李华')

5、统计每个学生借了几本书,列出学号,借书本数。

/*5、统计每个学生借了几本书,列出学号,借书本数。 */
Use myDB
Go
select sno,count(*)借书本数 
from Borrow
group by sno

6、统计出版日期在“2010-1-1”至“2015-12-31”之间的图书有多少本。

/*6、统计出版日期在“2010-1-1”至“2015-12-31”之间的图书有多少本。 */
Use myDB
Go
select count(*)书本数 
from BookInfo
where Ptime between '2010-1-1'and '2015-12-31' 

7、统计“2013”年级“电子商务”专业男生女生各有多少人。

/*7、统计“2013”年级“电子商务”专业男生女生各有多少人。 */
Use myDB
Go
select ssex,count(*)人数 
from Student
where grade='2013'and profession='电子商务'
group by ssex

8、统计“CS”系借书总数超过20本的学生的姓名。

/*8、统计“CS”系借书总数超过20本的学生的姓名。 */
Use myDB
Go
select Student.sname
from Student,Borrow
where Student.sno=Borrow.sno and sdept='CS'
Group by Student.sname
having count(*)>20

9、列出“CS”系借书“超期”的学生的姓名和超期的书名。


/*9、列出“CS”系借书“超期”的学生的姓名和超期的书名。 */
Use myDB
Go
select Student.sname,BookInfo.Bname
from Student,Borrow,BookInfo
where Student.sno=Borrow.sno and sdept='CS'
and BookInfo.ISBN=Borrow.ISBN and Flag='超期'

10、统计每一个出版社出版了多少本书。


/*10、统计每一个出版社出版了多少本书。 */
Use myDB
Go
select Publish, count(*)出版书籍数量
from BookInfo
group by Publish

11、找出学生“李华”所借的图书。列出图书名,借阅日期和借阅状态。

/*11、找出学生“李华”所借的图书。列出图书名,借阅日期和借阅状态。 */
Use myDB
Go
select BookInfo.Bname,Borrow.Btime,Borrow.Flag
from Student,BookInfo,Borrow
where Student.sno=Borrow.sno and BookInfo.ISBN=Borrow.ISBN 
and Student.sname='李华'

12、找出“网页设计”这本书的借阅学生信息。列出系名,年级,专业,姓名。

/*12、找出“网页设计”这本书的借阅学生信息。列出系名,年级,专业,姓名。 */
Use myDB
Go
select sdept,grade,profession,sname
from Student,BookInfo,Borrow
where Student.sno=Borrow.sno and BookInfo.ISBN=Borrow.ISBN 
and BookInfo.Bname='网页设计'
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值