数据库实验三 数据查询二

第1关:多表查询

use library;

 #代码开始

 #第一题

select txm,jyrq,hsrq from borrow,reader where borrow.dzzh=reader.dzzh and reader.xm="王颖珊";

 #第二题

select dzzh,jyrq,hsrq from borrow,book where borrow.txm=book.txm and book.sm="李白全集";

 #第三题

select reader.dzzh,xm,dhhm,book.txm,sm,borrow.jyrq from reader,book,borrow where reader.dzzh=borrow.dzzh and book.txm=borrow.txm and isnull(hsrq);

 #代码结束

第2关:多表查询及统计分组

use library

 #代码开始

 #第一题

select sm,count(*)jycs  from borrow left join book on book.txm=borrow.txm 

group by sm 

order by count(*) desc,sm desc;

 #第二题

select sm,count(*)jycs  from borrow left join book on book.txm=borrow.txm 

group by sm having(count(*)>=2)

order by count(*)  desc,sm desc;

 #第三题

select cbs,count(*)jycs from borrow left join book on book.txm=borrow.txm 

group by cbs

order by count(*) desc,cbs desc;

 #第四题

select xm,count(*)jycs from borrow left join reader on borrow.dzzh=reader.dzzh 

group by xm

order by  count(*) desc,xm desc;

 #第五题

 select xm,count(*)jycs from borrow left join reader on borrow.dzzh=reader.dzzh 

where sf="研究生"group by xm order by count(*) desc,xm desc;

 #代码结束

第3关:子查询

use library;

#代码开始

#答案1

select sm from book where cbs=(select cbs from book where sm="李白全集")and sm!="李白全集";

#答案2

select sm,sj from book where sj>(select avg(sj) from book);

 

#答案3

select txm,sm,sj from book where sj=(select max(sj) from book);

 

#答案4

select txm,sm,sj from book where sj=(select min(sj) from book);

 

 #代码结束

 

第4关:多表子查询

use library;

#代码开始

#题目1

select distinct reader.dzzh,xm

from reader,borrow

where reader.dzzh = borrow.dzzh

order by reader.dzzh asc;

#题目2

select book.txm, sm

from book left join borrow

on book.txm = borrow.txm

where jyrq is null;

#题目3

select distinct reader.dzzh, xm

from reader,borrow

where reader.dzzh = borrow.dzzh and txm in(

select borrow.txm

from reader,borrow,book

where reader.dzzh = borrow.dzzh and borrow.txm = book.txm and xm = "孙思旺") and xm !="孙思旺"

order by reader.dzzh asc;

#题目4

 select distinct sm

 from borrow,book

 where borrow.txm = book.txm and dzzh in(

     select dzzh

     from borrow,book

     where borrow.txm = book.txm and sm ="李白全集"

 )and sm !="李白全集"

 order by sm asc;

 #代码结束

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值