子查询和联合查询

数据库"EDUC"各表的结构为:
Student(SID,Sname,Sex,Birthday,Specialty,AScoress)
PK:SID
SC(SID,CID,Scores) PK:SID+CID FK:SID,CID
Course(NO,CID,Cname,Credit) PK:CID
数据库“Library"各表的结构为:
ReaderType(TypeID,Typename,LimitNum,LimitDays)
PK:TypeID
Reader(RID,Rname,TypeID,Lendnum)
PK:RID FK:TypeID
Book(BID,Bname,Author,Publisher,Price,LendOut)
PK:BID
Borrow(RID,BID,LendDate,ReturnDate,SReturnDate)
PK:RID+BID+LendDate FK:RID,BID

(1)从选课表"sc"中查询学号最小的学生的选课信息。

USE   EDUC_6班张三
GO
SELECT  *
FROM   SC
WHERE   SID=(SELECT   MIN(SID)  FROM   Student)

(2)查询出图书表"book"中价格最低的图书的编号和书名,采用子查询实现。

USE   Library
GO
SELECT  BID  AS 图书编号,Bname AS  书名
FROM   Book
WHERE   Price=(SELECT   MIN(Price)  FROM Book )

(3)查询出选修了课程号16020010的学生的学号、姓名。分别用连接实现和用子查询IN实现。

USE  EDUC_6班张三
GO
SELECT   x.SID,x.Sname
FROM   Student  x, SC  y
WHERE  x.SID=y.SID   and   y.cid='16020010'
USE  EDUC_6班张三
GO
SELECT   x.SID,x.Sname
FROM   Student  x
WHERE SID  IN  (SELECT  SID   FROM  SC   WHERE    cid='16020010')

(4)查询出”人民邮电出版社“和”清华大学出版社“出版的图书的作者名。不包括重复行。用联合查询实现。

USE   Library
GO
SELECT  Author
FROM  Book
WHERE   Publisher='人民邮电出版社'
UNION
SELECT   Author
FROM   Book
WHERE   Publisher='清华大学出版社'

(5)从图书管理数据库"Library"的借阅表borrow中查询出借阅过"人民邮电出版社"出版图书的读者编号(不包括重复的行)。分别用IN子查询、EXISTS子查询实现。

select  distinct   RID
from  borrow
where   BID  in(select  BID  from  book   where  publisher='人民邮电出版社')
select  distinct   RID
from  borrow
where   EXISTs  (select  *  from  book   where  borrow.bid=book.bid  and  publisher='人民邮电出版社')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值