
SQL 数据库
文章平均质量分 59
sandyzhs
这个作者很懒,什么都没留下…
展开
-
T-sql 学习(5) -- CURSOR示例代码
几个说明:1,cursor的初始化,不能使用select,而是只能用set;2,cursor不使用的使用,要close,然后deallocate;3,n个cursor也会共享同一个@@FETCH_STATUS 下面是示例代码,相当规范:USE AdventureWorks-- 记录性能logDECLARE @beg DATETIMESET @原创 2008-10-16 14:34:00 · 1149 阅读 · 0 评论 -
事务
本文参考了下文的一些内容:http://www.bigwww.com/info/html/edu/database/20071226/22283.html 保存点(savepoint)是事务处理过程中的一个标志,和回滚命令(rollback)结合使用,主要的用途是允许用户将某一段处理回滚而不必回滚整个事务,这在pl/sql研发中还是非常有用处的。下面的例子中,把savepoint标记在原创 2009-04-03 16:36:00 · 941 阅读 · 0 评论 -
where 子句的执行顺序
看代码:set statistics io onset statistics time ongoset statistics profile ongouse pubsselect * from authors where (au_fname like S% or au_fname like a%) and (state like CA or原创 2009-04-01 16:07:00 · 1368 阅读 · 0 评论 -
数据库的客户端开发,OLEDB和ADO
1,看到一个写的比较不错的blog,介绍VC使用OLE DB的:http://gamebabyrocksun.blog.163.com/blog/static/571534632008101083957499/虽说已经不太使用了,但是还是可以稍稍了解一下,知道什么是OLEDB,以及为什么OLEDB这么难使用。2,这个是介绍VC使用ADO的:http://dev.gameres.co原创 2009-03-23 11:31:00 · 843 阅读 · 0 评论 -
T-sql 学习(3) - compute和Xp_**族函数
1,T-sql性能Halloween问题:由于存储结构(B+树)造成对数据的循环,甚至是死循环,操作;因为这个事件发生在万圣节前一天,所以得名; 2,日期时间:DateDiff是一个好东西,计算两个时间的差异:尤其对于闰年等特殊情况非常有效 3,compute by,功能1) 使用Compute by子句和行统计函数(count,sum,max,avg,min等),可以统计排序原创 2008-10-15 17:53:00 · 808 阅读 · 0 评论 -
SqlServer Dev(1) - 存储过程和自定义函数的区别
1)存储过程,功能强大,可以执行包括修改表等一系列数据库操作,也可以创建为 SQL Server 启动时自动运行的存储过程。自定义函数,用户定义函数不能用于执行一组修改全局数据库状态的操作。2)存储过程,可以使用非确定函数。 自定义函数,不允许在用户定义函数主体中内置非确定函数。3)存储过程,主要是返回一个int状态结果,也可返回记录集。 自定义函数,可以返回表变量。原创 2008-10-10 13:08:00 · 1812 阅读 · 0 评论 -
T-sql 学习(2) - join与group by
1, join与where1)inner join和out jion(left join, right join, full join):产生两个或者多个表的连接结果,但后者可能会有NULL结果出现。2)cross join 不支持on的语法,但是支持where子句的限制。而实际上,cross join就是没有任何条件的select * from a, b两个表:他就会产生笛卡尔积的结果。原创 2008-10-13 15:51:00 · 2823 阅读 · 0 评论 -
T-Sql学习(1) - 基本数据类型和聚合函数
[前言]开始学习数据库了,按照MS的四本书系列的分类方法,分为T-SQL和develop两部分。 [正文]1, 确定性函数和不确定性函数 2,关于聚合函数,注意:count(*)和count(a)不一样,前者计算NULL行,后者不计算NULL行;min/max/avg/sum(*)和(a)一样:都忽略NULL行。聚合函数 (Transact-SQL)AVG MIN原创 2008-10-10 12:15:00 · 1115 阅读 · 0 评论 -
使用SQL Server时最容易忽略的21个问题
使用SQL Server时最容易忽略的21个问题转载自:http://tech.ccidnet.com/art/1106/20070723/1151931_1.html关键点:你了解工具吗? 不要使用光标 规范化你的资料表 不要使用SELECT * 了解你将要对数据进行的操作 不要给“性别”列创建索引 使用事务 小心死锁 不要打开大的资料集 不要使用服务器端光标 使用参数查询 在程序原创 2008-10-24 10:17:00 · 626 阅读 · 0 评论 -
T-Sql学习(14) - 事务处理
事务处理ACID:A=Atomic 原子性;C=Consistent一致性;I=Isolated隔离性;D=Durable持久性1,事务在提交之前是在缓存中进行的,并同时写log,提交的时候才真正进行写;这时候就不能进行rollback了;2,bulk insert, truncate table, select ... into, writetext, updatetext基本上是原创 2008-10-24 14:35:00 · 810 阅读 · 0 评论 -
T-Sql 学习(11) - 统计函数
统计函数(一个工具能够完成某个任务,并不能说明他就是这个任务的最好选择)1,case可以在统计的时候,有非常清晰的判断和逻辑2,效率有可能有表的自连接,所以需要在性能和可读性之间做一个折中3,sign函数select sign(100), sign(-100), sign(0), sign(0.2) from Table_1返回:1,-1,0,1.04,中值计数这是一个看起来比较原创 2008-10-23 16:35:00 · 702 阅读 · 0 评论 -
T-Sql学习(13) - 不要使用光标,我警告过你
1,的老大说了:不要使用cursor,除非你想把性能搞坏;2,不要使用光标 cursor也说了。以下内容转载自http://tech.ccidnet.com/art/1106/20070723/1151931_1.html 让我再重复一遍:不要使用光标。如果你想破坏整个系统的性能的话,它们倒是你最有效的首选办法。大多数的初学者都使用光标,而没有意识到它们对性能造成的影响。原创 2008-10-24 10:13:00 · 764 阅读 · 0 评论 -
T-Sql 学习(12) - 集合处理
集合处理1, UNION(快), UNION ALL(并集)union all不会去除重复行2,EXCEPT | INTERSECT 较两个查询的结果,返回非重复值。EXCEPT 从左查询中返回右查询没有找到的所有非重复值。(差集)INTERSECT 返回 INTERSECT 操作数左右两边的两个查询都返回的所有非重复值。(交集)3,集合操作的基本规则: 1)所有查询中的列数和列的顺原创 2008-10-23 17:16:00 · 646 阅读 · 0 评论 -
T-Sql 学习(10) - 视图
视图View可以隐藏某些权限控制的表、列;隐藏表的设计背后的复杂性;提供更加具有统计意义的结果;提高效率;1,视图是一个到n个表的字段、聚合等构成的虚拟表。当表中的值修改了之后,查新view时候,结果也跟着变化;同时,如果满足一定的条件,修改view中的结果,该列对应的原表中的值也跟着变化;insert一行到view时,会想对应的原表(们)添加记录;如果涉及到了两个表,那么在view中没有的列原创 2008-10-23 15:56:00 · 594 阅读 · 0 评论 -
T-sql 学习(8) - 深入DML
1. insert1)四种格式:a)INSERT INTO Table_1( name, fid_fk)VALUES(tt, 3)into是可选的;可以给有默认值的列指定default值:DEFAULT可以在列名称列表中省略identity列b)INSERT INTO Table_1DEFAULT VALUESc)SET IDENTITY_INSERT dbo.Table_3 ONI原创 2008-10-21 09:21:00 · 519 阅读 · 0 评论 -
T-Sql 学习(9) - 强大的Select
1,普通选择三种指定列别名的方法(ID为列名):SELECT ID ii FROM Table_1SELECT ID AS ii FROM Table_1SELECT ii = ID FROM Table_12,计算字段select PI()3,select top n [PERCENT],可以选择top n或者n%top和group by联合使用,会产生不可以预期的结果4,派生原创 2008-10-21 18:01:00 · 731 阅读 · 0 评论 -
T-sql 学习(7) - DDL
DDL(数据定义语言)1)一般说来,参照完整性(主键外键) > 触发器 > 存储过程2)Foreign Key:有四种选择:CASCADE | NO ACTION | SET DEFAULT |SET NULL 如果被参照的列运行NULL,那么参照列也是允许NULL出现;3)主键约束与UNIQUE约束有哪些区别? 主键值是具有唯一性的,因此主键列不能再实施唯一性约束。与主键约束不原创 2008-10-21 09:18:00 · 609 阅读 · 0 评论 -
T-sql 学习(6) - NULL,世界不止有两态
拿逻辑类型来说,世界上不止有TRUE和FALSE,还有未知(UNKNOWN). 和NULL的比较:IS NULL而最好不用= NULL大多数输入NULL参数的函数返回值都是NULL。但是有例外,就是专门处理NULL的函数:ISNULL,如果是NULL的话,返回另外的值;NULLIF,如果满足条件,则返回NULL 对表中的列进行聚集计算的时候,多数函数都会忽略NULL值所在的记原创 2008-10-16 16:46:00 · 594 阅读 · 0 评论 -
数据库面试题集合
在整理准备数据库面试的过程中,先是在网上一顿海搜,找到历史面试题,然后一个骨头一个骨头的啃完,现在基本上这些问题(或者说叫做实践)都没有问题了。遇到的困难是:PL/SQL居多,T-SQL太少,所以需要筛选,修改答案,甚至有一些在T-SQL里面还没有支持。下一步再把数据库T-SQL经典教程在翻看一遍,基本上对数据库就算告一段落了,前前后后共整整1个多月的时间(去年10.1是二周,下载是三周),原创 2009-04-09 15:29:00 · 22197 阅读 · 7 评论