-
SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE
第一次看到这样的SQL语句,看不懂,其中用到了下面的不常用的聚集函数:GROUPING用于汇总数据用的运算符:ROLLUPSELECT CASE GROUPING(o.customerid) WHEN 0 THEN o.customerid ELSE '(Total)' END AS AllCustomersSummary, CASE GROUPING(od.orderid) WHEN 0 THEN od.orderid ELSE -1 END AS IndividualCustomerSummary, SUM(od.quantity*od.unitprice) AS price FROM Orders o, [Order Details] od WHERE&...
数据库操作教程 2022-09-23 20:21:35 -
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 -
MicrosoftSQLServer的版本区别及选择
对于新接触SQL数据库的人来说,类似这几个问题的有关于SQL版本的问题可以说不少,但又懒得去仔细研究。问题虽然简单,可是影响却不小...
数据库操作教程 2022-09-23 20:17:54 -
mssql@@ERROR使用
mssql错误日志文件存放位置:C:ProgramFilesMicrosoftSQLServerMSSQLLOG用记事本查看@@ERROR返回一个整数0为正常sysmessages存放的错误信息系统表(master)USEmasterselect*fromsysmessageswhereerror=错误编号可查询错误的原因触发器中可用RAISERROR(50009,16,10)抛出错误,其中50009就是错误编号,也可以是错误信息说明1610具体的行和列可自已定也可定义自定义的消息将自定义的消息添加到sysmessages。USEmasterEXECsp_addmessage50001,16,N'Percentageexpectsavaluebetween20and100.Pleasereexecutewithamoreappropriatevalue.','us_english',false,replaceEXECsp_addmessage50001,16,'员工代码没有找到','简体中文',false,replace5000116必须一致先添加us_english版的,再添加'简体...
数据库操作教程 2022-09-23 20:16:10 -
sql语句优化之用EXISTS替代IN、用NOTEXISTS替代NOTIN的语句
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率...
数据库操作教程 2022-09-23 20:15:10 -
TRUNCATE快速删除表中的所有数据
备注与DELETE语句相比,TRUNCATETABLE具有以下优点:所用的事务日志空间较少。DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一个条目...
数据库操作教程 2022-09-23 20:14:43 -
秒懂drop、truncate和delete的区别
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATETABLE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的...
数据库操作教程 2022-09-23 18:24:42 -
SQL删除语句DROP、TRUNCATE、DELETE的区别
DROP:DROPTABLEtest;删除表test,并释放空间,将test删除的一干二净。TRUNCATE:TRUNCATEtest;删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在...
数据库操作教程 2022-09-23 18:24:10 -
SQLServer免费版的安装以及使用SQLServerManagementStudio(SSMS)连接数据库的图文方法
一、SQLServer和SSMS的安装1.SQL的安装下载地址:SQLServer。进入下载地址选择Developer或者Express都可以...
数据库操作教程 2022-09-23 18:23:09 -
SQL Server中的约束(constraints)详解
目录一、约束的分类二、约束命名三、主键约束1、在创建表的时候创建主键约束。2、在已存在的表上创建主键约束3、复合主键的创建四、外键约束4.1、创建表的时候创建外键4.2、在已存在的表中添加一个外键4.3、级联动作五、唯一约束主键和唯一约束的区别:六、CHECK约束七、DEFAULT约束7.1在创建表时定义DEFAULT约束:7.2在已存在的表上添加DEFAULT约束:八、禁用约束8.1、在创建约束时,忽略检查之前的不满足数据8.2、临时禁用已存在的约束九、规则和默认值(已淘汰)9.1、规则9.2、默认值9.3确定哪个表和数据类型使用给定的规则或默认值十、系统视图一、约束的分类在SQLServer中,有3种不同类型的约束...
数据库操作教程 2022-09-23 18:22:44 -
详解SQLEXISTS运算符
EXISTS运算符EXISTS运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回True,否则返回False。SQLEXISTS语法SELECTcolumn_name(s)FROMtable_nameWHEREEXISTS(SELECTcolumn_nameFROMtable_nameWHEREcondition);演示数据库在本教程中,我们将使用RUNOOB样本数据库...
数据库操作教程 2022-09-23 18:22:35 -
SQL Server格式转换函数Cast、Convert介绍
CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能...
数据库操作教程 2022-09-23 18:22:33