- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈SQL Server数据库教学中连接查询和嵌套查询
浅谈SQL Server数据库教学中连接查询和嵌套查询
摘要:本文通过对《SQL Server数据库》课程中的连接查询和嵌套查询从定义、分类、使用等方面对比分析得出:两者有时可以互换,各有其优缺点。在实际查询过程中,可根据实际需求以及使用习惯,选取合适的查询方式。
关键词:SQL Server数据库;连接查询;嵌套查询
中图分类号:TP3文献标志码:A文章编号:2095-9214(2015)06-0147-02
1.引言
SQL语言是目前数据库领域中非常实用、流行的主流语言。SQL是Structure Query Language的英文缩写,意思是结构化查询语言。包括:数据查询(SQL)、数据操纵(DML)、数据定义(DDL)和数据控制(DCL)等功能于一体。数据查询是数据库的核心内容,也是我们最常用的操作。数据查询是通过SQL语句来实现的,利用SQL语句可以从数据库中查询出我们所需要的各种数据。[1]
数据查询分为单表查询和多表查询。单表查询是对一个表的查询,因为比较简单,这里不再说明。多表查询是对多个表,将分布在不同表中的数据根据需要进行查询。多表查询可以通过连接查询和嵌套查询来实现。[2]下面以学生管理数据库为例,介绍以上两种查询。其中学生表和成绩表的关系模式如下:学生(学号,姓名,性别,出生日期,籍贯,班级代码);成绩(学号,课程号,成绩)。
1.1什么是连接查询
1.1.1定义。根据各个表之间的逻辑关系从两个或多个表中查询数据。如:查询学生的学号、姓名、课程名称和成绩,涉及到的数据表有学生、课程和成绩。
1.2连接查询的分类
1.2.1内连接。内连接(inner join)是一种最常用的连接类型。内连接是一种任意条件的查询,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录,也就是在内连接查询中,只有满足条件的元组才能出现在结果关系中。[3]
例如:要查询每个已经选课的学生的情况,查询语句为:
SELECT * FROM学生INNER JOIN成绩ON学生.学号=成绩.学号
连接查询根据比较方式分为:
1.2.1.1等值连接:使用等号(=)运算符比较被连接的列的列值,称为等值连接。
1.2.1.2不等连接:使用除等于运算符以外的其它比较运算符比较被连接的列的列值,称为不等连接。包括、=、、!等运算符。
1.2.1.3自然连接:使用等于(=)运算符比较被连接列的列值,但删除连接表中的重复列,称为自然连接。它属于等值连接的一种特殊情况。
1.2.2外连接。外连接是指将不满足限制条件的表中的数据也显示在最终结果中。
根据限制表的不同,外连接分为三种情况:
1.2.2.1左外连接(LEFTOUTER JOIN)
左外连接是限制连接条件右边的表中的数据必须满足连接条件,而不关左边的表中的数据是否满足连接条件,均输出左边表中的内容。
例如:要查询所有学生的选课情况,包括已经选课的和还没有选课的学生,查询语句为:
SELECT学生.学号,姓名,班级代码,课程号,成绩
FROM学生LEFT OUTER JOIN成绩ON学生.学号=成绩.学号
左外连接查询中左边表中的所有元组的信息都得到了保留。
1.2.2.2右外连接(RIGHTOUTERJOIN)。右外连接与左外连接类似,只是右端表中的所有元组都列出,限制左端表的数据必须满足连接条件,而不管右端表中的数据是否满足连接条件,均输出表中的内容。
例如:同上例内容,查询语句为
SELECT学生.学号,姓名,班级代码,课程号,成绩
FROM学生RIGHTOUTERJOIN成绩ON学生.学号=成绩.学号
右外连接查询中右边表中的所有元组的信息都得到了保留。
1.2.2.3全外连接(FULL OUTER JOIN)。全外连接查询的特点是左、右两端表中的元组都输出,如果没能找到匹配的元组,就使用NULL来代替。
例如:同左外连接例子内容,查询语句为:
SELECT学生.学号,姓名,班级代码,课程号,成绩
FROM学生FULL OUTER JOIN成绩ON学生.学号=成绩.学号
全外连接查询中所有表中的元组信息都得到了保留。
1.2.3自连接。在同一个表内进行自身连接,这种查询称为自连接查询,自连接必须为表指定两个别名。
例如:要求检索出和刘鑫同班同学的信息,查询语句为:
SELECT 学生.*FROM学生JOIN学生AS学1 ON学生.班级代码=学生1.班级代码
WHERE学生1.姓名=‘刘鑫’and学生1.学号学生.学号
1.2.4交叉连接
文档评论(0)