sql (6) exists

SQL中EXISTS的用法

 

查询所有选修了1号课程的学生的姓名,年龄,性别
首先取Student表中的一个元组,
然后在SC表中依次找SC.Sno=该元组的So,
并且对应的Cno='2',
如果存在,则外层查询的where子句返回为真,
则Student表中的该元组可以输出。
然后依次遍历Student表中的其他元组。

 


新建表:
(1)Student
So Sname Ssex Sage
1511010100 小明 男 10
1511010101 小粒 男 11
1511010102 小花 女 12
1511010103 小莉 女 13


(2)Course
Cno Cname Ccre Credit
1 JAVA 2 2
2 C 2 2
3 ANDROID 4 4
4 SQL 3 3
5 PASCAL 2 2


(3)
SC
Sno Cno Credit
1511010100 2 96
1511010101 2 98
1511010100 1 90
1511010104 3 98
1511010102 4 97

 

查询:
对于在学生表中学号等于151010100这个元组,在SC表中第一条记录即符合条件,然后where 子句返回 true,所以该条元组可以输出。然后依次遍历。

 

select Sname,Sage,Ssex

 
from Student

 
where exists

 
(

 
select *

 
from SC

 
where SC.Sno = Student.So AND Cno='2'

 
);

  

 

结果:
Sname Sage Ssex
小明 10 男
小粒 11 男

 

 

 

2018-04-27   11:06:40

原文地址:https://www.cnblogs.com/guangzhou11/p/8961398.html