《SQL Server 2005技术内幕:T-SQl查询》:常见sql问题归类解答
来源:互联网 发布:淘宝上没有的东西 编辑:程序博客网 时间:2024/06/06 05:35
这本书差20页就看完了。本来以为这本书的主题是sql server 2005的t-sql的讲解,读完后发现不是。书中并没有系统讲解t-sql。前三章讲查询的原理,后面六章把常见的sql问题分类,每章一类:第4章子查询、表表达式和排名函数,第5章联接和集合操作,第6章聚合和旋转数据,第7章TOP和ALLPY,第8章数据修改,第9章图、树、层次结构和递归查询。
作者在序言中说过,仔细阅读本书,并且花些时间做书中的联系,可以在短时间内掌握作者十几年积累的经验。我看完本书并且基本把书中的代码看过一遍,感觉确实学到了作者的许多经验,作者经验非常丰富。许多解决方案表现出来的不光是作者在sql上的技巧,其中的算法也很值得学习。另外许多问题都给出sql server 2000下的解决方案和sql server 2005下的解决方案。下面举两个例子:
1。快速生成一个数据表,只有一列,这一列的值从1到8000,sql只需要执行14次(第一条sql插入数据1,后面12次把2的12次方4096以内的数据插入,后面剩下的8000-4096个数字一次生成)而不是8000次:
SET NOCOUNT ON;
USE tempdb;
GO
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT;
SET @max = 8000;
SET @rc = 1;
INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
END
INSERT INTO dbo.Nums
SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
GO
2。对于递归结构的表,作者介绍了常见的设计方式(递归)之外,还介绍了Joe Celko提出的嵌套集合模型。并给出了自己的更快速的实现方法。这个模型在数的每个节点上设置两个值:左值和右值。左值小于所有的下级节点的左值,右值大于所有的下级节点的右值,最终计算递归关系非常快。当然这种模型中一个节点的改变会导致平均一半的节点需要重新计算左值和右值,因此不适合需要经常实时变化的数据表。具体的sql比较长,有兴趣可以看书或者下载本书的源代码。
- 《SQL Server 2005技术内幕:T-SQl查询》:常见sql问题归类解答
- 《Microsoft SQL Server 2005技术内幕:T-SQL查询》 勘误表
- 《SQL Server 2005技术内幕:T-SQl查询》:T-SQL进阶必读
- Microsoft SQL Server 2005技术内幕:T-SQL查询 PerformanceDB.sql
- 《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》 勘误表
- Microsoft SQL Server 2005技术内幕:T-SQL程序设计
- 【SqlServer】Microsoft SQL Server 2008技术内幕:T-SQL查询 读书笔记(一)
- SQL Server 2008技术内幕:T-SQL语言基础 笔记
- 【Sql server: T-Sql 技术内幕 系列】之索引篇
- SQL Server 2005技术内幕:T-SQL程序设计》:四部经典之二
- 《MS SQL Server2005 技术内幕—T-SQL查询》读书笔记一:SQL逻辑查询处理
- 《MS SQL Server2005 技术内幕—T-SQL查询》读书笔记一:SQL逻辑查询处理
- 《MS SQL Server2005 技术内幕—T-SQL查询》读书笔记一:SQL逻辑查询处理
- SQLServer 2008 技术内幕——T-SQL 查询 笔记
- 《Microsoft SQL Server 2005技术内幕》系列丛书
- SQL Server 2005 常见查询
- SQL Server 2005技术内幕:查询、调整和优化6——子查询
- 作者Itzik为《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》一书中文版所作的序(英文)
- RedoLog Checkpoint 和 SCN关系
- POJ 3749 破译密码
- 测试工具厂商的编程语言什么时候“退休”?
- C++库大汇[转]
- Ministry refutes US claims China restricts Internet
- 《SQL Server 2005技术内幕:T-SQl查询》:常见sql问题归类解答
- 【Language】C#之旅_④_循环语句
- 文件下载(解决中文文件名下载乱码问题) 收集
- swing 输入中文时的问题
- TCP截包分段重组
- 贪婪算法正在影响你!(转)
- SUN, Forever
- jQuery框架获取及设置单选框、多选框、文本框内容
- 谷歌Chrome沙盒技术成浏览器安全标准