
DataBase
文章平均质量分 85
五维思考
善作者不必善成,善始者不必善终!
展开
-
博客搬家公告
新地址 https://www.cnblogs.com/zhaoshujie/原创 2019-10-30 10:39:07 · 477 阅读 · 1 评论 -
SQL Server 字符串函数
============================Access SQL中处理字符串的函数============================Asc 返回字母的Acsii值,select Asc("A")返回65 Chr 将ascii值转换到字符 select chr(65)返回"A" Format 格式化字符串,Select Format(now(),'y原创 2017-03-20 22:28:22 · 563 阅读 · 0 评论 -
SQL Server 关于CROSS APPLY 和 OUTER APPLY应用
先看看语法: {cross|outer} apply再让我们了解一下apply运算涉及的两个步骤:A1:把右表表达式()应用到左表()输入的行A2:添加外部行; 使用apply就像是先计算左输入,让后为左输入中的每一行计算一次右输入。(这一句很重要,可能会不理解,但要先记住,后面会有详细的说明)最后结合以上两个步骤说明cross apply和outer apply的区别转载 2017-05-15 23:16:11 · 389 阅读 · 0 评论 -
SQL Server审计功能入门:SQL Server审核 (SQL Server Audit)
介绍 Audit是SQL Server 2008之后才有的功能,它能告诉你“谁什么时候做了什么事情”。具体是指审核SQL Server 数据库引擎实例或单独的数据库涉及到跟踪和记录数据库引擎中发生的事件。它的底层是基于扩展事件(Extented Event),所以其性能和灵活性相对较好。审核数据可以输出到审核文件、Windows安全日志和应用程序日志。 Audit都需要转载 2017-05-13 12:23:44 · 3685 阅读 · 0 评论 -
SQL Server 数据库对象命名参考
引言编码规范是一个优秀程序员的必备素质,然而,有很多人非常注重程序中变量、方法、类的命名,却忽视了同样重要的数据库对象命名。这篇文章结合许多技术文章和资料,以及我自己的开发经验,对数据库对象的命名规则提出了一点建议,希望能为大家提供一些参考。NOTE:虽然这篇文章名为“数据库对象命名参考”,实际上,在这篇文章中我不仅介绍了数据库命名的规则,连带讲述了在数据库设计与开发时所需要注意的几个问题转载 2017-03-26 15:46:51 · 1805 阅读 · 0 评论 -
ADO.NET连接字符串大全
说明ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Sybase,Informix,Ingres,Mimer SQL,Lightbase,PostgreSQL,Paradox,DNS,Firebird,Excel ,Text,DBF / FoxPro,AS/400 (iSeries),Exc转载 2017-04-10 20:15:38 · 943 阅读 · 0 评论 -
SQL Server CTE 递归查询全解
最近工作中遇到了一个问题,需要根据保存的流程数据,构建流程图。数据库中保持的流程数据是树形结构的,表结构及数据如下图:仔细观察表结构,会发现其树形结构的特点:FFIRSTNODE:标记是否为根节点FSTABLENAME:标记来源单据名称FSID:标记来源单据分录IDFTTABLENAME :标记目标单据名称FTID:标记目标单据分录ID图中的流程为:销售合同--转载 2017-02-04 20:09:19 · 26213 阅读 · 0 评论 -
SQL Server 行列相互转换命令:PIVOT和UNPIVOT使用详解
一、使用PIVOT和UNPIVOT命令的SQL Server版本要求1.数据库的最低版本要求为SQL Server 2005 或更高。2.必须将数据库的兼容级别设置为90 或更高。3.查看我的数据库版本及兼容级别。如果不知道怎么看数据库版本或兼容级别的话可以在SQL Server Management Studio新建一个查询窗口输入:print @@version转载 2017-03-04 13:46:04 · 2873 阅读 · 0 评论 -
SQL Server 一些查询技巧
--1.【行列转换】 --列转行 USE tempdb GO IF (OBJECT_ID('DEPT') IS NOT NULL) DROP TABLE DEPT CREATE TABLE DEPT(NAME VARCHAR(5),COL1 INT,COL2 INT,COL3 INT,COL4 INT,COL5 INT,COL6 INT) IN原创 2017-02-21 11:19:46 · 1168 阅读 · 0 评论 -
SQL Server深入理解“锁”机制
相比于 SQL Server 2005(比如快照隔离和改进的锁与死锁监视),SQL Server 2008 并没有在锁的行为和特性上做出任何重大改变。SQL Server 2008 引入的一个主要新特性是在表级控制锁升级行为的能力。新的LOCK_ESCALATION表选项允许你启用或禁用表级锁升级。这个新特性能够减少锁竞争并且改善并发性,特别是对于分区表(partitioned tables)原创 2017-02-26 09:14:15 · 5724 阅读 · 2 评论 -
SQL Server 事务与隔离级别实例讲解
上班途中,你在一处ATM机前停了下来。正当你在敲入密码的时候,你的一位家人也正在镇上的另一处TAM机上输入密码。你打算从某个还有500元余额的账户上转出400元,而你的家人想从同一账户取走300元。倘若没有隔离级别的存在,麻烦就要来了......SQL Server 实现了6个隔离级别来防止并发情况下,类似上面例子中企图并发的访问或修改同一数据时问题的发生。本文将带你体验全部6个隔离级别。转载 2017-02-26 09:36:19 · 650 阅读 · 0 评论 -
合并多行查询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数
示例表 tb 数据如下id value—————1 aa1 bb2 aaa2 bbb2 ccc第一种SELECT id, [val]=( SELECT [value] +',' FROM tb AS b WHERE b.id = a.id转载 2017-02-03 16:18:08 · 396 阅读 · 1 评论 -
Access与SQL Server 语法差异
序号简述Access语法SqlServer语法Oracle语法解决方案01系统时间Now(),Date()GETDATE()SYSDATEGetSysTimeStr02连接字符串&+||原创 2017-02-03 10:53:58 · 3821 阅读 · 0 评论 -
SQL Server 提高执行效率的16种方法
1.尽量不要在where中包含子查询;关于时间的查询,尽量不要写成:where to_char(dif_date,’yyyy-mm-dd’)=to_char(’2007-07-01′,’yyyy-mm-dd’);2.在过滤条件中,可以过滤掉最大数量记录的条件必须放在where子句的末尾;FROM 子句中写在最后的表(基础表,driving table)将被最先处原创 2017-03-02 22:28:26 · 2074 阅读 · 0 评论 -
SQL Server 执行计划的理解
要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TABLE Person( Id in转载 2017-03-02 21:53:48 · 341 阅读 · 0 评论 -
SQL Server递归查询
1、既然要谈到sql,数据库表是必须的 2、数据结构 3、获取某个节点的所有子节点 传统的写法(sql2000) 很麻烦,暂且就不写了 来看看CTE的写法 CREATE PROC sp_getTreeById(@TreeId int)ASBEGIN WITH cteTree转载 2017-02-21 21:01:51 · 913 阅读 · 1 评论 -
使用 EXISTS 代替 IN 和 inner join
在使用Exists时,如果能正确使用,有时会提高查询速度: 1,使用Exists代替inner join 2,使用Exists代替 in 1,使用Exists代替inner join例子: 在一般写sql语句时通常会遇到如下语句: 两个表连接时,取一个表的数据,一般的写法通过关联查询(inner join):转载 2017-01-21 22:17:20 · 4998 阅读 · 1 评论 -
SQL Server关于WITH CUBE、WITH ROLLUP和GROUPING使用
通过查看sql 2005的帮助文档找到了CUBE 和 ROLLUP 之间的具体区别:CUBE 生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。再看看对grouping的解释: 当行由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 1;当行不由 CUBE 或 ROLLUP 运算符添加时,该函数将转载 2017-05-16 09:52:21 · 1992 阅读 · 0 评论 -
SQL Server sp_executesql介绍和使用
execute相信大家都用的用熟了,简写为exec,除了用来执行存储过程,一般都用来执行动态Sql sp_executesql,sql2005中引入的新的系统存储过程,也是用来处理动态sql的, 如: exec sp_executesql @sql, N'@count int out,@id varchar(20)', @cou out ,@id @sql为拼成的动态sql N'@co转载 2017-05-20 21:02:07 · 1262 阅读 · 0 评论 -
SQL经典问题:找出连续日期及连续的天数
create table tmptable(rq datetime)goinsert tmptable values('2010.1.1')insert tmptable values('2010.1.2')insert tmptable values('2010.1.3')insert tmptable values('2010.1.6')insert tmptable value...转载 2018-08-15 08:41:30 · 16185 阅读 · 1 评论 -
SQL Server 2012/2016/2017 新增函数
/************************************************************** SQL Server 2012 新增的函数 ***************************************************************/ -- CONCAT ( string_value1, string_value...转载 2018-04-15 14:03:19 · 1042 阅读 · 0 评论 -
SQL Server 日期函数大全
一、统计语句1、--统计当前【>当天00点以后的数据】SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC2、--统计本周SELECT * FROM 表 WHERE datediff(week,[date...转载 2018-03-01 17:04:18 · 480 阅读 · 0 评论 -
SQL Server利用XML找字符串相同部分
DECLARE @a NVARCHAR(100)= '01,02,04,05,07';DECLARE @b NVARCHAR(100)= '01,03,04,05,06';WITH a1 AS ( SELECT CONVERT(XML, '' + REPLACE(@a, ',', '') + '') cxml原创 2018-02-06 09:23:07 · 541 阅读 · 0 评论 -
SQL Server XML数据解析
很久就想写总结一下SQL Server解析XML数据的常用方法了,下面就给出一些示例,有事没事,你也可以参照着示例自己动手尝试着实现一下自己的需求。示例1:从XML中解析数据到表变量DECLARE @ItemMessage XML DECLARE @ItemTable TABLE(ItemNumber INT PRIMARY KEY,ItemDescription转载 2018-02-05 21:15:03 · 1102 阅读 · 0 评论 -
SQL SERVER FOR XML
SQLSERVER输出XML;根据FOR XML语句设置输出模式:RAW 、AUTO 、EXPLICIT 、PATH;模式确定产生的XML的形状。不推荐使用FOR XML选项的XMLDATA指令。如果是RAW 和AUTO模式,请使用XSD生成。在EXPLICIT模式下,没有XMLDATA指令的替代项。后续版本的Microsoft SQL Server将删除该功能。下面为每种模式的示例详转载 2018-02-05 20:54:21 · 482 阅读 · 0 评论 -
SQL Server解析XML数据的方法详解
本文实例讲述了SQL Server解析XML数据的方法。分享给大家供大家参考,具体如下:--5.读取XML--下面为多种方法从XML中读取EMAILDECLARE @x XMLSELECT @x = ' dongsheng@xxyy.com 678945546 36575 '-- 方法1SELECT @x.value('data(/Peopl转载 2018-02-05 20:39:30 · 7972 阅读 · 0 评论 -
SQL Server窗口函数:ROWS与RANGE
几乎每次我展示SQL Server里的窗口时,人们都非常有兴趣知道,当你定义你的窗口(指定的一组行)时,ROWS与RANGE选项之间的区别。因此在今天的文章里我想给你展示下这些选项的区别,对于你的分析计算意味着什么。ROWS与RANGE之间的区别当你用OVER()子句进行你的分析计算来打开你的窗口,你也可以在窗口里看到的,通过ROWS与RANGE选项来限制你的行数。来看下面的T-SQL语句: 1转载 2018-01-18 19:31:35 · 1579 阅读 · 0 评论 -
将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:/Temp.xls -c -q -S"servername" -U"sa" -P""'参数:S 是SQL服务器名;U是用户;P是密码EXEC master..xp_转载 2018-02-02 16:07:54 · 549 阅读 · 0 评论 -
何谓SQL Server参数嗅探
大家听到“嗅探”这个词应该会觉得跟黑客肯定有关系吧,使用工具嗅探一下参数,然后截获,脱裤o(∩_∩)o 。事实上,我觉得大家太敏感了,其实这篇文章跟数据库安全没有什么关系,实际上跟数据库性能调优有关相信大家有泡SQLSERVER论坛的话不多不少应该都会见过“参数嗅探”这几个字这里有三篇帖子都是讲述参数嗅探的http://social.msdn.microsoft.c转载 2018-01-26 12:03:30 · 736 阅读 · 0 评论 -
SQL Server 2008 数据库回滚到某个时间点
数据库回滚到时间的的前提: 事务日志完整,数据库在完整恢复模式下进行过一次完整备份,数据库没有进行过还原操作(惨痛教训)。当数据库误操作时,切记冷静,不然问题就是滚雪球, 在不做下一步错误前 可观看该大神的方法:http://blog.youkuaiyun.com/dba_huangzj/article/details/8491327不成功的原因 :1.数据库一直处于简单恢复模式 ,进转载 2018-02-02 12:52:37 · 3230 阅读 · 0 评论 -
SQL Server 2008以上误操作数据库恢复方法——日志尾部备份
原文出处:http://blog.youkuaiyun.com/dba_huangzj/article/details/8491327问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了。人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题。 遇到这种情况,一般都是没有做备转载 2018-02-02 12:45:36 · 364 阅读 · 0 评论 -
SQL Server 中master..spt_values的应用
今天在做数据分析报表的时候遇到一个这样的问题。表结构如下。部门编码、部门名称、部门人员ID(中间用逗号分割)我想通过和人员表链接,查询出一个新的数据集,查询出的结果集格式如下:人员信息(ID或者姓名)、部门编码、部门名称 以前都是通过程序遍历拆分表字段组成新的集合字段,然后在结合SQL语句查询出结果集,但是这个报表要求只能通过SQL语句实现,以前转载 2017-03-10 17:04:33 · 1050 阅读 · 0 评论 -
SQL Server 排名函数( ROW_NUMBER、RANK、DENSE_RANK、NTILE )
排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别。我们新建一张Order表并添加一些初始数据方便我们查看效果。 CREATE TABLE [dbo].[Order]( [ID] [int] IDENTITY(1,1) NOT NULL, [UserId] [int] NOT NULL, [TotalPrice] [int] NOT NU...转载 2017-03-05 23:08:22 · 2283 阅读 · 0 评论 -
SQL SERVER与C#数据类型对照表
分类SQL SERVER类型类型说明C#类型精确数字bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。Int64int从 -2^31 (-2,原创 2017-08-27 20:11:31 · 384 阅读 · 0 评论 -
SQL Server 一句Sql把表结构全部查询出来
--一句Sql把表结构全部查询出来SELECT表名 = Case When A.colorder=1 Then D.name Else '' End,表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End,字段序号 = A.colorder,字段名 = A.name,字段说明 = isnull(G.[value转载 2017-06-11 20:49:15 · 560 阅读 · 0 评论 -
MySQL命令行查询乱码解决办法
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8,utf8可以兼容世界上所有字符 第一步:找到安装mysql的目录找到 my.ini 文件;转载 2017-02-19 21:29:29 · 581 阅读 · 0 评论 -
SQL Server 查询性能优化——覆盖索引
覆盖索引又可以称为索引覆盖。 解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖。 解释二: 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。 解释三: 是非聚集组合索引的一种形式,它包括在查询转载 2017-02-18 14:08:52 · 817 阅读 · 0 评论 -
SQL Server 优化存储过程的七种方法
优化存储过程有很多种方法,下面介绍最常用的7种。1.使用SET NOCOUNT ON选项我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数。使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量。2.使用确定的Schema在使用表,存储过程,函数等等时,最好加上确定的Schema。这样可以使SQL Server直接转载 2015-03-22 11:26:46 · 442 阅读 · 0 评论 -
SQL2005分页存储过程(支持多表联接)
Code/********************************************************* * 作 用:数据分页(完整SQL分页存储过程(支持多表联接))* 作 者:齐李平* 创建日期:2009-03-23* 使用说明: 1、单表调用方法:EXEC proc_DataPagination @tblName = 'ipa'转载 2015-03-20 18:34:08 · 467 阅读 · 0 评论 -
分隔符分解字符串
如果有一个字符串 eg: "sun,star,moon,clouds",想要在MS SQL中根据给定的分隔符','把这个字符串分解成各个元素[sun] [star] [moon] [clouds],如何实现呢?为此,创建一个Function,代码如下:CREATE FUNCTION [dbo].[Split_StrByDelimiter](@String VARCHAR(8000),转载 2015-03-19 16:11:56 · 665 阅读 · 0 评论