-
SQL复合查询条件(AND,OR,NOT)对NULL值的处理方法
NULL值影响查询条件的结果,并且结果很微妙。 以下是SQL中AND,OR,NOT的真值表...
数据库操作教程 2022-09-23 20:24:31 -
IN&EXISTS与NOTIN&NOTEXISTS的优化原则小结
1.EXISTS的执行流程select*fromt1whereexists(selectnullfromt2wherey=x)可以理解为:复制代码代码如下:forxin(select*fromt1)loopif(exists(selectnullfromt2wherey=x.x)thenOUTPUTTHERECORDendifendloop对于in和exists的性能区别:如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了另外IN时不对NULL进行处理,如:select1fromdualwherenullin(0,1,2,null)结果为空...
数据库操作教程 2022-09-23 20:21:01 -
SQLServer优化SQL语句in和notin的替代方案
但是用IN的SQL性能总是比较低的,从SQL执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:SQL试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程...
数据库操作教程 2022-09-23 20:16:38 -
sql语句优化之用EXISTS替代IN、用NOTEXISTS替代NOTIN的语句
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率...
数据库操作教程 2022-09-23 20:15:10 -
SqlServer2012使用IP地址登录服务器的配置图文教程
最近在使用NFineBase框架+c#做一个系统的时候,在使用sqlserver2012连接数据库的时候,遇到几个问题。一.就是在本地或者远程连接别人的数据库的时候,以ip地址作为服务器名称以SQLServer身份验证(即输入登录名和密码)的方式登录数据库总会出现错误比如说会提示一下错误:用户'sa'登录失败,该用户与可信SQLServer连接无关联...
数据库操作教程 2022-09-23 18:21:51 -
SQLServer2012sa用户登录错误18456的解决方法
最近想研究下SQLSERVER2012Enterprise版本的数据库,听说功能很强大。我是在win7上安装的,安装的过程很顺利,我在用“Windows身份验证”时,一切OK,但是在用SA用户登录数据库的时候出现如下的错误:之前装过SQL7.0,SQL2000,SQL2005版的、2008版的,好像没有这复杂啊,百度了下找到了一个解决方案,归纳一下:这个错误一般由三个原因引起,登录方式设置错误、sa设置错误和IP方式是否开启,下面依次解决这三个问题...
数据库操作教程 2022-09-23 18:19:54 -
SQLServer2012使用Offset/FetchNext实现分页数据查询
在SqlServer2012之前,实现分页主要是使用ROW_NUMBER(),在SQLServer2012,可以使用Offset...Rows FetchNext...Rowsonly的方式去实现分页数据查询。select[column1],[column2]...,[columnN]from[tableName]orderby[columnM]offset(pageIndex-1)*pageSizerowsfetchnextpageSizerowsonly上面代码中,column1,column2...columnN表示实现需要查询的列,tableName是表名,columnM是需要排序的列名,pageIndex是页码,pageSize是每页数据的大小,实际中一般是先计算(pageIndex-1)*pageSize的结果,然后在sql里直接使用具体的结果(数字)例如数据库中有T_Student表,数据如下: 假如需要查询第3页的数据(由于数据少,这里假设每页数据是2条,即pageSize=2),那么SQL语句如下:select[Id],[Name],[Studen...
数据库操作教程 2022-09-23 18:19:32 -
SQLServer2012 开窗函数
废话不多说了,直接给大家贴代码了,具体代码如下所示:--开窗函数:在结果集的基础上进一步处理(聚合操作)--Over函数,添加一个字段显示最大年龄SELECT*,MAX(StuAge)OVER()MaxStuAgeFROMdbo.Student;--Over函数,添加一个字段显示总人数SELECT*,COUNT(StuID)OVER()StuCountFROMdbo...
数据库操作教程 2022-09-23 18:17:46 -
SQLServer2012多表连接查询功能实例代码
废话不多说了,直接给大家贴代码了,具体代码如下所示:--交叉连接产生笛卡尔值(X*Y)SELECT*FROMStudentcrossJoindbo.ClassInfo--另外一种写法SELECT*FROMStudent,ClassInfo--内连接(Inner可以省略)SELECT*FROMStudentJOINdbo...
数据库操作教程 2022-09-23 18:15:06 -
SQLSERVER2012新增函数之字符串函数FORMAT详解
前言本文主要介绍的是使用FORMAT函数将日期/时间和数字值格式化为识别区域设置的字符串。下面话不多说,来看详细的介绍吧...
数据库操作教程 2022-09-23 18:14:38 -
SqlServer2012完全卸载方法只需8步轻松卸载
轻松通过八步实现SqlServer2012完全卸载,供大家参考,具体内容如下第一步,在控制面板里面找到程序——卸载程序这一项,打开之后就会是这样的了第二步,经过第一步打开卸载程序后,在里面找到MicrosoftSQLserver2012(64-bit)这一项,可以通过右上角搜索框寻找第三步,点击右键,卸载,此时安装程序启动,开始着手删除SQL了第四步,选择实例选择需要删除的内容,在这里有选择实例——选择功能——删除规则——准备删除——删除进度——完成,点击下一步,进行删除,下面截图里面有这些每一步的过程第五步,当到了准备删除时候,点击下一步,由于SQLserver2012真的很大,删除进度这一步很慢,大概需要半个小时时间,只需要慢慢等待就行。删除进度有点慢当都完成后点击摘要日志当这一步也完成了,那么SQLserver2012已经卸载完成了一大半,现在只需要将C盘里面的一些文件删除和删除注册表就行第六步,删除C盘里面的文件,C:ProgramFilesMicrosoftSQLServer这个文件夹删除和C:ProgramFiles(x86)里面找到MicrosoftSQLServer这个...
数据库操作教程 2022-09-23 18:14:35