本书特色:
■资深MVP章立民携实力团队年度巨献,权威著作全方位接触微软最新技术!
■完全的实例导向。通过众多程序实例,深入而精确地切入Microsoft SQL Server 2005最重要、最实用的开发与设计内容。
■使用了近600个.sql文件与数个Windows应用程序及类库,详实深入地探讨了SQL Server 2005的数据库设置、Transact-SQL程序设计与XML三大核心领域。
■ 章节合理,知识全面。作者凭借多年讲课经验,充分了解读者学习过程,科学合理地安排章节,全面深入地覆盖知识点。读者可以循序渐进,全面地掌握Microsoft SQL Server 2005的实用开发技术。
无
本书特色: ■资深MVP章立民携实力团队年度巨献,权威著作全方位接触微软最新技术! ■完全的实例导向。通过众多程序实例,深入而精确地切入Microsoft SQL Server 2005最重要、最实用的开发与设计内容。 ■使用了近600个.sql文件与数个Windows应用程序及类库,详实深入地探讨了SQL Server 2005的数据库设置、Transact-SQL程序设计与XML三大核心领域。 ■ 章节合理,知识全面。作者凭借多年讲课经验,充分了解读者学习过程,科学合理地安排章节,全面深入地覆盖知识点。读者可以循序渐进,全面地掌握Microsoft SQL Server 2005的实用开发技术。
责任与使命
本书是“章立民研究室”的第三本书,前两本书(《Visual Basic 2005程序开发与界面设计秘诀》与《Visual C# 2005程序开发与界面设计秘诀》)都获得了大家的支持与好评,使得所有成员深受激励与鼓舞。然而也正因为如此,更让我们深感责任重大,在撰写本书时,无不是战战兢兢、如临深渊、如履薄冰,字斟句酌地写下我们对SQL Server 2005的见解。经过半年多的努力,历经多次小组会议与讨论,数个夜阑人静、咖啡与苦茶相伴、别人拼世界杯我们拼写书的夜晚,本书才得以顺利完稿,内心的激动,非笔墨所能形容。
这两本书均已由机械工业出版社出版。——编辑注
回想第一次接触SQL Server是在12年前,当时的SQL Server是微软公司初次进军数据库服务器市场的产品,我记得原先的手册早已被我翻烂,对于各项功能更是彻底钻研,即使如此,在市场上还是发现其各项特性都不足以与其他各家数据库大厂匹敌。那时的心情,还真是有点低落与无奈。然而经过这些年的多次改版与强化之后,SQL Server 2005已经是第一流的数据库产品了,相对于其他知名的数据库大厂,更是有过之而无不及,并且深受企业的高度信赖与肯定,那种感觉,就像是多年的媳妇熬成婆,更加珍贵。
正所谓好东西要与好朋友分享,SQL Server 2005值得我们推荐,更值得您亲身体验。本书只是SQL Server 2005系列图书的第一本,后续我们将继续针对其他主题撰写优质书籍,期待您的批评与指教,我们下本书见。
章立民
2006年7月10日
章立民研究室:章立民研究室: 章立民先生是台湾非常知名和资深的技术作家。他在台湾微软公司担任顾问与讲师的时间长达15年,对微软开发工具与数据库管理系统等技术都有非常深入的研究。章立民先生不仅拥有丰富的实务经验,经常与第一线的开发人员接触并交流,深知从业人员的真正需求。因此,不仅他的图书著作受到大家的肯定与喜爱,他所主讲的研讨会更是深获好评。 为了能够质与量并重,撰写出更多的优质书籍,并为两岸信息文化事业贡献一份心力,章立民先生在2006初正式成立了“章立民研究室”并担任技术总监,亲自审校所有书籍,期许通过团队的力量,提供更多的好书给广大的读者;也希望借此促进良性竞争,提升信息图书的整体质量。 章立民研究室的所有成员有几项特色,第一,在相关信息领域必须有六年以上的实务经验;第二,必须参与或主持数项具代表性的项目;第三,必须同时专精Visual Basic与Visual C# 程序设计语言;第四,对数据库技术必须有相当程度的认识;最后一项,就是必须拥有高度的热诚以及无私分享的精神。 目前,“章立民研究室”的成员中,有人甚至已在美国从事项目开发10年以上,并且已经具备项目经理人的职位。他们在章立民先生的号召之下,投入研究室的写作行列。如此高水平的成员,让广大读者对“章立民研究室”拥有极高的期待。
第1章本书导读
第2章如何使用范例光盘
第3章创建和维护数据库
31数据库的逻辑结构
32数据库的物理存储结构
33如何创建数据库
34如何删除数据库
35如何修改数据库
第4章数据库创建和配置的高级技术
41系统数据库的用途
42附加和分离数据库
43创建可移动数据库
第5章创建和维护表
51表的结构
52字段名
53长度、精度和小数位数
54系统数据类型
55是否允许Null值
56如何创建表
57使用SQL Server Management Studio创建表
58使用CREATE TABLE表达式创建表
59再谈表设计
510全局唯一标识符与自动编号字段
511如何创建用户定义数据类型
512如何选取用户定义数据类型
513如何删除用户定义数据类型
514创建计算字段
515快速查看、添加、修改与删除数据记录
516如何更改表的结构
517使用Management Studio更改表的结构
518使用ALTER TABLE表达式更改表的结构
519如何更改表的名称
520如何更改表的架构
第6章实施数据完整性
61什么是数据完整性
62数据完整性的实施形式
63活用约束
64什么是CHECK约束
65如何在新建表时创建CHECK约束
66如何更改现存CHECK约束的定义
67如何为表添加CHECK约束
68如何删除CHECK约束
69什么是PRIMARY KEY约束
610如何在新建表时创建PRIMARY KEY约束
611如何更改现存PRIMARY KEY约束的定义
612如何为现存表创建PRIMARY KEY约束
613如何删除PRIMARY KEY条件约束
614什么是UNIQUE约束
615如何在新建表时创建UNIQUE约束
616如何更改现存UNIQUE约束的定义
617如何为现存表创建UNIQUE约束
618如何删除UNIQUE约束
619关系链与FOREIGN KEY约束
620如何创建FOREIGN KEY约束
621如何更改FOREIGN KEY约束的定义
622如何删除FOREIGN KEY约束
623活用默认值
624完整性的检查次序
第7章设计、创建和维护索引
71索引的基本概念
72索引的设计准则
73索引的类型
74聚集索引与非聚集索引
75唯一索引与非唯一索引
76单列索引与多列索引
77填充因子
78创建索引
79禁用索引
710删除索引
第8章TransactSQL程序的基本元素81使用SQL Server Management Studio代码编辑器
82善用模板
83常量
84字符串常量
85Unicode字符串常量
86二进制常量
87Bit常量
88日期时间常量
89整数常量
810Decimal常量
811Float和Real常量
812货币值常量
813全局唯一标识符常量
814指定正数和负数
815常量的使用方式
816局部变量
817table数据类型变量
818运算符
819表达式
820如何为程序加上注释
第9章批处理、函数和流程控制命令
91批处理
92函数
93字符串函数
94日期时间函数
95数学函数
96数据类型转换函数
97无参数函数
98控制流语言
99使用全新的TRYCATCH表达式来捕捉与处理错误
第10章如何动态创建命令语句
101使用EXECUTE表达式执行命令字符串
102使用系统存储过程sp_executesql执行Unicode命令字符串
103自成批处理原则
104参数替换功能
第11章Select查询彻底研究
111SELECT表达式的语法
112简单的SELECT查询
113设定查询结果的字段名
114关键字ALL与DISTINCT的使用
115查询结果的输出目的地
116WHERE子句的条件搜索功能
117如何查询出多个数据区间
118如何比较字段中的NULL值
119SELECT的通配符
1110常量字符和通配符冲突时的解决方法
1111连接条件设定
1112如何为表指定别名
1113统计运算的高手:聚合函数
1114数据分组小计
1115探讨HAVING子句使用技巧
1116探讨ORDER BY子句使用技巧
1117查询出名列前茅或落后者
1118活用子查询
1119如何使用全新的派生表
1120自连接
1121如何使用全新的PIVOT运算符
1122如何使用全新的UNPIVOT运算符
1123如何使用全新的APPLY运算符
1124如何使用UNION运算符合并查询结果
1125如何使用全新的EXCEPT与INTERSECT运算符
1126如何使用全新的“公用表表达式”
1127探讨COMPUTE [BY] 子句的使用技巧
第12章视图
121视图的基本定义和用途
122如何创建视图
123活用索引视图
124活用分区视图
125可更新的分区视图
126通过视图来更新数据
127如何更改视图的名称
128如何更改视图的定义
129如何删除视图
第13章如何开发TransactSQL与CLR存储过程131什么是存储过程
132存储过程的类型
133存储过程的优点
134如何创建TransactSQL存储过程
135CREATE PROCEDURE表达式语法解析
136输入参数
137输出参数
138Cursor数据类型的输出参数
139嵌套存储过程
1310使用EXECUTE表达式执行存储过程
1311探讨INSERTEXECUTE
1312自动执行存储过程
1313重命名存储过程
1314修改存储过程的定义
1315删除存储过程
1316重新编译存储过程
1317如何创建并使用全新的CLR存储过程
1318如何利用CLR存储过程读取和写入二进制图像数据
第14章如何开发TransactSQL与CLR用户定义函数141创建TransactSQL用户定义函数
142创建TransactSQL标量用户定义函数
143创建TransactSQL多表达式表值用户定义函数
144创建TransactSQL内嵌表值用户定义函数
145如何调用用户定义函数
146重命名用户定义函数
147修改用户定义函数的定义
148删除用户定义函数
149将数据写入表
1410探讨全新的CLR用户定义函数
1411探讨CLR标量用户定义函数
1412探讨CLR表值用户定义函数
第15章如何使用表达式来添加、修改和删除数据记录151使用INSERTVALUES添加数据记录
152使用INSERTSELECT进行批处理添加
153使用全新的INSERT TOP进行批处理添加
154使用全新的公用表表达式进行批处理添加
155添加存储过程的查询结果
156添加用户定义函数返回的表
157添加查询命令字符串的查询结果
158使用SELECTINTO进行批处理添加
159使用全新的OUTPUT子句添加数据记录
1510添加数据记录再叮咛
1511使用UPDATE表达式修改数据记录
1512使用全新的UPDATE TOP修改数据记录
1513使用全新的公用表表达式来修改数据记录
1514使用全新的OUTPUT子句显示修改数据记录
1515使用全新的 WRITE子句修改大数值数据类型字段
1516如何使用DELETE表达式删除数据记录
1517使用全新的DELETE TOP删除数据记录
1518使用全新的公用表表达式来删除数据记录
1519使用全新的OUTPUT子句删除数据记录
1520使用TRUNCATE TABLE表达式删除数据记录
第16章如何开发TransactSQL与CLR触发器161什么是触发器
162设计触发器
163如何创建触发器
164检查特定的字段是否已被修改
165检查某些字段是否已被修改
166嵌套触发器
167递归触发器
168使用包含ROLLBACK TRANSACTION表达式的触发器
169使用inserted和deleted表
1610单条和多条数据记录的考虑
1611有条件的INSERT触发器
1612指定AFTER触发器的顺序
1613使用INSTEAD OF触发器更新视图
1614INSTEAD OF触发器中的表达式和计算字段
1615在INSTEAD OF触发器中使用text、ntext及image数据
1616错误消息处理
1617如何使用RAISERROR表达式
1618如何使用TRYCATCH表达式
1619使用TRYCATCH解决死锁问题
1620如何使用sp_addmessage创建用户定义错误消息
1621触发器重命名
1622修改触发器的定义
1623禁用与启用触发器
1624删除触发器
1625DDL触发器与 DML触发器
1626如何创建、删除、修改与禁用DDL触发器
1627如何使用全新的CLR触发器
第17章探讨全新的XML数据类型
171什么是XML数据类型
172如何生成XML实例
173类型化的XML与非类型化的XML
174如何使用XML数据类型的 query()方法
175如何使用XML数据类型的 value() 方法
176如何使用XML数据类型的exist() 方法
177如何使用XML数据类型的modify() 方法
178如何使用XML数据类型的nodes() 方法
179如何在XML内部绑定关系数据
1710XML数据类型方法使用准则
1711如何使用WITH XMLNAMESPACES来添加命名空间
第18章如何为XML数据类型的字段创建索引
181为什么需要为XML数据类型字段创建索引
182