铭轩同学

铭轩,为自己代言!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 7 ··· 10 下一页

2015年5月5日

摘要: --这是查询所有表的信息select * from sysobjects where xtype='U'; --这是查询表的数量select count(*) from sysobjects where xtype='U' --这是快速查询所有表中的数据量SELECT a.name , ... 阅读全文
posted @ 2015-05-05 17:20 铭轩同学 阅读(203) 评论(0) 推荐(0) 编辑

2015年5月4日

摘要: 为了最简单地说明问题,我特地设计了一张这样的表。 一、GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值。 典型的表现就是跟在SELECT后面的列,如果没有使用聚合函数,必须出现在GROUP BY子句后面。 如下面这个查询报错... 阅读全文
posted @ 2015-05-04 20:18 铭轩同学 阅读(337) 评论(0) 推荐(0) 编辑

摘要: 操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。 表:Person_1魏国人物 表:Person_2蜀国人物 A、Union形成并集 Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集... 阅读全文
posted @ 2015-05-04 20:17 铭轩同学 阅读(302) 评论(0) 推荐(0) 编辑

摘要: 嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。 嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可... 阅读全文
posted @ 2015-05-04 20:16 铭轩同学 阅读(1038) 评论(0) 推荐(0) 编辑

摘要: 一、关联子查询-查日期最新列 前天在工作中遇到一条非常有用的SQL语句,想了好久愣是没搞出来。今天将这个问题模拟出来:先看表 需求是,对于每个人,仅显示时间最新的那一条记录。 答案如下:select * from record as a where not exists (select n... 阅读全文
posted @ 2015-05-04 20:15 铭轩同学 阅读(241) 评论(0) 推荐(0) 编辑

摘要: 一、连接查询简介 连接查询中用来连接连个表的条件称为连接条件或连接谓词。其形式为:[].[]. 常见的连接运算符包括 1、比较运算符:=、>、=、].[].and[].。二、连接按照结果集分类 1、内连接:表中的行互相连接。结果集的行数等于每个表满足条件的行数的乘积,参与连接的表示平等的... 阅读全文
posted @ 2015-05-04 20:14 铭轩同学 阅读(308) 评论(0) 推荐(0) 编辑

摘要: 表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化。因此如果查询语句不需要索引,就应该删除无用的索引以提高效率。一、INSERT语句 1、基本插入语句 insert用于向表中输入数据,其具体的语法结构如下: INSERT INTO 表名称 VALUES (值1, 值2,....) ... 阅读全文
posted @ 2015-05-04 20:12 铭轩同学 阅读(259) 评论(0) 推荐(0) 编辑

摘要: 一、语法结构select select_list[ into new_table ]from table_source[ where search_condition ][ group by broup_by_expression ][ having search_condition ][order... 阅读全文
posted @ 2015-05-04 20:11 铭轩同学 阅读(419) 评论(0) 推荐(0) 编辑

摘要: UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用。UDF和存储过程的主要区别在于返回结果的方式。 使用UDF时可传入参数,但不可传出参数。输出参数的概念被更为健壮的返回值取代了。和系统函数一样,可以返回标量值,这个值的... 阅读全文
posted @ 2015-05-04 18:12 铭轩同学 阅读(239) 评论(0) 推荐(0) 编辑

摘要: 存储过程(stored procedure)有时也称sproc,它是真正的脚本,更准确地说,它是批处理(batch),但都不是很确切,它存储与数据库而不是单独的文件中。 存储过程中有输入参数,输出参数以及返回值等。一、创建存储过程 创建存储过程的方法和创建数据库中任何其他对象一样,除了他使用... 阅读全文
posted @ 2015-05-04 18:11 铭轩同学 阅读(332) 评论(0) 推荐(0) 编辑

摘要: 游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能。 在性能上,游标会迟更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量。 用一个比喻来说明为什么游标会占用更多的资源。当你从ATM机取款的时候,是一次取1000的效率更高呢,还是10次100呢?既... 阅读全文
posted @ 2015-05-04 18:08 铭轩同学 阅读(172) 评论(0) 推荐(0) 编辑

摘要: CASE简介 基于列的逻辑表达式,其实就是CASE表达式.可以用在SELECT,UPDATE,DELETE,SET以及IN,WHERE,ORDER BY和HAVING子句之后。由于这里讲的是T-SQL查询,所以只说到CASE表达式在SELECT子句和ORDER BY子句中的使用。 CASE表达式... 阅读全文
posted @ 2015-05-04 18:07 铭轩同学 阅读(275) 评论(0) 推荐(0) 编辑

摘要: 公用表表达式(CTE) 在编写T-SQL代码时,往往需要临时存储某些结果集。前面我们已经广泛使用和介绍了两种临时存储结果集的方法:临时表和表变量。除此之外,还可以使用公用表表达式的方法。公用表表达式(Common Table Expression)是SQL Server2005版本的引入的一个特性... 阅读全文
posted @ 2015-05-04 18:06 铭轩同学 阅读(225) 评论(0) 推荐(0) 编辑

摘要: T-SQL变量 变量的种类: 在T-SQL中,变量按生存范围可以分为全局变量(Global Variable)和局部变量(Local Variable) 1、全局变量是由系统定义的,在整个SQL Server实例内都能访问到的变量,全部变量以@@开头,用户只能访问,不能赋值。 2、局部变量由... 阅读全文
posted @ 2015-05-04 18:05 铭轩同学 阅读(267) 评论(0) 推荐(0) 编辑

摘要: 运行时生成语句 1、用EXECUTE执行动态命令 EXECUTE命令可以执行存储过程、函数和动态的字符串命令。注意此语句的作用正如前面在介绍批处理时,如果批中的第一条语句是"EXECUTE存储过程",则可以省略关键字"EXECUTE"。 语法:{ EXEC | EXECUTE } ... 阅读全文
posted @ 2015-05-04 18:04 铭轩同学 阅读(239) 评论(0) 推荐(0) 编辑

摘要: 运算符 1、算术运算符算术运算符说明+加法-减法*乘法/除法%取模,两个整数相除后的余数 2、位运算符位运算符说明&(与、and)按位逻辑与运算|(或、OR)按位逻辑或运算~(非、NOT)按位逻辑非运算(互斥OR)按位互斥运算3、比较运算符比较运算符说明>大于=等于>=大于等于不等于!=不等于!... 阅读全文
posted @ 2015-05-04 18:02 铭轩同学 阅读(304) 评论(0) 推荐(0) 编辑

摘要: 1、USE语句 USE语句用于设置当前数据库,如果没有USE语句,那么就由执行脚本的任何用户来确定执行脚本时当前数据库是正确的。如果只是一个通用脚本,那么省去USE语句实际上可能更有益。通常,如果在脚本中命名特定于数据库的表(非系统表),那么需要使用USE命令。如果脚本用于修改一个特定的数据库... 阅读全文
posted @ 2015-05-04 18:01 铭轩同学 阅读(378) 评论(0) 推荐(0) 编辑

摘要: CREATE 语句 CREATE语句的开头都是一样的,然后是特定的细节。 CREATE 一、CREATE DATABASE CREATE DATABASE命令用于创建一个数据库,创建一个数据库的最基本语法如下所示: CREATE DATABASE CREATE DATABASE的完... 阅读全文
posted @ 2015-05-04 17:59 铭轩同学 阅读(3559) 评论(0) 推荐(0) 编辑

摘要: 控制流语句 批处理: 一个批处理段是由一个或者多个语句组成的一个批处理,之所以叫批处理是因为所有语句一次性被提交到一个SQL实例。 批处理是分批提交到SQL Server示例,因此在不同的批处理里局部变量不可访问。 在不同批处理中,流程控制语句不能跨批处理。 如果想让多个语... 阅读全文
posted @ 2015-05-04 17:58 铭轩同学 阅读(319) 评论(0) 推荐(0) 编辑

摘要: 一、标识符 在T-SQL语言中,对SQLServer数据库及其数据对象(比如表、索引、视图、存储过程、触发器等)需要以名称来进行命名并加以区分,这些名称就称为标识符。 通常情况下,SQLServer数据库、数据库以及各种数据对象都应该有一个标识符,但对于某些对象来说,比如约束,标识符是可选的。推... 阅读全文
posted @ 2015-05-04 17:57 铭轩同学 阅读(329) 评论(0) 推荐(0) 编辑

2015年4月14日

摘要: 一、窗口函数的作用 窗口函数是对一组值进行操作,不需要使用GROUP BY 子句对数据进行分组,还能够在同一行中同时返回基础行的列和聚合列。窗口函数,基础列和聚合列的查询都非常简单。二、语法格式 窗口函数的语法格式如下:OVER([PARTITION BY value_expression,..... 阅读全文
posted @ 2015-04-14 16:54 铭轩同学 阅读(231) 评论(0) 推荐(0) 编辑

摘要: SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。 1、创建测试数据 创建表 --创建表,包含Xml类型列 CREATE TABLE Person ( Id int, ... 阅读全文
posted @ 2015-04-14 16:53 铭轩同学 阅读(400) 评论(0) 推荐(0) 编辑

摘要: 一、使用SQL Server全文搜索配置 要使用SQL Server的全文搜索服务,需要进行如下配置。 1、开启全文搜索服务: 2、开启数据库的全文索引功能: --开启数据库的全文搜索功能 EXEC sp_fulltext_database 'enable'; 3、创建全文索引目录:... 阅读全文
posted @ 2015-04-14 16:50 铭轩同学 阅读(334) 评论(0) 推荐(0) 编辑

摘要: 触发器可以做很多事情,但也会带来很多问题。使用它的技巧在于在适当的时候使用,而不要在不适当的时候使用它们。 触发器的一些常见用途如下:弹性参照完整性:实现很多DRI不能实现的操作(例如,跨数据库或服务器的参照完整性以及很多复杂的关系类型)。创建神级跟踪:这意味写出的记录不仅跟踪大多数当前的数据... 阅读全文
posted @ 2015-04-14 16:49 铭轩同学 阅读(250) 评论(0) 推荐(0) 编辑

摘要: 锁是一种防止在某对象执行动作的一个进程与已在该对象上执行的其他进行相冲突的机制。也就是说,如果有其他人在操作某个对象,那么你旧不能在该对象上进行操作。你能否执行操作取决于其他用户正在进行的操作。通过锁可以防止的问题 锁可以解决以下4种主要问题:脏读非重复性读取幻读丢失更新 1、脏读 如果一... 阅读全文
posted @ 2015-04-14 16:48 铭轩同学 阅读(146) 评论(0) 推荐(0) 编辑

摘要: 事务全部是关于原子性的。原子性的概念是指可以把一些事情当做一个单元来看待。从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合。 为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SQL Server中的每一条SELECT、INSERT、UPD... 阅读全文
posted @ 2015-04-14 16:47 铭轩同学 阅读(172) 评论(0) 推荐(0) 编辑

摘要: 一、表变量 表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是... 阅读全文
posted @ 2015-04-14 16:46 铭轩同学 阅读(188) 评论(0) 推荐(0) 编辑

摘要: SQL Server系统存储过程也是好几百个,算了,还是写几个常用的。 1、sp_help 查询表的信息 执行存储过程: sp_help Person 显示结果如下: 妈了个B,有了这张图,你还不懂怎么看一张表有那些信息,那哥以后都不学SQL Server了。另外,还有约束,存储过... 阅读全文
posted @ 2015-04-14 16:43 铭轩同学 阅读(512) 评论(0) 推荐(0) 编辑

摘要: CAST和CONVERT都经常被使用。特别提取出来作为一篇文章,方便查找。 CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。 既然CONVERT包括了CAST的所有功能,而且CON... 阅读全文
posted @ 2015-04-14 16:40 铭轩同学 阅读(202) 评论(0) 推荐(0) 编辑

摘要: SQL Server系统视图非常的多,因此不可能一个一个地写,我最近一直在想,对于数据库的系统视图应该如何学,但是看了一下目录之后,我呆了,我觉得每个写一次,可能都要花费1个星期的时间,如果对每一个返回的列的作用都了解清楚,那不得了,你至少需要3个月的时间。后来我想了一个,不行,这种学习方法是错... 阅读全文
posted @ 2015-04-14 16:39 铭轩同学 阅读(155) 评论(0) 推荐(0) 编辑

摘要: 批处理简介 批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。 为了将一个脚本分为多个批处理,可使用GO语句。 GO语句的特点: GO语句必须自成一行,只有注释可以再同一行上。 ... 阅读全文
posted @ 2015-04-14 16:38 铭轩同学 阅读(229) 评论(0) 推荐(0) 编辑

摘要: 分区表简介 分区表是SQL Server2005新引入的概念,这个特性在逻辑上将一个表在物理上分为多个部分。(即它允许将一个表存储在不同的物理磁盘里)。在SQL Server2005之前,分区表实际上是分布式视图,也就是多个表做union操作。 分区表在逻辑上是一个表,而物理上是多个表。在用户的... 阅读全文
posted @ 2015-04-14 16:37 铭轩同学 阅读(188) 评论(0) 推荐(0) 编辑

摘要: 文件和文件组简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQL Server通过管理逻辑上的文件组的方式来管理文件。 SQL Server通过文件组对数据文件进行管理。我们看到的逻辑数据库由一个或者多个文件组构成... 阅读全文
posted @ 2015-04-14 16:35 铭轩同学 阅读(227) 评论(0) 推荐(0) 编辑

摘要: SQL Server数据存储的形式 预读:用估计信息,去硬盘读取数据到缓存。预读100次,也就是估计将要从硬盘中读取了100页数据到缓存。 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘。物理读10页,从硬盘中读取10页数据到缓存。 逻辑读:从缓存中取出所有数据。逻辑... 阅读全文
posted @ 2015-04-14 16:34 铭轩同学 阅读(220) 评论(0) 推荐(0) 编辑

摘要: 视图实际上就是一个存储查询,重点是是可以混合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象。可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列;或者也可以创建一个复杂的查询,连接几个表,使的这些表看起来像一个表。一、简单的视图 视图的语法如下:... 阅读全文
posted @ 2015-04-14 16:33 铭轩同学 阅读(244) 评论(0) 推荐(0) 编辑

摘要: SQL Server存储机制 1、区段 区段(extent)是用来为表和索引分配空间的基本存储单元。它由8个连续的64KB数据页组成。 基于区段(而不是实际使用空间)分配空间的概念的要点: 一旦区段已满,那么下一记录将要占据的空间不是记录的大小,而是整个新区段的大小。一次分配一个区段而不是分... 阅读全文
posted @ 2015-04-14 16:32 铭轩同学 阅读(137) 评论(0) 推荐(0) 编辑

摘要: 一、约束的分类 在SQLServer中,有3种不同类型的约束。 1、实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键。 2、域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如CHECK约束。 3、参照完整性约束 如果某列的值必须与其他... 阅读全文
posted @ 2015-04-14 16:31 铭轩同学 阅读(330) 评论(0) 推荐(0) 编辑

摘要: 一、查询设计的建议 在一些情况下,查询结构使优化器不能选择最好的处理策略。知道何时发生这种情况以及如何避免它是很重要的。这里主要介绍如下几点:在小的结果集上操作;有效使用索引;避免优化器提示;使用域和参照完整性;避免资源密集型的查询;减少网络传输数量;减少事务开销;二、在小结果集上操作 为了改进... 阅读全文
posted @ 2015-04-14 16:14 铭轩同学 阅读(221) 评论(0) 推荐(0) 编辑

摘要: SQL Server提供了一个被称为数据库引擎调整顾问的工具。这个工具帮助为一个给定的工作负载确认一组最优的索引,而不需要对数据库结构或SQL Server内部结构的深入了解。它还能为一小部分有问题的查询建议调整选项。除了好处该工具也有坏处。应该正确地使用。一、数据库引擎调整顾问机制 可以直接... 阅读全文
posted @ 2015-04-14 16:13 铭轩同学 阅读(133) 评论(0) 推荐(0) 编辑

摘要: 一、分析查询执行计划 执行计划的阅读顺序为,从右到左,从上到下。 由执行计划表示的查询执行的一些特征如下:如果查询由多个查询的批组成,每个查询的执行计划按照执行的顺序显示。批中的每个执行计划将有一个相对的估算开销,整个批的总开销为100%。执行计划中的每个图标代表一个操作符。它们每个都有一个相对... 阅读全文
posted @ 2015-04-14 16:12 铭轩同学 阅读(173) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 10 下一页