-
简单触发器的使用献给SQL初学者
首先,啰嗦几句废话如下: (1)触发器(trigger)是个特殊的存储过程,它的执行并不需要我们去显式调用,而是由一些事件触发,这有点类似C#中的事件处理机制。当使用UPDATE,INSERT 或DELETE的一种或多种对指定的数据库的相关表进行操作时,会触发触发器...
数据库操作教程 2022-09-23 20:38:55 -
SQL中exists的使用方法
有一个查询如下:复制代码代码如下:SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=cu.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS指定一个子查询,检测行的存在...
数据库操作教程 2022-09-23 20:34:48 -
sqlserver局部变量的使用
A.使用DECLARE下例使用名为@find的局部变量检索所有姓以Ring开头的作者信息。复制代码代码如下:Usepubsdeclare@findvarchar(30)set@find='Ring%'selectau_lname,au_fname,phonefromauthorswhereau_lnamelike@find@find就是一个局部变量...
数据库操作教程 2022-09-23 20:32:23 -
MSSQLSERVER中的BETWEENAND的使用
資料CustomerIdNameRegisterDate1澎澎2007/1/500:00:002丁丁2007/1/600:00:003亞亞2007/1/700:00:00aspx頁面查詢條件:最小日期:[2007-01-06] 最大日期:[2007-01-06]使用的sql:SELECTID,Name,RegisterDateFROMCustomerWHERE(RegisterDateBETWEEN'2007-01-06'AND'2007-01-06')結果是傳回1筆:丁丁,符合我的預期但是如果丁丁的RegisterDate的時間不是00:00:00呢?如果資料是這樣IdNameRegisterDate1澎澎2007/1/500:00:002丁丁2007/1/604:37:003亞亞2007/1/700:00:00一樣的sqlSELECTID,Name,RegisterDateFROMCustomerWHERE(RegisterDateBETWEEN'2007-01-06'AND'2007-01-06')傳回來的是0筆 ...
数据库操作教程 2022-09-23 20:29:40 -
SQL中sp_executesql存储过程的使用帮助
摘自SQLserver帮助文档对大家优查询速度有帮助!建议使用sp_executesql而不要使用EXECUTE语句执行字符串。支持参数替换不仅使sp_executesql比EXECUTE更通用,而且还使sp_executesql更有效,因为它生成的执行计划更有可能被SQLServer重新使用...
数据库操作教程 2022-09-23 20:25:44 -
sqlserver中Case的使用方法(上下篇)第1/2页
复制代码代码如下:--简单Case函数CASEsexWHEN'1'THEN'男'WHEN'2'THEN'女'ELSE'其他'END--Case搜索函数CASEWHENsex='1'THEN'男'WHENsex='2'THEN'女'ELSE'其他'END这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式...
数据库操作教程 2022-09-23 20:24:22 -
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 -
SQLServer RANK() 排名函数的使用
本文主要介绍了SQLServerRANK()排名函数的使用,具体如下:--例子表数据SELECT*FROMtest;--统计分数SELECTname,SUM(achievement)achievementFROMtestGROUPBYname;--按统计分数做排行SELECTRANK()OVER(ORDERBYSUM(achievement)desc)排行,name,SUM(achievement)achievementFROMtestGROUPBYname;求助问答存储过程使用:USE[DB]GO/******Object:StoredProcedure[dbo].[sp_TodayJoinUser]ScriptDate:2021/1/2614:45:24******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:_Hey_Jude--Createdate:2021-01-26--Description:获取今日发表帮助/回复的新用户--...
数据库操作教程 2022-09-23 18:24:07 -
SQL窗口函数之取值窗口函数的使用
目录案例分析1.环比分析2.同比分析3.复合增长率4.不同产品最高和最低销售额示例表和脚本关于窗口函数的基础,请看文章SQL窗口函数取值窗口函数可以用于返回窗口内指定位置的数据行。常见的取值窗口函数如下:LAG函数可以返回窗口内当前行之前的第N行数据...
数据库操作教程 2022-09-23 18:23:44 -
SqlServer临时表和游标的使用小结
1.临时表临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除。临时表有局部和全局两种类型2者比较:局部临时表的名称以符号(#)打头仅对当前的用户连接是可见的当用户实例断开连接时被自动删除全局临时表的名称以符号(##)打头任何用户都是可见的当所有引用该表的用户断开连接时被自动删除实际上局部临时表在tempdb中是有唯一名称的例如我们用sa登陆一个查询分析器,再用sa登陆另一查询分析器在2个查询分析器我们都允许下面的语句:usepubsgoselect*into#temfromjobs分别为2个用户创建了2个局部临时表我们可以从下面的查询语句可以看到SELECT*FROM[tempdb].[dbo].[sysobjects]wherextype='u'判断临时表的存在性:ifobject_id('tempdb..#tem')isnotnullbeginprint'exists'endelsebeginprint'notexists'end特别提示:1...
数据库操作教程 2022-09-23 18:23:20 -
详解SQLServer中JSON_MODIFY的使用
SQLServer中JSON_MODIFY的使用IntroSQLServer从2016开始支持了一些JSON操作,最近的项目里也是好多地方字段直接存成了JSON,需要了解一下怎么在SQLServer中操作JSON.JSON支持适用于SQLServer2016及以上版本和AzureSQLDatabase。最近在项目中很多地方字段都是存一个JSON字符串,尤其是针对一些有很多不确定的属性的数据来说,这样的信息我们一般都放在一个Extra之类的字段保存一个JSON字符串,由于不确定性很大,很有可能会遇到要修改这个JSON字符串结构的问题,在修改JSON对象的某一个值和修改JSON的结构时都会用到JSON_MODIFY,今天就来介绍一下JSON_MODIFY的使用示例直接来看示例:--适用append在数组中追加元素PRINTJSON_MODIFY(@testJsonValue,'append$.skills','Azure');--无效用法,这样会把属性更新为字符串PRINTJSON_MODIFY(@testJsonValue,'$.skills','["C#","T-SQL","Azure...
数据库操作教程 2022-09-23 18:13:33 -
sqlserver创建临时表的使用说明
临时表产生:A:SELECTINTO和B:CREATETABLE+INSERTINTO1.A要比B快很多。但是A会锁定tempdb的SYSOBJECTS、SYSINDEXES、SYSCOLUMNS表,在多用户并发的时候,容易产生阻塞其他的进程...
数据库操作教程 2022-09-23 17:53:51