欢迎来到天天文库
浏览记录
ID:36842313
大小:639.50 KB
页数:68页
时间:2019-05-10
《Transact-SQL语句的高级应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQLServer2005数据库应用与开发第06章Transact-SQL语句的高级应用6.1多表连接6.2使用子查询6.3利用游标处理结果集6.4管理大对象类型数据6.5小结第06章Transact-SQL语句的高级应用内容提要1.利用Transact-SQL语句查询的相关技巧和高级应用2.连接与子查询的区别3.游标的概念和应用4.大对象类型数据的管理6.1多表连接6.1.1连接概述连接可以根据各个表之间的逻辑关系来利用一个表中的数据选择另外的表中的行。连接条件可在FROM或WHERE子句中指定。连接条件与W
2、HERE和HAVING搜索条件组合,用于控制FROM子句引用的基表中所选定的行。6.1多表连接6.1.1连接概述SQLServer处理连接时,查询引擎从多种可能的方法中选择最高效的方法处理连接。尽管不同连接的物理执行采用多种不同的优化,但是逻辑序列都应用下列子句实现:FROM子句中的连接条件。WHERE子句中的连接条件和搜索条件。HAVING子句中的搜索条件。6.1多表连接6.1.2内连接内连接(INNERJOIN)通过比较数据源表间共享列的值,从多个源表检索符合条件的行的操作。可以使用等号运算符的连接,也可以
3、连接两个不相等的列中的值例6.1查询选修课程号为c05109的学生的学号、姓名和期末成绩。分析:本例中要求所输出的列分别在student表和score表中,可以通过studentno列、使用内连接的方式连接两个表,找出选修课程号为c05109的行。程序中两个表存在相同的列,引用时需要标明该列所属的源表。6.1多表连接程序代码如下:SELECTstudent.studentno,sname,finalFROMstudentINNERJOINscoreONstudent.studentno=score.studen
4、tnoWHEREscore.courseno='c05109'程序执行结果如下:studentnosnamefinal---------------------------------0822111208韩吟秋91.000824113307崔岩坚79.00……0935222201夏文斐92.000937221508平靖91.00(7行受影响)6.1多表连接6.1.2内连接例6.2查询选修课程号为c05103且平时成绩高于80分的学生的学号、姓名、平时成绩和期末成绩。分析:本例通过studentno列连接两个表,
5、找出选修课程号为c05103的行。同时要求输出行中的平时成绩高80分,则可以使用不是用等号的比较运算符实现。关键词INNER也可以省略。程序代码如下:SELECTstudent.studentno,sname,usually,finalFROMstudentJOINscoreONstudent.studentno=score.studentnoandusually>80WHEREscore.courseno='c05103'程序执行结果如下:studentnosnameusuallyfinal---------
6、---------------------------0823210007宿致远82.0069.000824113307崔岩坚85.0077.000922210009许海冰87.0082.000922221324何影88.0062.00(4行受影响)6.1多表连接6.1.3外连接外部连接(outerjoin)包括满足搜索条件的连接表中的所有行,甚至包括在其他连接表中没有匹配行的一个表中的行。(1)左外连接(leftouterjoin)。包括JOIN子句中左侧表中的所有行。右表中的行与左表中的行不匹配时,将为来自
7、右表的所有结果集列赋以NULL值。6.1多表连接6.1.3外连接例6.3利用左外连接方式查询08级学生的学号、姓名、平时成绩和期末成绩。分析:左外连接方式将会对右表中的行与左表中的行不匹配时,将右表的所有结果集列赋以NULL值。程序代码如下:SELECTstudent.studentno,sname,usually,finalFROMstudentLEFTJOINscoreONstudent.studentno=score.studentnoWHEREsubstring(student.studentno,1,
8、2)='08'程序执行结果如下:studentnosnameusuallyfinal----------------------------------0822111208韩吟秋85.0091.000822111208韩吟秋89.0095.00……0824113307崔岩坚66.0082.000828261367赵毓NULLNULL(10行受影响)6.1多表连接6.1.3外连接(2)右
此文档下载收益归作者所有