数据库连接查询和优化策略.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库连接查询和优化策略   【摘要】:随着大数据时代的来临,人们对于计算机技术的依赖程度越来越高,特别是建立在数据库基础上的各种查询技术为人们的工作和生活带来了方便和快捷。在查询技术中,多表连接查询的使用非常频繁,本文就常见的各种多表连接查询的特点进行分析总结、讨论优化策略。   【关键字】:计算机技术数据库多表连接查询   1引言   计算机数据库技术是一门实用性非常强的技术,随着我国信息化建设工程的逐渐开展,在多个领域中都有了较为广泛的应用,并逐渐的发挥出在信息化建设中的主导作用。在数据库技术中查询技术是最基本、最常用也是最复杂的技术之一,而多表连接查询也是所有数据库操作中最繁琐所占比重最大的。所以弄清楚多表连接查询的种类,以及在什么情况下使用哪种查询策略是需要研究的重要问题。   2多表连接查询分类   在实际工作中,所查询的内容往往涉及多张表,连接查询是关系数据库中最主要的查询方式,在sqlserver中连接查询类型分为交叉连接、内连接、外连接和自连接。   2.1交叉连接   交叉连接也称非限制连接,它是将两个表不加任何约束地组合起来。也就是将第一个表的所有行分别与第二个表的每一行形成一条新的记录,交叉连接在实际应用中一般是没有意义的,但在数据库的数学模型上有重要作用。   2.2内连接   内连接也称自然连接,它是组合两个表的常用方法。连接条件通常采用“主键=外键”的形式,也就是说在两个表中匹配的记录才能在结果集中出现。   例如:有学生(学号、姓名、性别、专业),成绩(学号、课程号、分数)两个表,要查询选修了‘a001’课程的学生的姓名和专业。查询语句如下:   select学生.学号,姓名,专业   from学生join成绩on学生.学号=成绩.学号   where课程号=‘a001’   2.3外连接   (1)在外连接中可以只限制一个表,而另一个表中的所有行都出现在结果集中。外连接分为左外连接、右外连接和全外连接。分别对左表、右表和左右两边的表不加限制。   例如:如果我们想查看所有的学生选修a001课程的成绩情况,就可以使用左外连接。查询语句如下:   select姓名,专业,课程号,分数   from学生leftjoin成绩on学生.学号=成绩.学号   where课程号=‘a001’   以上问题也可以使用右外连接。查询语句如下:   select姓名,专业,课程号,分数   from成绩rightjoin学生on成绩.学号=学生.学号   where课程号=‘a001’   这种情况下会以学生表为主,返回所有学生的信息,同时选修了a001课程的显示分数,没有选修a001课程的显示null   (2)全外连接结果集中除返回左表和右表内部连接的记录以外,还在查询结果中返回两个表中不符合条件的记录,并在左表或右表的相应列中填上null,bit类型以0值填充。   例如:有学生会(学号,姓名),人员分工(学号,职务)两个表,如果想查看学生会中的所有学生,哪些学生分配了职务,哪些学生还没有职务;学生会共设置了多少职务种类,哪些职务已经有人担任,哪些职务还有空缺,这时候就可以使用全外连接。查询语句如下:   select学生会.学号,姓名,职务   from学生会fulljoin人员分工on学生会.学号=人员分工.学号   这种情况下会返回学生会中所有学生学号、姓名,同时也会返回人员分工表里面的所有职务,没有职务的学生,职务填充null,没有分配出去的职务,姓名填充null。   3查询优化策略   连接的表越多,条件表达式越繁琐,查询的复杂度就越高,所消耗时间就越长。因此在进行查询时我们应当在能返回正确查询结果的前提下,尽可能的降低查询时间,提高查询效率。   3.1连表宜少不宜多   例如:有學生(学号、姓名、性别、专业),成绩(学号、课程号、分数),课程(课程号,课程名,学时数)三个表。查询选修‘a001’课程的学生学号、姓名和课程号。可以用以下两种方法实现:   方法一   select学生.学号,姓名,课程.课程号   from学生join成绩on学生.学号=成绩.学号   join课程on成绩.课程号=课程.课程号   where课程号=‘a001’   方法二   select学生.学号,姓名,成绩.课程号   from学生join成绩on学生.学号=成绩.学号

文档评论(0)

mmmttt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档