当前位置: 传客网 > 1.sqlserver编程入门经典---更复杂的查询

1.sqlserver编程入门经典---更复杂的查询

2017-01-08 作者:crazypebbles

7.1 子查询的概念

    子查询是嵌套在另一个查询中的普通T-SQL查询,通常满足几个需求:

       将子查询分解为一系列的逻辑步骤,

       提供一个列表作为where子句和【in\exists\any\all】的目标,

       为父查询中的每个记录提供一个查询表。

     嵌套子查询有两个模板:

     select <select list>

     from <sometable>

     where <somecolumn>=(

               select <single column>

               from <sometable>

               where <condition that results in only one row returned>)

     或者

     select <select list>

     from <sometable>

     where <somecolumn> in (

              select<single column>

              from<sometable>

              where <condition>

         )

   

 

7.2 关联子查询

7.2.1 关联子查询的工作原理

    关联子查询与嵌套子查询不同之处在于信息传递是双向的,而不是单向的,内部查询用外部查询提供的信息运行,发之亦然。

7.2.2 在where子句中的关联子查询

7.2.3 处理null数据--isnull函数

     isnull(<experession to test>,<replacement value if null>)

7.3 派生表

    要创建派生表,需要做一下两件事情:

    将生成结果集的查询用小括号括起来,

    给查询结果取别名,这样它可以作为表被引用。

7.4 exists运算符

    exists运算符与in关键字很相似,但是使用exists并不是真正返回数据,而是根据是否存在数据满足查询中exists语句所建立的条件标准,返回简单的true或者false结果。

7.5 混合数据类型:cast和convert

   cast和convert都可以执行数据类型转换,在大部分情况下,两者执行同样的功能,不同的是convert还提供一些日期格式的转换,而cast没有这个功能。

7.6 merge命令

   merge命令是sqlserver2008中的新功能,可以将多个dml动作语句(insert,update,delete)组合成一个整体动作,从而提高性。

7.7 性能方面考虑

 对于外部查询的每行,子查询返回的值都一样:预查询,声明一个变量,然后选择需要的值赋给这个变量,这样子查询就只执行一次,而不是对外部表的每个记录都执行一次。

两个表都比较小(比如不超过10000个记录):子查询

根据所有条件,匹配只会返回一个值:子查询

根据所有条件,匹配只返回很少的值,在查找列上没有索引:子查询

查找表相对很小,但是基表很大:嵌套子查询,其次是连接,最后是关联

关联子查询和连接相比:连接,关联子查询比游标快,但是比其他都慢

派生表和其他可选择方法:派生表要产生很到的系统开销,慎用

exists和其他任何可选择方法:exists,不需要多次查询,一一旦找到一个匹配就结束

 

 

 

 

 

 

 

 

 

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 



相关推荐

  • 计算机编程入门教程java编程入门教程

      导读:java编程入门教程开适泛博想进修一门编程说话的读者、出有任何根底的Java入门读者、Java自学职员、从其他说话转向Java说话的读者、大中专院校的学生和社会培训学生。Java是一种通用的,并收的,强类型的,里向对象的编程说话(

  • 计算机 编程入门学什么? 给编程入门者的建议

    编程程序员,曾经对于这个职业我一直觉得很光荣无比程序员就是牛逼1.应学好的课程学好数据结构、C、C++等基础课程,可以使初学者对软件内部原理的理解更为深入。比如B树使我们能够更深入地了解数据库的存储,“快速排序”算法可以帮助我们很容易理解D

  • (转)linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门整理编写:007xiong原文:Hoyt等(一)目录介绍1)Linux程序设计入门--基础知识2)Linux程序设计入门--进程介绍3)Linux程序设计入门--文件操作4)Linux程序设计入门--时间概

  • linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门(一)目录介绍1)Linux程序设计入门--基础知识2)Linux程序设计入门--进程介绍3)Linux程序设计入门--文件操作4)Linux程序设计入门--时间概念5)Linux程序设计入门--信号处理6

  • linux操作系统下c语言编程入门1[2006年08月04日]

    linux操作系统下c语言编程入门1(一)目录介绍1)Linux程序设计入门--基础知识2)Linux程序设计入门--进程介绍3)Linux程序设计入门--文件操作4)Linux程序设计入门--时间概念5)Linux程序设计入门--信号处理

  • 学编程从什么入门|学游戏编程入门需要什么知识,那些软件适合入门

      p>本人没有一点编程基础,初中水平。现想学游戏编程不知如何下手,更不知道哪个编程软件通俗易懂适合初学着  有哪位人知道编程开始学什么的好,回答好的有加分。  没有最佳答案  c,java,vb需要有耐心慢慢学的  学历的话是无所谓

  • linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门(1)Linux_Unix2007-11-0122:06:21阅读54评论0字号:大中小订阅Linux程序设计入门--基础知识2)Linux程序设计入门--进程介绍3)Linux程序设计入门--文件操作4)

  • linux操作系统下c语言编程入门

    1)Linux程序设计入门--基础知识2)Linux程序设计入门--进程介绍3)Linux程序设计入门--文件操作4)Linux程序设计入门--时间概念5)Linux程序设计入门--信号处理6)Linux程序设计入门--消息管理7)Linu

  • Android手机摄像头编程入门(转载)

    第三十六讲:Android手机摄像头编程入门08Dec本讲内容:Android手机摄像头编程入门智能手机中的摄像头和普通手机中的摄像头最大的区别在于,智能机上的摄像头可以由程序员写程序控制,做一些有趣的应用譬如,画中画,做一些有用的应用譬如

  • C++编程入门系列之二十四(C++程序设计必知:多文件结构和编译预处理命令)

    上一讲给大家讲了常引用、常对象和对象的常成员,今天给大家讲下编程入门知识--多文件结构和编译预处理命令。一.C++程序的多文件结构之前给大家看了很多比较完整的C++程序的例子,大家可能发现了,它们的结构基本上可以分为三个部分:类的声明、类的

  • 鸡啄米:C++编程入门系列之目录和总结

    鸡啄米的这套C++编程入门教程到上一讲--C++编程入门系列之五十(异常处理)为止,就算圆满完成了。大家学到这里应该对C++的基础知识和程序设计都有了一定的认识了,以后要做的就是多练习多积累经验了。一.目录之前鸡啄米都是一节一节的讲,也没有

  • COM编程入门:深入COM服务器

    再谈QueryInterface()  前面讨论过QI()的实现,但还是有必要再看一看类工厂的QI(),因为它是一个很现实的例子,其中COM对象实现的不光是IUnknown。首先进行的是对ppv缓冲的有效性检查以及初始化。  HRESULT

  • VC6MFC应用程序编程入门

    原文地址:VC6MFC应用程序编程入门[转]作者:ebin第一篇预备知识1说在前面由于VC6及MFC的特点,我们许多人从标准C++学习到VC6MFC应用程序的编程学习的过度会有一个很大的夸跃,从而感到非常的吃力。究其原因之一:MFC类库设计

  • linux shell脚本编程入门学习教程

    linuxshell脚本编程入门学习教程第1集第2集第3集第4集第5集第6集第7集第8集第9集第10集第11集我要自学网51自学网视频教程性感美女C#教程access教程u盘启动盘制作工具我要自学网网页设计教程在线电影免费收看vfp教程vb

  • 编程入门指南 v1.0

    原文链接:编程入门指南v1.0作者:@萧井陌@Badger2015年2月18日v1.0更新前言如今编程成为了一个越来越重要的技能:作为设计师,懂一些编程可能会帮你更好地理解自己工作内容;作为创业者,技术创始人的身份则会让你的很多工作显得更容

  • linux操作系统下c语言编程入门(续)

    续前贴8)Linux程序设计入门--网络编程Linux系统的一个主要特点是他的网络功能非常强大。随着网络的日益普及,基于网络的应用也将越来越多。在这个网络时代,掌握了Linux的网络编程技术,将令每一个人处于不败之地,学习Linux的网络编

  • Visual C++ ADO数据库编程入门

    VisualC++ADO数据库编程入门ADO是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLEDB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极

  • [转载]Linux Shell编程入门

    原文地址:LinuxShell编程入门作者:beterhttp://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用

  • 游戏编程入门教程和建议

    游戏编程指利用计算机编程语言,如C编程语言、C++编程语言、汇编等,编制计算机、手机或游戏机上的游戏。目前流行的游戏编程语言为C++编程语言,目前流行的游戏编程接口为DirectX9.0,还有OpenGL、SDL(SimpleDirectM

  • ug8.0加工编程入门精通教学 UG nx8.0刀路加工教学

    ug教程ug曲面造型ug产品设计ug模具设计ug视频教学ug逆向ug钣金教学ug建模ug工程图教学ug分模ug装配教学ug视频ug机械设计ug运动仿真ug零件设计ug曲面设计ug加工编程ug拆铜公ug8.0加工编程入门精通教学UGnx8.0

返回
顶部