教案22

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
select * from stuቤተ መጻሕፍቲ ባይዱent
where sno in(select sno from score)
go
同理,如果希望查询未参加考试的学生名单?加上否定的NOT即可。
示例4-3:查询没有参加考试的学生名单
在SQL Server Management Studio查询窗口中输入以下SQL命令:
语法格式:WHERE [NOT] EXISTS(subquery)
示例4-4:查询显示选修了C200801课程的所有学生的姓名。
在SQL Server Management Studio查询窗口中输入以下SQL命令:
use stuDB
go
select sname from student
where exists (select sno from score where cno='c200801'
and sno=student.sno)。
NOT EXISTS与EXISTS的工作方式类似,只是如果子查询不返回行,那么使用NOT EXISTS的WHERE子句会得到令人满意的结果。
示例4-5:查询显示没有选修C200801课程的所有学生的姓名。
在SQL Server Management Studio查询窗口中输入以下SQL命令:
1.使用比较运算符的子查询
子查询可以由一个比较运算符(=、< >、>、> =、<、!>、! <或< =)引入。
示例4-1:查询学生信息表student中年龄比“罗林光”大的学生,要求显示这些学生的信息。
示例分析:学生的信息可以从学生信息表student中查询,但条件是年龄比“罗林光”大。如何实现呢?
使用SELECT语句进行多表联接查询的方法?
明确本次课的工作任务:子查询
教学过程
教学提示
第5章数据的查询与更新
一、子查询
子查询是一个嵌套在SELECT、INSERT、UPDATE或DELETE语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询。
子查询也称为内部查询或内部选择,而包含子查询的语句也称为外部查询或外部选择。子查询的SELECT查询总是使用圆括号括起来。SQL Server执行时,先执行子查询部分,求出子查询部分的值,然后再执行整个父查询。
3.使用EXISTS和NOT EXISTS的子查询。
布置作业:
第一步:求出“罗林光”出生日期。
第二步:利用WHERE语句筛选出生日期比“罗林光”早的学生。
【实现过程】
在SQL Server Management Studio查询窗口中输入以下SQL命令:
use stuDB
go
Select * from student
where birthday<(select birthday from student where sname='罗林光')
use stuDB
go
select sname from student
where not exists (select sno from score where cno='c200801'
and sno=student.sno)
go
课堂小结:
1.使用比较运算符的子查询;
2.使用IN和NOT IN的子查询;
go
注意:将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个。
2.使用IN和NOT IN的子查询
由比较运算符引入的子查询必须返回单个值而不是值列表。如果这样的子查询返回多个值,Microsoft SQL Server 2005将显示一条错
误信息。这时可以用IN表达式来代替比较运算符。
通过IN(或NOT IN)引入的子查询结果是包含零个值或多个值的列表。子查询返回结果之后,外部查询将利用这些结果。
语法格式:WHERE expression [NOT] IN (subquery)
说明:subquery是子查询。当表达式expression与子查询subquery的结果表中的某个值相等,IN返回TRUE,否则返回FALSE;若使用了NOT,则返回的值刚好相反。
示例4-2:查询所有参加了考试的学生名单
use stuDB
go
select * from student
where sno not in(select sno from score)
go
3.使用EXISTS和NOT EXISTS的子查询
使用EXISTS关键字引入一个子查询时,就相当于进行一次存在测试。外部查询的WHERE子句测试子查询返回的行是否存在。子查询实际上不产生任何数据,它只返回TRUE或FALSE值。
南京交通职业技术学院
教案
NO.23
教师姓名
张淑梅
授课班级
08521
授课形式
实验
授课时间
2009年月日第周
授课时数

授课章节名称
第5章数据的查询与更新
教学目的
掌握使用SELECT语句实现子查询的方法




教学重点
子查询
教学难点
子查询
更新、
补充、
删节内容

教学媒体(教具)
计算机
课外作业
课后分析
导入新课:
相关文档
最新文档