
sqlserver
劝君更尽一杯酒
这个作者很懒,什么都没留下…
展开
-
数据库索引B+Tree原理
转载:https://blog.youkuaiyun.com/qq_36098284/article/details/80178336B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树...转载 2019-01-11 14:28:25 · 2832 阅读 · 0 评论 -
CUBE 和 ROLLUP 之间的具体区别
ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集。下面是 CUBE 和 ROLLUP 之间的具体区别:CUBE 生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。ROLLUP 优点: (1)ROLLUP 返回单个结果集,而 COMPUTE BY 返回多个结果集,而转载 2014-11-17 14:28:22 · 575 阅读 · 0 评论 -
sql substring ,charindex,取字符串 分隔符为斜杠
declare @str varchar(100)set @str = 'sdad115/kkk'--select charindex('/',@str)select substring(@str,1,(case charindex('/',@str)when 0 then len(@str)else (charindex('/',@str)-1)end))原创 2013-12-27 17:11:43 · 4407 阅读 · 0 评论 -
sql 视图创建索引
在视图上创建索引需要三个条件:一、视图必须绑定到架构。要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击右键,属性,选中“绑定到架构”。CREATE view V_NAME WITH SCHEMABINDING --指定这个AS SELECT xx,xx原创 2013-12-23 08:08:47 · 1106 阅读 · 0 评论 -
SQL Server 索引和视图
SQL Server 索引和视图Ø 索引 1、 什么是索引 索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。 2、 索引分类 数据库中索引主要分为两类:聚集索引和非聚集索引。SQL Server 2005还提供了唯一索引、索引视图、全文索引、xml索引等等。聚集索引和非聚集索引是数据库引转载 2013-12-23 08:06:24 · 968 阅读 · 0 评论 -
sql语句优化
性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化。常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果。3)少用子查询4)视图嵌套不要过深,一般视转载 2013-12-19 13:37:13 · 1052 阅读 · 0 评论 -
delete from table 和drop table的区别
delete table 与delete from table 效果一样delete table删除表的数据,表仍然存在,仍可以对表进行操作。同样,还有一个TRUNCATE TABLE TABLENAME语句,也是删除数据,表仍然存在。drop table,是从数据库中删除表。删除后,表结构不在存在,无法再对该表进行任何操作。原创 2013-12-12 19:20:34 · 3776 阅读 · 0 评论 -
SQLServer函数 left()、charindex()、stuff()的使用
1、left()LEFT (, ) 返回character_expression 左起 integer_expression 个字符。 [sql] view plaincopyselect left('abcdef',3) [sql] view plaincopy--abc转载 2013-12-05 20:08:07 · 1307 阅读 · 0 评论 -
WITH (NOLOCK)
WITH (NOLOCK)缺点: 1.会产生脏读 2.只适用与select查询语句优点: 1.有些文件说,加了WITH (NOLOCK)的SQL查询效率可以增加33%。 2.可以用于inner join 语句脏读: 一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据回到修改之前,这两个不同的结果转载 2013-12-05 08:13:47 · 859 阅读 · 0 评论 -
sqlserver如何快速查找使用了某个字段的所有存储过程
当一个系统中使用了很多的表,并且存在大量的存储过程,当数据库中的某个表删除了某个字段,那么相应的存储过程也需要改动,但是我们不知道哪些存储过程使用了该字段,那我们该怎么办?我们可以从之前的文档一个一个查找使用了该字段的存储过程,但是这样效率很多,而且还容易出错,我们可以使用下面的方法来查找所有使用了某个字段的存储过程。如下的函数:[sql] GO SELECT obj.N转载 2013-12-11 08:33:56 · 2267 阅读 · 0 评论 -
sqlserver技术内幕<二> 表运算符之apply
SQL SERVER 2005新增了APPLY运算符。该运算符有些类似于表连接(JOIN),但是功能却有不同。APPLY的右表表达式可以引用左输入中的列。在JOIN运算的时候,连接的2个表之间没有优先级,但是使用APPLY时,就像先计算左表输入,然后为左输入中的每一行计算一次右输入。 APPLY分为CROSS APPLY和OUTER APPLY。CROSS APPLY的外部(左)行应转载 2014-10-21 13:18:50 · 613 阅读 · 0 评论 -
sqlserver技术内幕<二> 表运算符之join
left join,inner join,right join,cross join,full join的区别原创 2014-10-21 07:39:16 · 500 阅读 · 0 评论 -
PLSQL Developer连接远程Oracle数据库
要连接远程数据库,传统的一定可行的方法是在本地装一个oracle,然后使用“Network Configuration Assistant”配置,之后用PL/SQL Dev连接,因为需要在本地安装数据库,所以不是很方便 下面我介绍另外一种方法1。首先去oracle官网下载三个需要的压缩包具体地址是:http://www.oracle.com/technetwork/转载 2013-12-11 08:31:03 · 1005 阅读 · 0 评论 -
使用JTDS连接sqlserver数据库
首先下载JTDS(http://sourceforge.net/projects/jtds/files/jtds/),这里有JTDS的各种版本,起初下的是jtds-1.3.1,但在使用中总出现ClassNotFound:net.sourceforge.jtds.jdbc.Driver 错误,后来下载了1.2.7版本,解决了这个问题import java.sql.Conn原创 2015-11-12 11:29:40 · 38929 阅读 · 0 评论 -
ER图转换关系模式
转换一般遵循如下原则:1.一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。例如在我们的例子中,学生实体可以转换为如下关系模式,其中学号为学生关系的码:学生(学号,姓名,出生日期,所在系,年级,平均成绩) 同样,性别、宿舍、班级、档案材料、教师、课程、教室、教科书都分别转换为一个关系模式。2.一个联系转化为一个关系模式,与该联系相转载 2015-08-17 11:18:02 · 15996 阅读 · 0 评论 -
sqlserver技术内幕<二> 表运算符之pivot
在Sql Server的帮助文档中,对Pivot函数是这样解释的:可以使用 PIVOT 和 UNPIVOT 关系运算符对表值表达式进行操作以获得另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来转换表值表达式,并在必要时对最终输出中所需的任何其余的列值执行聚合.对第一次使用PIVOT函数的朋友来说,这样的解释很难让大家理解,下面编辑用PIVOT函数来实现一个行转列转载 2014-10-21 16:23:36 · 998 阅读 · 0 评论 -
SQL SERVER2008 日志收缩代码
-- Truncate the log by changing the database recovery model to SIMPLE.ALTER DATABASE bajerp SET RECOVERY SIMPLE;GO--Shrink the truncated log file to 1 MB.DBCC SHRINKFILE ('LXFRAME_Log', 1);原创 2014-12-29 17:00:37 · 731 阅读 · 0 评论 -
sql 字段左边去掉0
select replace(ltrim(replace(字段,'0',' ')),' ','0') FROM dbo.USERINFO 先把0替换为空格,再去掉左边的空格,再把空格替换为o原创 2014-12-12 16:10:07 · 21524 阅读 · 1 评论 -
交叉表动态列
create table #test(name nvarchar(20),type nvarchar(20),category nvarchar(20))--select * from #testinsert into #test(name,type,category) values ('n1','t1','c1');insert into #test(name,type,cat原创 2014-12-16 09:23:57 · 822 阅读 · 0 评论 -
Group by 分组后排序,组内过滤
oracle分析函数十分强大,我们只要掌握这些方法,更直接的说法就是知道这些分析函数的作用就能完成很多工作。下边贴出这些函数,及简单应用。其中我想对lag()和lead()函数坐下说明:lag()本身是延后的意思也就是延后出现某列的数,而lead()有引领、领先的意思也就是提前几行显示某列数据RANK()dense_rank()【语法】RANK ( ) OVER ( [qu转载 2014-11-24 07:59:52 · 6067 阅读 · 0 评论 -
sqlserver 技术内幕<一>
SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定某一子句转载 2014-10-20 10:40:27 · 612 阅读 · 0 评论 -
win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
由于工作需要,今天要在电脑上安装SQL Server 2005。以往的项目都是使用Oracle,MS的数据库还真的没怎么用过,安装Oracle已经轻车熟路,但装SQL Server好像还有点小麻烦,所以记录下来,以留备用。-------------------------------------------------------------------------------------转载 2013-11-15 15:17:25 · 779 阅读 · 0 评论 -
jdk,tomcat,sqlserver环境变量配置
1.安装JDK,配置其环境变量:(笔者所用版本为1.6版)(1)从官方网http://java.sun.com/jdk下载安装文件。(2)安装下载下来的安装包,按照提示安装成功。(3)配置JDK的环境变量: 此处假设JDK安装路径为:C:\Program Files\Java\jdk1.6.0_12 A.我的电脑-->属性-->高级-->环境变量 B.配原创 2013-10-29 10:22:21 · 2194 阅读 · 0 评论 -
JAVA用jdbc连接SQLServer2005
一:配置第一步:在网上下载SQLServer2005的驱动包 http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=C47053EB-3B64-4794-950D-81E1EC91C1BA,下载的是一个网页,不用担心,放心下载,下载完成后打开网页,点击下载第二步:下载完成sqljdbc_1.2.2828.100_chs转载 2013-10-29 10:18:14 · 3523 阅读 · 0 评论 -
sql server多表连接
sql数据库多表连接用 INNER JOIN语法联接多个表建记录集多表联接建立记录集是十分有用的,因为某些情况下,我们需要把数字数据类型显示为相应的文本名称,这就遇到了多表联接建立记录集的问题。比如作一个会员注册系统,共有五个表,会员信息数据表member、会员身份表MemberIdentity、会员权限表MemberLevel、会员类别表MemberSort和会员婚姻状况表Wed转载 2013-09-28 10:08:23 · 1324 阅读 · 0 评论 -
CREATE TABLE ON [PRIMARY]
ON [PRIMARY]是什么意思CREATE TABLE [dbo].[Users] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [TrueName] [char] (20) NOT NULL , [RegName] [char] (20) NOT NULL , [Pwd] [char] (10) NOT NULL , [Sex原创 2013-09-28 10:09:49 · 5060 阅读 · 0 评论 -
SQL Server触发器创建、删除、修改、查看示例
一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。 二﹕ SQL Server为每个触发器都创建了两个专用表﹕Inserted表和Deleted表。这两个表由系统来维护﹐它们存在于内存中而不是在数据库中。这两个表的结构总是与被该触发器作用的表的结构相同。触发器执行转载 2013-10-12 13:04:53 · 718 阅读 · 0 评论 -
视图和表之间的区别和联系
区别:1、视图是已经编译好的sql语句;而表不是。2、视图没有实际的物理记录;而表有。3、视图是窗口;表是内容4、标是用物理空间而视图不占用物理空间,视图只是逻辑概念的存在;表可以修改,但视图只能有创建的语句来修改。5、表是内模式,视图是外模式。6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些sql语句的集合。从安全的角度转载 2013-10-12 10:19:16 · 1829 阅读 · 0 评论 -
sqlserver 中的 substring函数
返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。语法SUBSTRING ( expression , start , length )参数expression是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚转载 2013-10-11 09:44:56 · 2519 阅读 · 0 评论 -
SQL Server 2005 函数大全
SQL Server 2005 函数大全 字符串函数 1日期和时间函数 3日期部分 4数学函数 5数据类型转换函数 6日期类型数据转换为字符数据类型的日期格式的部分样式表 7系统函数 10排名函数 10聚合函数 11 字符串函数表达式转载 2013-10-11 10:37:07 · 787 阅读 · 0 评论 -
删除表中的重复记录
如何按字段删除重复记录?一张表里面以两个字段为唯一字段,当几条记录的这两个字段完全相同时,需要删除重复项,如下表a b c d1 2 3 41 5 3 51 2 7 9以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1 2 3 4 或者第三条记录1 2 7 9即如下结果:a b c d1 2 3 41 5 3 5或a b转载 2013-10-09 16:49:00 · 789 阅读 · 0 评论 -
SQL基本语句集合
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind转载 2013-10-09 13:38:36 · 765 阅读 · 0 评论 -
UNIQUE 约束和 PRIMARY KEY 约束
可以使用 UNIQUE 约束确保在非主键列中不输入重复的值。尽管 UNIQUE 约束和 PRIMARY KEY 约束都强制唯一性,但想要强制一列或多列组合(不是主键)的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束。可以对一个表定义多个 UNIQUE 约束,但只能定义一个 PRIMARY KEY 约束。而且,UNIQUE 约束允许 NULL 值,这一点与 PRIMA原创 2013-09-28 10:09:12 · 1248 阅读 · 0 评论 -
聚集索引和非聚集索引
聚集索引的区别 聚集索引:物理存储按照索引排序 非聚集索引:物理存储不按照索引排序优势与缺点聚集索引:插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入),查询数据比非聚集数据的速度快原创 2013-09-28 10:12:38 · 757 阅读 · 0 评论 -
case when like
数据库:SqlServerSql代码 --create table-- create table table1 ( column1 nvarchar(200), column2 nvarchar(200) ); --insert data-- insert into table1(column1,column转载 2013-10-16 10:05:17 · 4916 阅读 · 1 评论 -
ODBC, OLE DB, ADO
ODBC, OLE DB, ADO一、ODBCODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用 SQL来完成其大部分任务。ODBC本身原创 2013-09-29 08:39:49 · 756 阅读 · 0 评论 -
SQL数据库还原时错误:操作系统返回了错误 '5(拒绝访问)'的解决办法
SQL数据库还原时错误:操作系统返回了错误 '5(拒绝访问)'的解决办法解决SQL Server 2005 还原数据库错误:System.Data.SqlClient.SqlError: 在对 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BusinessDB.mdf' 尝试 'RestoreContainer::原创 2013-09-29 08:23:11 · 26264 阅读 · 1 评论 -
SQL所有存储过程查看
--1、查看所有存储过程与函数 1.1. 查看数据库的树结构,在可编程性------存储过程可查看所有的存储函数,再选中存储名,按图操作可看存储的内容。 1.2 也可通过命令查看select * from sys.all_objects select * from sys.procedures exec sp_stored_pro原创 2013-09-28 10:18:21 · 13749 阅读 · 0 评论 -
sqlserver SET....ON命令
SET ANSI_NULLS ON比较空值时必须小心。比较行为取决于 SET ANSI_NULLS 选项的设置。当 SET ANSI_NULLS 为 ON 时,如果比较中有一个或多个表达式为 NULL,则既不输出 TRUE 也不输出 FALSE,而是输出 UNKNOWN。SET QUOTED_IDENTIFIER ON当 SET QUOTED_IDENTIFIER 为 ON 时,标识原创 2013-09-28 10:16:23 · 4082 阅读 · 0 评论 -
SQL Server存储过程Return、output参数及使用技巧
1、不带输入参数的简单存储过程if object_id('up_user') is not nulldrop proc up_usergocreate proc up_userasset nocount ondelcare @name varchar(10)beginselect @name=uname from user原创 2013-09-28 10:15:35 · 1762 阅读 · 0 评论