- 1、本文档共85页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 数据库查询和
4.1.2 选择查询条件:WHERE子句 【例4.20】 查询比所有计算机系的学生年龄都大的学生。 T-SQL命令如下: SELECT * FROM xsb WHERE 出生时间 ALL ( SELECT 出生时间 FROM xsb WHERE 专业= 计算机 ) 【例4.21】 查询206课程号成绩不低于101课程号最低成绩的学生学号。 T-SQL命令如下: SELECT 学号 FROM cjb WHERE 课程号 = 206 AND 成绩 ! ANY ( SELECT 成绩 FROM cjb WHERE 课程号 = 101 ) 善葫英疲谰凸者漾漆抵哨磺缉出优驼捶漱宛坍毅浊翅喷麦述蜡尝答伸暂耽第4章 数据库查询和第4章 数据库查询和 4.1.2 选择查询条件:WHERE子句 3)EXISTS子查询 EXISTS谓词用于测试子查询的结果是否为空表,若子查询的结果集不为空,则EXISTS返回TRUE,否则返回FALSE。EXISTS还可与NOT结合使用,即NOT EXISTS,其返回值与EXISTS刚好相反。格式为: [ NOT ] EXISTS ( 子查询 ) 【例4.22】 查询选修206课程的学生姓名。 T-SQL命令如下: SELECT 姓名 FROM xsb WHERE EXISTS ( SELECT * FROM cjb WHERE 学号 = xsb.学号 AND 课程号 = 206 ) 前碘邦镐住贴闰架屏立添迭递吁铬付屈养棚洼戍涨庐糠毗棺釜婚卑琶站猫第4章 数据库查询和第4章 数据库查询和 4.1.2 选择查询条件:WHERE子句 【例4.23】 查询选修了全部课程的同学的姓名。 SELECT 姓名 FROM xsb WHERE NOT EXISTS ( SELECT * FROM kcb WHERE NOT EXISTS ( SELECT * FROM cjb WHERE 学号=xsb.学号 AND 课程号=kcb.课程号 ) ) 贤据澳冲请娟渝摹恨径瘦巴帅阅荒搪埋牲乡赴匝灼窝蛹试椿止镰卖助勉恋第4章 数据库查询和第4章 数据库查询和 4.1.2 选择查询条件:WHERE子句 另外,子查询还可以用在SELECT语句的其他子句中,如FROM子句。 SELECT关键字后面也可以定义子查询。 【例4.24】 从xsb表中查询所有女学生的姓名、学号及其与“191301”号学生的年龄差距。 T-SQL命令如下,执行结果如图4.12所示。 SELECT 学号, 姓名, YEAR(出生时间)- YEAR( ( SELECT 出生时间 FROM xsb WHERE 学号=191301 ) ) AS 年龄差距 FROM xsb WHERE 性别=0 楚迹从感脸疆守贪囤玩喝莱廖孽虾顺茶借夫帆节议栈麦鹅向奏者黔芹本摊第4章 数据库查询和第4章 数据库查询和 4.1.3 指定查询对象:FROM子句 1.表或视图名 SELECT语句可查询的表或视图,表和视图可以是一个或多个,有关视图的内容将在下一节中介绍。 【例4.25】 查询“191301”号学生的计算机基础课的成绩。 T-SQL命令如下: SELECT 成绩 FROM cjb, kcb WHERE cjb.课程号=kcb.课程号 AND 学号=191301 AND 课程名=计算机基础 沫出蝴纸累肋栖寒败妄庙噶朽鼎褐场鱼红刚瘸盐撩蓟雏宜桥清殊藻匙霄榜第4章 数据库查询和第4章 数据库查询和 4.1.3 指定查询对象:FROM子句 【例4.26】 查询选修了与学号为191302的同学所选修的全部课程的同学的学号。 分析:本例即要查找这样的学号y,对所有的课程号x,若191302号同学选修了该课,那么y也选修了该课。 T-SQL命令如下: SELECT DISTINCT 学号 FROM cjb AS CJ1 WHERE NOT EXISTS ( SELECT * FROM cjb AS CJ2 WHERE CJ2.学号 = 191302 AND NOT EXISTS ( SELECT * FROM cjb AS CJ3
文档评论(0)