一:
SPJ 数据库
S( Sno , Sname , Status , City ) ; 供应商表
P( Pno , Pname , Color , Weight ) ; 零件表
J ( Jno , Jname , City ) ; 工程项目表
SPJ ( Sno , Pno , Jno , Qty ) ; SPJ 供应商给工程项目供应的零件表
例题:
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:RIDBook (BID,Bname,Author, PubComp, PubDate, Price)
PK:BIDBorrow (RID, BID,LendDate, ReturnDate)
PK:RID, BID FK:RID和BIDReaderType(TypeID, Typename, LimitNum, LimitDays)
PK:TypeID
例题:
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=‘人民邮电出版社’
);