码迷,mamicode.com
首页 > 数据库 > 详细

sql sever 查询语句

时间:2019-04-27 12:45:09      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:sts   code   其他   值传递   bsp   style   参考   blog   使用   

参考https://blog.csdn.net/dacainiao007/article/details/8129637
子查询:嵌套在其他查询中的查询称之。
子查询又称内部,而包含子查询的语句称之外部查询(又称主查询)。
所有的子查询可以分为两类,即相关子查询和非相关子查询
1. 非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
2. 相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。
故非相关子查询比相关子查询效率高

.子查询和连接查询的最重要区别是:
  子查询不需要两个表有关联字段,而连接查询必须有字段关联(所谓的主外键关系)



查询被t1和t3老师教了的课程的课程名//相关子查询 select cn from c where cno in(select cno from tc where tno=t1 and cno in(select cno from tc where tno=t3)) 查询选了c1课程的学生姓名//相关子查询 select sn from s where sno in (select sno from sc where cno=c1 and sc.sno=s.sno) 查询不学数据库的学生学号//相关子查询+连接子查询 select sno from s where sno not in (select sno from sc,c where cn=数据库 and sc.cno=c.cno ) 查询赵亦选的课程名 select cn from c where cno in (select cno from sc where sno in (select sno from s where sn=赵亦))//子查询 select cn from c where 赵亦 in (select sn from s,sc where s.sno=sc.sno and c.cno=cno) //连接子查询+相关子查询 select cn from c where 赵亦 in (select sn from s where sno in (select sno from sc where cno=c.cno)) //相关子查询 查询被所以学生选修了课程的课程号,课程名 使用exists select cno ,cn from c where not exists (select * from s where not exists (select * from sc where sno=s.sno and c.cno=cno)) 查询被t1,t3和t4老师教了的课程的课程名 使用exists 思路:该课程没有一个老师没教 select cn from c where not exists (select * from (select * from t where tno in (t1,t3,t4)) x
where not exists (select * from tc where tno=x.tno and cno=c.cno))

 

sql sever 查询语句

标签:sts   code   其他   值传递   bsp   style   参考   blog   使用   

原文地址:https://www.cnblogs.com/liuzhaojun/p/10778268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!