![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据语句整理
文章平均质量分 87
冬你个冬
这个作者很懒,什么都没留下…
展开
-
非原创,看到以后发现自己在很多时候都忽略了这个问题一些基本的SQL优化
1、子查询的用法子查询是一个 select 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。任何允许使用表达式的地方都可以使用子查询。子查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。但是在性能上,往往一个不合适的子查询用法会形成一个性能瓶颈。A、NOT IN、NOT EXISTS的相关子查询可以改用LEFT JOIN代替写法。比如:转载 2012-08-16 10:55:57 · 703 阅读 · 0 评论 -
(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解
【推荐】(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解——通过知识共享树立个人品牌。 一.简要介绍:系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程。从mssql6.5开始,存放在SQL Server的转载 2012-02-23 10:22:03 · 624 阅读 · 0 评论 -
18个小实例入门SQLServer XML查询
/*sql xml 入门: --by Erichu --http://blog.csdn.net/chinahuyong 1、xml: 能认识元素、属性和值 2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)转载 2012-02-23 10:26:05 · 443 阅读 · 0 评论 -
得到一个给定用户使用了的权限脚本
[推荐] 得到一个给定用户使用了的权限脚本——通过知识共享树立个人品牌。得到一个给定用户使用了的权限脚本,直接上代码,自己研究。 SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[p_user_permissions_script_get] -----转载 2012-02-23 10:24:35 · 513 阅读 · 0 评论 -
必须声明标量变量 "@tempTable"
MLGB微软的sqlserver有一个BUG,在使用表变量进行修改时,他会提醒你:必须声明标量变量 "@tempTable"。 首先/*create table test( id int identity(1,1), name varchar(10))insert into test select '222'union selec原创 2012-02-09 16:01:54 · 14211 阅读 · 2 评论 -
DBCC DBREINDEX重建索引提高SQL Server性能
DBCC DBREINDEX重建索引提高SQL Server性能大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据。索引可以分为簇索引和非簇索引,簇索引通过重排表中的数据来提高数据的访问速度,而非簇索引则通过维护表中的数据指针来提高数据的索引。1.索引的体系结构为什么要不断的维护表的转载 2012-02-07 15:13:04 · 634 阅读 · 0 评论 -
sqlserver数据表(计算列)表分区
--分区函数: [myPartFunc]CREATE TABLE [Calculate]( [id] [int] identity(1,1) , [name] [varchar](20) NULL, [val] [int] NULL, [cal] AS ([val]-(1)) PERSISTED)/*添加主键*//* 添加测试数据*/原创 2011-12-31 12:56:25 · 1678 阅读 · 0 评论 -
SQL_Server_2005_字符串函数(描述及实例)
表达式:是常量、变量、列或函数等与运算符的任意组合。以下参数中表达式类型是指表达式经运算后返回的值的类型字符串函数函数名称参数示例说明ascii(字符串表达式)select ascii('abc') 返回 97返回字符串中最左侧的字符的 ASCII码。char转载 2012-02-03 12:12:34 · 421 阅读 · 0 评论 -
讨论:GUID与int自增列的问题
近日,在CSDN社区中,看到有人在讨论:GUID与int自增列的问题,个人觉得很不错,故整理了一下大家的观点,以观后效!我没有真正的用过GUID类型。所以就不发言了。且看各位高手表演:楼主:谈谈GUID的问题!!!!!!!!!!!!一、主键用int自增列好,还是用GUID好二、如果用GUID做主键,是所有表都用GUID做主键,还是只需要将常用的表,如新闻系统中,只将文章表的转载 2012-02-03 12:29:13 · 852 阅读 · 0 评论 -
SQL_Server_2005_函数大全(描述及实例)
为了方便阅读,把函数分为四种类型,分别表述。SQL_Server_2005_字符串函数(描述及实例)函数名称:ascii、char、charindex、difference、left、right、len、lower、upper、ltrim、rtrim、patindex、reverse、space、str、stuff、substring、replace SQL_Server_2005_日转载 2012-02-03 12:11:33 · 437 阅读 · 0 评论 -
SQL Server 2005无日志文件附加数据库
公司网站运营两年多了,日志文件超级大,在重装系统的时候,为了省事,就没有备份日志文件,而且是没有分离就把日志文件给删掉了(下次一定要记得先分离再删日志文件)。结果造成数据库怎么都附加不上。出现错误。 解决办法:1、新建一个同名数据库。2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这转载 2012-02-03 12:09:03 · 589 阅读 · 0 评论 -
优化SQL查询:如何写出高性能SQL语句
1、 首先要搞明白什么叫执行计划?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。可见,执行计划并不是固定的,它是“个性化的”。产生一个转载 2012-02-03 12:15:51 · 486 阅读 · 0 评论 -
SQL_Server_2005_日期和时间函数(描述及实例)
表达式:是常量、变量、列或函数等与运算符的任意组合。以下参数中表达式类型是指表达式经运算后返回的值的类型日期和时间函数函数名称参数示例说明dateadd(日期部分,数字,日期)select dateadd(year,45,'1990-12-11')返回 2035-12-11 00:00:转载 2012-02-03 12:13:18 · 470 阅读 · 0 评论 -
SQL_Server_2005_数学函数(描述及实例)
表达式:是常量、变量、列或函数等与运算符的任意组合。以下参数中表达式类型是指表达式经运算后返回的值的类型数学函数函数名称参数示例说明abs(数值表达式)select abs(-23.4)返回23.4返回指定数值表达式的绝对值(正值)pi无参数转载 2012-02-03 12:10:53 · 343 阅读 · 0 评论 -
(SqlServer)批量清理指定数据库中所有数据
[推荐] (SqlServer)批量清理指定数据库中所有数据——通过知识共享树立个人品牌。在实际应用中,当我们准备把一个项目移交至客户手中使用时,我们需要把库中所有表先前的测试数据清空,以给客户一个干净的数据库,如果涉及的表很多,要一一的清空,不仅花费时间,还容易出错以及漏删,在这儿我提供了一个方法,可快捷有效的清空指定数据库所有表的数据。仅供参考,欢迎交流不同意见。转载 2012-02-23 10:23:06 · 493 阅读 · 0 评论 -
(SqlServer)分离所有用户数据库
[推荐](SqlServer)分离所有用户数据库——通过知识共享树立个人品牌。在实际应用中,有时我们需要一次性分离所有用户数据库,下面给出代码,供大家参考。 USE [master]GOIF EXISTS ( SELECT * FROM sys.objects WHERE [object_id] = OBJECT_ID(N'[dbo].[spDetachAl转载 2012-02-23 10:23:56 · 639 阅读 · 0 评论 -
公布一个以前写的随机数生成的方法
--随机数生成有一个麻烦的地方就是 随机数不能在自定义方法里面使用。所以只能放到一个视图里面去。create view view_rand as select rand() as Srand ;create function GenerateOrderID() returns varchar(50) asbegin declare @Orde原创 2012-08-03 17:38:45 · 1020 阅读 · 0 评论 -
SQL2005CTE做无标识重复记录删除,让你的sql看起来更简单
有些表设计没有标识,没有主键,删除起来一直是个麻烦的事情,而CTE的运用却让这件事情变得简单。create table CreDelete ( id int identity(1,1), name varchar(10))goinsert into CreDelete select '张三' as nameunion all select '王2'unio原创 2012-03-30 15:58:48 · 747 阅读 · 0 评论 -
代码列表 4.5:显示累计最消耗 CPU 时间的前50个运行计划
SELECT TOP 50 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time/qs.execution_count/1000. as [平均消耗CPU 时间(ms)], SUBSTRING(qt.text,qs.statement_start_offset/2+1,原创 2012-06-25 09:46:42 · 1147 阅读 · 0 评论 -
统计各连接对 tempdb 系统数据库的占用量
SELECT t1.session_id,(t1.internal_objects_alloc_page_count + t1.user_objects_alloc_page_count + task_alloc) as [保留或配置的总数据页数],(t1.internal_objects_dealloc_page_count + t1.user_objects_dealloc_page_co原创 2012-06-25 09:45:45 · 630 阅读 · 0 评论 -
关于Sqlserver窗口函数over的用法
个人觉得,sqlserver在2005以后推出窗口函数 Over完全是一个创举,他让很多的复杂的问题变得简单了。既然是用法,我就不说明其他的东西,举一些例子就好了:create table OverTableTest( id int identity(1,1),--ID Val int, --值 typ int, --类型)godeclare @cou intset @co原创 2012-06-25 14:47:31 · 11189 阅读 · 0 评论 -
SQL中的CTE,查询所有的子集(子集的子集)比游标效率高
今天闲来无事,就说说Sqlserver中CTE的用法其实CTE我更多的可以把他当作是一种临时表,他方便你进行循环性的操作。但是他比临时表使用起来要方便一些:首先我们举个例子:要查询一个栏目表 但是这个栏目表的数据库设计的时候使用的这样的一个结构id M_name parentID1 name_1 02 name_2 13 name_3原创 2010-12-06 16:24:00 · 3074 阅读 · 0 评论 -
关于Sqlserver的换行和空格
最近一直纠结于Sqlserver的换行和回车的处理,想了很多办法都不行。最后没有办法,百度了下: 网上解答的原话: 中英文空格的ASCII值为32,而对于控制字符,制表符、换行符和回车符分别是是char(9)、char(10)和char(13)。 于是select REPLACE(replace(value,CHAR(32),''),CHAR(13)+CHAR(10),'原创 2012-06-12 11:46:46 · 3761 阅读 · 0 评论 -
sqlserver时间函数
Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.0003. date原创 2012-05-16 09:56:07 · 776 阅读 · 0 评论 -
sqlserver 东八时区的英文时间转换
今天新浪微博的东东,发现其CreateAt创建时间居然为 英文的时间,并且里面包含有英文。纠结了。时间格式如下:Wed May 23 16:04:54 +0800 2012Wed May 23 16:04:33 +0800 2012Wed May 23 16:03:18 +0800 2012Wed May 23 16:01:47 +0800 2012Wed May 23 1原创 2012-05-29 14:47:46 · 9757 阅读 · 0 评论 -
关于位数补0的简单方法
最近遇到好几个人都在问:周,我的数字位数是未知的,我想把它变成固定的位数,应该怎么弄啊。........其实很简答的,一个right就可以了呀。 select right('000'+cast(1 as varchar(3)),3)还是用得少了,现在写个地方,希望筒子们以后方便用到。原创 2012-03-13 15:58:11 · 662 阅读 · 0 评论 -
判断临时表是否存在(临时表的删除)
以下是在网上搜索的一个说明:临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。我写这篇文章的主原创 2012-03-28 11:00:35 · 10249 阅读 · 4 评论 -
分析Sqlserver与access数据库sql语法的10大差异
做项目时,最常用的数据库即Sqlserver与Access数据库莫属了!但使用会经常发现很多SQL执行的问题。这里整理出之间的差异,做个十大差异的总结。 ACCESS结构简单容易处理,而且也能满足多数的网站程序要求,也是初学者的试牛刀。 ACCESS是小型数据库,既然是小型就有他根本的局限性: 1)、数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降!转载 2012-03-01 08:57:31 · 747 阅读 · 0 评论 -
SQL注射技术总结文档
写在前面: 最近看了不少老外写的东西,看时间相同的技术当铺比我们早了好长一段时间,比如ASP的SQL注射国外02年就出现了,PHP的也在04年出现,而我们一直到05年才接触到,看看比人家晚了多少时间呀!为了尽快了解最新的技术动态,我坚持看E文资料,有的很长,有的很短,本人时间有限,不可能一一翻译过来,只能挑选自己认为比较适合大家看的东西翻译过来,希望你能从中学到东西。转载 2012-02-23 10:29:04 · 478 阅读 · 0 评论 -
Sqlserver 虚拟日志文件剖析(转)
每一个数据库至少有一个日志文件,无论为事务日志定义多个少物理文件,SQL Server均视为一个连续的文件。该事务日志文件实际上由一系列的虚拟日志文件VLF来管理。虚拟日志文件的大小由SQL Server的总日志文件的大小决定。虚拟日志文件的物理结构图如下所示:当该日志文件收缩时,日志文件末端的未使用的VLF可以被删除。在SQL server2000中,日志文件仅可以从日志文件的尾部收转载 2012-01-30 15:20:47 · 1604 阅读 · 0 评论 -
CTE+操作性语句(删除无主键的相同的多行数据)+CTE操作技巧
删除一个无主键的多行的数据,首先我们不能保证它的唯一性,这是一个比较麻烦的地方。首先我想到了使用RowNumber的方式来,然后想到了CTE,CTE他本身就是一视图,操作起来更能节省资源CTE以前只是用到他本身的查询语句今天遇到一个问题看表create table deleteSomeTable( [name] varchar(20), [va] varchar(原创 2011-10-12 17:04:18 · 697 阅读 · 0 评论 -
数据库表分区
create database myteston/*SQL SERVER 数据库表分区由三个步骤来完成:1.创建分区函数2.创建分区架构3.对表进行分区*/--1.0创建表分区函数create partition function原创 2011-10-13 11:22:46 · 601 阅读 · 0 评论 -
游标的简单使用
create table tableA ( tid int not null, mid int not null ) go insert into tableA values(2,2) insert into tableA values(3,3) insert into tableA values(4,4) insert into tableA values(5,5) create ta原创 2009-06-11 17:33:00 · 600 阅读 · 0 评论 -
collate chinese_prc_ci_as null
collate chinese_prc_ci_as null 是什么意思我们在create table时经常会碰到这样的语句,例如:CorpName nvarchar(10) collate chinese_prc_ci_as null,那它到底是什么意思呢?不妨看看下面: 语法COLLATE ::= { Windows_collation_name }原创 2009-06-08 16:38:00 · 676 阅读 · 0 评论 -
SQL 查询汉字的首字母
create function fun_getPY(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@PY nvarchar(4000) set @PY= while len(@str)>0 begin set @word=left转载 2009-06-08 16:24:00 · 1190 阅读 · 0 评论 -
使用SQL删除数据库里面用户创建表
DECLARE @TableName varchar(100) --定义存储表名称DECLARE staff_cursor CURSOR FOR --定义游标进行操作 SELECT [name] FROM sys.sysobjects WHERE type=U -- 打开游标 OPEN staff_cursor -- 提取记录数据原创 2009-06-04 11:36:00 · 533 阅读 · 0 评论 -
SQL2005 查询表字段信息(是否标示列 字段名 主键 字段类型 长度 小数位 允许空 默认值 说明)
在你想要查询的数据库里面进行执行:/* 版本号: 2009-5-31 作 者: 叮叮猫 适用环境: SQL2005或2005以上 适用情景: 例如你是进入公司的,或者这个数据库你已经很久没有看过了忘记里面字段的用途, 但是你又必须对这个公司的数据里面的数据库不甚了解 你想了解这个数据库的字段的一些说明 你就需要使用他了。当然前提条件是他的字段里面 有这个字段的相关原创 2009-05-27 09:31:00 · 4761 阅读 · 0 评论 -
往表里面添加字段,测试最大添加多少列
create database TabTestgouse TabTestgocreate table tableTest( file1 varchar(10))goselect * from tableTestbegin declare @count int,@strSQL varchar(100) set @count=2 BEGI原创 2009-07-22 13:12:00 · 560 阅读 · 0 评论 -
SQL2005 库级触发器的运用
/*---------------------------------版本号: 2009-5-20作 者 : 叮叮猫起作用 只针对对数据的内表的增加 删除修改但是当你对数据库内数据的操作 是不能进行捕获的----------------------------*/USE testDBGO USE [testDB]GOcreate table [DatabaseLog] --创建一张表进行查询(原创 2009-05-13 10:45:00 · 536 阅读 · 0 评论 -
SQL数据库中的常用数据类型对应数字号整理
类型 数字代号 运用umiqueidentifier 36 GUIDint 56 ID号 运用于小型数据库的主键和整形的储存varchar 167 字原创 2009-05-12 11:08:00 · 3118 阅读 · 2 评论