随笔分类 -  SQL SERVER

微软数据库
摘要:锁的分类锁的类别有两种分法:1、从数据库系统的角度看:分为独占锁(即排它锁),共享锁和更新锁MS SQL Server使用一下资源锁形式锁模式描述共享(S)用于不更改或不更新数据的操作(只读操作),如select更新(U)用于可更新的资源中,。防止当多个回话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。排它(X)用于数据库修改操作,例如Insert、update或delete。确保不会同时统一资源多重更新。意向锁,用于建立锁的层次结构,意向锁的类型为:意向共享(IS)、意向排他(IX)以及意向排他共享(SIX)。架构锁 在执行依赖于表架构的操作时使用,架构所的类型为:架构修改(S 阅读全文
posted @ 2012-01-14 23:53 指尖流淌 阅读(492) 评论(1) 推荐(0) 编辑
摘要:/* 连接数 */select connectnum=count(distinct net_address)-1 from master..sysprocesses/* 返回一组有关计算机和有关 SQL Server 可用资源及其已占用资源的有用杂项信息 */select * from sys.dm_os_sys_info/* 从操作系统返回内存信息 */select * from sys.dm_os_sys_memory/* 返回有关调用进程的虚拟地址空间中的页范围的信息 */select * from sys.dm_os_virtual_address_dump/* 命令提供了SQL Se 阅读全文
posted @ 2012-01-14 23:36 指尖流淌 阅读(1012) 评论(0) 推荐(0) 编辑
摘要:select row_number() over(排序条件,必不可少),字段名(也可以是*) from 表名select row_number() over(order by id asc),id,name from table1我们可以应用此进行简单的分页。例如:select * from test我们查询3行数据 SELECT A.* FROM ( SELECT ROW_NUMBER() over (order by [编号] desc) as RowNumber,* FROM test ) A WHERE RowNumber > 2 and R... 阅读全文
posted @ 2012-01-14 23:25 指尖流淌 阅读(6804) 评论(0) 推荐(0) 编辑
摘要:在做报表时,经常需要将数据表中的行转列,或者列转行,如果不知道方法,你会觉得通过SQL语句来实现非常难。这里,我将使用Pivot和unpivot来实现看似复杂的功能。这个功能在SQL2005及以上版本才有。MSDN解释:可以使用PIVOT和UNPIVOT关系运算符将表值表达式更改为另一个表。PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出所需的任何其余列值执行聚合。Unpivot与pivot执行相反的操作,将表值表达式的列转换为列值,但是在实际应用中,有些聚合之后的数据很难进行拆分。所以,unpivot并非pivot的逆过程。pivot提供的语法 阅读全文
posted @ 2012-01-13 12:18 指尖流淌 阅读(777) 评论(0) 推荐(0) 编辑
摘要:众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考。假设我们有一个表Student,包括以下字段与数据:drop table student; create table student(id int primary key,name nvarchar2(50) not null,score number not null);录入数据insert into student values(1,'Aaron',78);insert into student values(2,'Bill',76);insert into student va 阅读全文
posted @ 2012-01-12 12:42 指尖流淌 阅读(564) 评论(0) 推荐(0) 编辑
摘要:case具有两种格式。简单case函数和case搜索函数,也就是说既能实现多条件分析,又能实现语句搜索。点滴---简单的case函数,即多条件分析case sex when '1' then '男' when '0' then '女' else '其他' end---case 查询功能case when sex='1' then '男' when sex='0' then '女' else '其他' end 这两种方式,可以实现相同的功 阅读全文
posted @ 2012-01-12 10:38 指尖流淌 阅读(3357) 评论(0) 推荐(1) 编辑
摘要:文章转自:http://www.cnblogs.com/CareySon/archive/2011/05/18/2049727.html引言在前两篇文章中,对于单表查询和多表查询的概念做出了详细的介绍,在本篇文章中会主要介绍聚合函数的使用和数据的分组.简介简单的说,聚合函数是按照一定的规则将多行(Row)数据汇总成一行的函数。对数据进行汇总后,可以按照特定的列(column)将所汇总的其他列进行分组(Group by),并可以在再次给定条件进行筛选(Having).聚合函数将多行数据进行汇总的概念可以简单用下图解释:简单聚合函数简单聚合函数是那些拥有很直观将多行(Row)汇总为一行(Row)计 阅读全文
posted @ 2012-01-02 22:57 指尖流淌 阅读(530) 评论(0) 推荐(1) 编辑
摘要:本篇文章中,主要说明SQL中各种连接以及使用范围,以及更进一步的理解关系代数法和关系演算法对在同一条件查询的不同思路。多表连接简介 在关系数据库中,一个查询往往会涉及多个表,因为很少有数据库只有一张表,而如果大多查询只涉及到一个表的,那么那个表也往往低于第三范式,存在大量冗余和异常。 因为连接(join)就是一种把多个表连接成一个表的重要手段。比如简单两个表连接学生表和班级表,如图:进行连接后如图:笛卡尔积 迪科尔积在SQL中的实现方式即使交叉连接。所有的连接方式都会先生成一个临时笛卡尔积表,笛卡尔积是关系代数里面的一个概念,表示两个表中的每一行数据任意组合,上图中两个表连接即为笛卡尔积(交. 阅读全文
posted @ 2012-01-02 18:36 指尖流淌 阅读(704) 评论(0) 推荐(0) 编辑
摘要:SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句。但对于大多数开发者来说,使用SQL查询数据库并没有一个抽象的过程和一个合理的步骤,这很可能会使在写一些特定的SQL查询语言来解决特定问题时被"卡"住,本系列文章主要讲述SQL查询时一些基本理论,以及写查询语句的抽象思路。sql查询简介 SQL语言起源于1970年E.J.Codd发表的关系数据库理论,所以SQL是为了关系数据库服务的。而对于SQL查询是指从数据库中取得数据的子集,这句话貌似听着有些晦涩是吧,下面通过几张图简单的说一下: 假如一个数据库中只有一个表,再假如所有数据如下图而对于子 阅读全文
posted @ 2012-01-01 23:04 指尖流淌 阅读(802) 评论(0) 推荐(0) 编辑
摘要:文章转自:http://www.cnblogs.com/CareySon/archive/2010/02/16/1668803.html简介: 数据库范式在数据库设计中的地位一直很暧昧,教科书中对于范式倒是都给出了学术性的定义,但在实际引用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步动第一范式实现到第四范式。范式的目标: 应用数据库范式可以带来许多好处的,但是重要的好处归结为三点: 1、减少数据冗余(这是主要的好处,其他好处都是由此而附带的) 2、消除异常(插入异常、更新异常、删除异常) 3、让数据组织的更加和谐 但剑是双刃的,应用数据 阅读全文
posted @ 2012-01-01 20:23 指尖流淌 阅读(486) 评论(0) 推荐(0) 编辑
摘要:索引的定义SQL Server的索引值是对数据库中一个或者多个列的值进行排序的结构。索引几个特性:1)索引可以提高数据的访问速度只有在适当的位置建立索引,就能大幅度提高,实际上,您可以把索引理解为一种特殊目录。微软的SQL SERVER提供了两种索引:聚集索引和非聚集索引。 其实,我们的汉语字典的正文本身就是一个聚集索引,比如,我们要查"安"字,就会很自然的翻开字典的前几页,因为"安"的拼音是"an",而按照拼音排序汉字的字典是以英文字母"a"开头并以"z"结尾的,那么"安" 阅读全文
posted @ 2011-12-30 22:56 指尖流淌 阅读(730) 评论(0) 推荐(0) 编辑
摘要:这个存储过程用来数据的分页,里面构造的一个函数实现这个功能;if object_id('fenye','p') is not null/*判断是否存在fenye这个存储过程*/ drop proc fenye GO CREATE PROCEDURE [dbo].[fenye] @currentpage int=1,/*记录当前的页数,初始值为1*/@count int=10, /*每一个页面所显示的数据量*/@tablename varchar(20),/*所查询的表的名字*/@colunm varchar(20) /*表中查询的字段*/AS declare @ 阅读全文
posted @ 2011-11-16 09:18 指尖流淌 阅读(414) 评论(0) 推荐(0) 编辑
摘要:转载于http://www.cnblogs.com/Bytime/archive/2011/10/27/2226004.html下面是全部代码:class SqliteHelper { private string connStr = ""; public SqliteHelper(string dbName, bool isFullPath) { if (isFullPath) { connStr = @"Data Source=" + dbName + ";Initial Catalog=sqlite;Integrated S... 阅读全文
posted @ 2011-10-28 08:33 指尖流淌 阅读(894) 评论(0) 推荐(0) 编辑