子查询的使用
use StuManageDB
go
--使用变量方式实现
declare @StuId int
Select @StuId=StudentId from Students where StudentName='张永利' Select StudentName,Gender,Age from Students where StudentId>@StuId --使用子查询实现 Select StudentName,Gender,Age from Students where StudentId>(Select StudentId from Students where StudentName='张永利')
使用子查询替换表连接查询
查询成绩大于90的学员姓名
--使用等值连接查询
select StudentName from Students inner join ScoreList on Students.StudentId = ScoreList.StudentId where SQLServerDB>90 --使用子查询 Select StudentName from Students where StudentId= (Select StudentId from ScoreList where SQLServerDB>90)
子查询使用总结
测试 大于80的学员姓名
1–表连接可以用子查询替换,但有的子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
2–子查询比较灵活、方便、常作为增删改查的筛选条件、适合操纵于一个表的数据
3–表连接更适合于查看多表的数据