数据库子查询


子查询就像使用普通的表一样,被当作结果集的查询语句被称为子查询。所有可以使用表的地方几乎都可以使用子查询来代替。
SELECT  *  FROM  (SELECT * FROM student  where
sAge <30)  as t
只有返回且仅返回一行、一列数据的子查询才能当成单值子查询。
子查询返回的值不止一个。当子查询跟随在 = != < <= > >= 之后,或子查询用作表达式时,这种情况是不允许的。
tips:

select * from TblStudent 

where

exists

(

  --子查询的结果,要依赖于当前父查询中当前行的tsClassid的结果。

  select * from TblClass

  wheret ClassName='计算机软件班' and  tClassId=TblStudent.tsClassId

)

如果子查询是多行单列的子查询,这样的子查询的结果集其实是一个集合。可以使用in关键字代替=号

select * from student where sClassId in  ( select cId from class where cName='高一一班' or cName='高二一班' )  等价于

Select* from student where exists(select * from class where (cName=‘高一一班’or cName=‘高二二班’)and class.cid=student.sclassid)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值