数据库-SQL语言(数据查询)(练习习题)

一:

SPJ 数据库

S( Sno , Sname , Status , City ) ; 供应商表

P( Pno , Pname , Color , Weight ) ; 零件表

J ( Jno , Jname , City ) ; 工程项目表

SPJ ( Sno , Pno , Jno , Qty ) ; SPJ 供应商给工程项目供应的零件表

数据库-SQL语言(数据查询)(练习习题)_第1张图片

例题:

1、中零件重量单位是公斤,请给出每种零件的市斤数。输出的列有零件号,零件名,和市斤数。市斤数是列的别名,其他两个不用改。

2、如果每种零件取一个,那么所有种类的零件的总重量是多少

3、查询零件表中,零件的颜色都有哪些。

4、统计汇总每个供应商提供给每个工程项目的零件的总个数。输出:供应商号和工程项目号和零件总个数。

5、所有城市所在地是‘天津’的工程项目被供应的零件的总个数。输出:工程项目名和零件总个数。并按照零件总个数升序排序,零件总个数相同的按项目名降序排序只输出零件总个数大于500

6、找出最重的三种零件的零件号和零件名。

7、查询工程项目所在地名字最后一个字是‘京’字的项目号,项目名,所在城市。注意把列名从英文改为中文

解:

//1、
select Pno,Pname,Weight*2 市斤数 
from P;

//2、
select sum(Weight) 总重量 
from P;

//3、
select distinct Color 
from P;

//4、
select Sno,Jno,sum(*) 总个数
from SPJ
group by Sno,Jno
order by Sno;

//5、
select SPJ.Jname,sum(Qty) 零件总个数
from J,SPJ
where J.Jno=SPJ.Jno and City='天津'
group by SPJ.Jname  
having sum(Qty)>500
order by 零件总个数,SPJ.Jname desc;

//6、
select Pno,Pname,Weight 
from P
order by Weight desc;

//7、
select Jno 项目号,Jname 项目名,City 所在城市
from J
where City like '%京';

二:

图书管理系统数据库 

Reader(RID,Rname,TypeID,Lendnum)   
PK:RID

Book (BID,Bname,Author, PubComp, PubDate, Price) 
PK:BID

Borrow (RID, BID,LendDate, ReturnDate)
PK:RID, BID          FK:RID和BID

ReaderType(TypeID, Typename, LimitNum, LimitDays) 
PK:TypeID

         数据库-SQL语言(数据查询)(练习习题)_第2张图片          数据库-SQL语言(数据查询)(练习习题)_第3张图片

         数据库-SQL语言(数据查询)(练习习题)_第4张图片           数据库-SQL语言(数据查询)(练习习题)_第5张图片

例题:

1、查询读者编号、读者姓名、所借图书名和借阅时间。

2、查询book中价格最低的图书编号和书名

3、查询被借阅过的“人民出版社”出版的图书的图书编号。

4、查询没被借阅过的“人民出版社”出版的图书的图书编号。

5、查询“人民出版社”和“人民文学出版社”出版的图书的书名和作者

6、查询出“人民出版社”出版的图书的编号和被借阅过的图书的编号,不包括重复的列。

7、查询出“人民出版社”出版的图书的编号和被借阅过的图书的编号,可以包括重复的列。

8、查询“人民出版社”出版的图书和被借阅过的图书的编号,不包括重复的列并将查询结果进行排序。

9、查询借阅高等教育出版社出版的图书的读者编号。

10、查询出没有借过书的读者信息。

11、exists子查询实现查询借阅了人民邮电出版社出版的读者编号。

解:

//1、
select Reader.RID,Reader.Rname,Book.Bname,Borrow.LendDate 
from Reader,book,Borrow
where Reader.RID=Borrow. RID and Book.BID= Borrow.BID ;

//2、
select BID,Bname
from Book
where Price=(
    select min(Price)
    from Book
);

//3、
select BID
from Book
where PubComp=‘人民出版社’ and exists(
    select *
    from Borrow
    where Borrow. BID= Book. BID
); 

//4、
select BID
from Book
where PubComp=‘人民出版社’ and not exists(
    select *
    from Borrow
    where Borrow. BID= Book. BID
);

//5、
select Bname,Author
from Book
where PubComp=‘人民出版社’ union
    select Bname,Author
    from Book
    where PubComp=‘人民文学出版社’ ;

//6、
select BID
from Book
where PubComp=‘人民出版社’  union
    select BID
    from Borrow ;

//7、
select BID
from Book
where PubComp=‘人民出版社’  union all
    select BID
    from Borrow ;

//8、
select BID
from Book
where PubComp=‘人民出版社’  union
    select BID
    from Borrow
order by BID;

//9、
select RID 
from Borrow
where BID in(
    select BID 
    from Book 
    where PubComp=‘高等教育出版社’
);

//10、
select * 
from Reader
where RID not in(
    select RID 
    from Borrow
);

//11、
select RID 
from Borrow 
where exists(
    select RID 
    from Book 
	where Borrow.BID=Book.BID and PubComp=‘人民邮电出版社’
);

 

你可能感兴趣的:(数据库)