C程序设计语言(第2版·新版)非扫描版&详细书签版
2023-04-20 23:17:34 4.29MB C程序设计语言
1
C程序设计语言(第2版·新版)非扫描版&详细书签版
2022-11-15 17:32:54 4.79MB 程序 设计语言 2版 新版
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Transact-SQL 权威指南 基本信息 原书名: The Guru's Guide to Transact-SQL 原出版社: Addison-Wesley 作者: (美)Ken Henderson    译者: 健莲科技 丛书名: 其他 出版社:中国电力出版社 ISBN:7508310616 上架时间:2002-8-9 出版日期:2002 年8月 页码:462 版次:1-1 内容简介 书籍 计算机书籍    Transact—SQL是结构化查询语言(SQL)的增强版本,与许多ANSI SQL标准兼容,Transact-SQL代码已成为SQL Server的核心。本书全面介绍了Transact—SQL,全书共21章,按照由浅入深的顺序,详细介绍了Transact-SQL基本概念和主要应用。本书示例清晰,说理透彻,实是不可多得之佳选。    本书可供各个层次的读者使用。 目录 封面 -15 封底 -14 扉页 -13 版权 -12 译者序 -11 前言 -10 原书序 -9 目录 -6 第1章 Transact-SQL简介 1 1.1 选择SQL编辑器 2 1.2 创建数据库 3 1.3 创建表 3 1.4 插入数据 5 1.5 修改数据 6 1.6 删除数据 6 1.7 数据查询 7 1.8 数据过滤 10 1.9 数据分组 16 1.10 数据排序 17 1.11 列别名 18 1.12 表别名 19 1.13 事务处理管理 19 1.14 小结 20 第2章 Transact-SQL数据类型的细微差别 21 2.1 日期型 21 2.2 字符串型 31 2.3 数值型 49 2.4 BLOB型 53 2.5 位型(Bit) 60 2.6 uniqueidentifier(惟一标识符)型 61 2.7 光标变量 62 2.8 时戳 66 2.9 小结 68 第3章 遗漏值 69 3.1 NULL和表达式 70 3.2 NULL和函数 70 3.3 NULL和ANSI SQL 71 3.4 NULL和存储过程 73 3.5 必要时使用NULL 75 第4章 深入DDL 77 4.1 CREATETABLE 77 4.2 删除对象 81 4.3 创建索引 81 4.4 临时对象 82 4.5 对象命名及相关性 84 4.6 小结 86 第5章 深入DML 87 5.1 INSERT 87 5.2 UPDATE 96 5.3 DELETE 103 5.4 检测DML错误 107 5.5 小结 107 第6章 强大的SELECT语句 108 6.1 简单SELECT 108 6.2 计算字段和派生字段 109 6.3 SELECTTOP 109 6.4 派生表 111 6.5 连接 114 6.6 谓词 116 6.7 子查询 127 6.8 聚集函数 133 6.9 GROUPBY和HAVING 135 6.10 UNION 142 6.11 ORDERBY 143 6.12 小结 145 第7章 视图 146 7.1 约束 146 7.2 ANSI SQL模式视图 147 7.3 获取视图的源代码 148 7.4 可修改的视图 149 7.5 WITH CHECkOPTION 149 7.6 派生表 150 7.7 动态视图 151 7.8 使用视图划分数据 152 7.9 小结 154 第8章 统计函数 155 8.1 关于CASE 156 8.2 关于效率的考虑 157 8.3 方差和标准方差 157 8.4 中值 158 8.5 修剪 165 8.6 返回前n行 166 8.7 等级 169 8.8 模式 171 8.9 柱状图 172 8.10 累积和滑动聚集 173 8.11 极值 175 8.12 小结 177 第9章 运行和序列 178 9.1 序列(时序) 178 9.2 运行 183 9.3 间隔 186 9.4 小结 188 第10章 数组 189 10.1 作为大字符串的数组 189 10.2 作为表的数组 195 10.3 小结 202 第11章 集 203 11.1 联合 203 11.2 差集 205 11.3 交集 207 11.4 子集 209 11.5 小结 212 第12章 层次 213 12.1 简单层次 213 12.2 多级层次 214 12.3 锯齿状列表 220 12.4 小结 221 第13章 光标 222 13.1 光标和ISAM 222 13.2 光标类型 224 13.3 光标的正确使用 228 13.4 Transact-SQL光标语法 233 13.5 配置光标 241 13.6 修改光标 244 13.7 光标变量 245 13.8 光标存储过程 247 13.9 优化光标性能 247 13.10 小结 248 第14章 事务处理 249 14.1 事务处理的定义 249 14.2 SQL Server中的事务处理是如何工作的 250 14.3 事务处理类型 251 14.4 避免聚集事务处理 253 14.5 自动事务处理管理 253 14.6 事务处理隔离级别 255 14.7 事务处理命令和语法 258 14.8 事务处理的调试 264 14.9 事务处理代码的优化 265 14.10 小结 266 第15章 存储过程和触发器 267 15.1 存储过程的优点 268 15.2 内部步骤 268 15.3 创建存储过程 270 15.4 存储过程的执行 278 15.5 关于环境的考虑 279 15.6 参数 282 15.7 重要的自动变量 285 15.8 流控制语言 285 15.9 错误 287 15.10 嵌套 289 15.11 递归 289 15.12 自启动的存储过程 291 15.13 加密 291 15.14 触发器 291 15.15 存储过程的调试 295 15.16 小结 295 第16章 Transact-SQL性能协调 296 16.1 通用性能准则 296 16.2 数据库设计性能提示 297 16.3 索引性能提示 298 16.4 SELECT性能提示 300 16.5 INSERT性能提示 301 16.6 大量拷贝性能提示 302 16.7 DELETE和UPDATE性能提示 303 16.8 光标性能提示 303 16.9 存储过程性能提示 304 16.10 SARG 307 16.11 非标准化 321 16.12 查询优化器 335 16.13 索引协调向导 343 16.14 Profiler 345 16.15 性能监控器 345 16.16 小结 347 第17章 Transact-SQL的管理 348 17.1 GUI的管理 348 17.2 系统存储过程 349 17.3 Transact-SQL管理命令 350 17.4 系统管理函数 350 17.5 自动管理变量 351 17.6 常用的例程及其脚本 351 17.7 小结 403 第18章 全文搜索 404 18.1 全文谓词 405 18.2 行集函数 411 18.3 小结 414 第19章 OLE自动化 415 19.1 sp-exporttable 416 19.2 sp_importtable 419 19.3 sp_getSQLregistry 423 19.4 小结 425 第20章 未记载的Transact-SQL 426 20.1 未记载的定义 426 20.2 未记载的DBCC命令 427 20.3 未记载的函数和变量 438 20.4 未记载的跟踪标记 441 20.5 未记载的过程 442 20.6 小结 447 第21章 杂项 448 21.1 模糊函数 448 21.2 数据清除 457 21.3 迭代表 461 21.4 小结 462 译者序    如果想利用Microsoft SQL Server在Windows NT Server或其他操作系统上构筑开发环境,完成MIS系统、客户/服务器应用、Internet环境下的World Wide Web应用,那么本书绝对是一本适合你的(系统开发人员或系统维护人员)必备参考书。    Transact—SQL是结构化查询语言(SQL)的增强版本,与许多ANSI SQL标准兼容,并提供重要的附加功能。Transact—SQL代码已成为MicrosoftSQL Server的核心。    本书共21章,按照由浅入深的顺序,详细介绍Transact—SQL基本概念和主要应用。前3章介绍Transact—SQL最基本的操作、数据类型和遗漏值。从第4章开始深入介绍DLL、DML,其中详细讲解SELECT语句的使用,以及视图、统计函数、运行和顺序,并涉及到一些重要的概念,如集、层次、光标和事务处理等,并说明了它们的使用方法。第15章介绍存储过程和触发器,它是管理数据库、查询数据需要了解的重要方面。第16到第19章分别介绍Transact—SQL的一些高级应用,如Transact—SQL性能协调(tuning)、Transact—SQL的管理、全文搜索、OLE自动化等。第20章介绍未被记载的Transact—SQL有关内容和应用。最后的第21章介绍有关Transact—SQL零散的内容。    本书作为Transact—SQL的使用入门和进行深入研究的一本指南,适用于所有Transact—SQL的使用者,也适于数据库用户、开发员和数据库管理人员。刚接触SQL的用户也可以通过这本书学习Transact—SQL的相关特性,对于想了解以前未用过的功能的有经验的用户而言,本书也是一本有益的参考书。尤其值得一提的是,本书的作者在书中提供了许多存储过程和脚本,读者可以直接而方便地使用它们,来减轻日常的劳动。    在翻译过程中,我们力求完美,但由于译音水平所限,不妥之处在所难免,恳请读者批评指正。    前言    KenHenderson想要做的就是写一本适用于Transact—SQL实际编程的尽可能最好的书,他成功了。Ken在开始写这本书时,头脑中已经有了本书中的大多数构想。当为生活而工作时,人们希望学习许多东西,搞清它们工作的原因以及其他不工作的原因。如果你是个有心人,那么你可以把你所掌握的写成一本书,其他人就可以从你的知识中受益。对初学一门语言的人来说,让其在仅知道语法和一些规则的情况下,设计一个工程并编写复杂程序是很困难的。难道你可以仅用一本词典和小型语法书就能熟悉一个陌生的国家吗?    好的,现在我们对这本书有了一个目标。下一步就是如何写以便人们能够使用它。VictorHugo在写字台前用翎毛笔在条纹纸上写出了很多伟大的作品,而在Internet时代的写作则与那时有很大不同。如今,一本书可以在一周内出版印刷,作者可以找来一些人通过电子邮件来阅读该书,找出作者遗漏或出现错误的问题,以及校对人员或排版人员遗漏的标点符号。简而言之,可以以最快的速度进行工作。    最好用两种方式工作。写书时,可邀请一大批与其无所事事还不如作为你的义务研究人员的人来帮助你!    因为我在SQL标准和编程的专业技术方面有一点点的声望,所以我是他通过电子邮件邀请来查看原稿的人之一。整洁的材料和一些技巧是我未曾见过的!我们交换了意见,我正在窃取,不,研究我的下一本书。你知道,交流总是双向的。    我想你会发现此书是很容易理解的,且有许多好的想法和代码样本。虽然这是一本指定用于Transact—SQL的书,但你会发现其中的许多方法和技术可用于任何SQL产品。尽情享用吧!    序言    本书适合编码员使用。本书的目的是帮助开发人员利用Transact-SQL创建应用程序,而不是介绍数据库的管理和设计。书中没有介绍终极用户和GUI应用程序的开发,也没有介绍服务器和数据库性能的调试。本书是关于开发代码的,目的是为应用程序开发出最好的Transact-SQL代码。       当我开始写这本书时,我是这样构想的:    大量引入代码样本--不仅告诉读者如何使用Transact-SQL,而且出示代码样本。    每章都包括了完整的代码样本,所以可以在没有计算机和光驱的情况下学习本书。    使用现代编码技术,其中带有着重于ANSI兼容性的细节和当前版本及增强版的特性。    每章内容相互独立--尽可能地不依赖在其他章节中创建的对象。    提供了真实的代码样本,它们脱离本书仍然有本身的价值。    避免重复已经在SQL Server在线书籍中大量提及的内容。    强调Transact-SQL与其他SQL语言不同的方面,而不只是写一本ANSI SQL的书。    避免过多的快照和在计算机书籍中常见的其他类型的填充版面的东西。    每章都由简单到复杂,并贯穿于全书。    提供轻松自由的注释,并不强调形式。注释将成为读者的良师。尽量用谈话的方式与读者交流。    这些目标是否兑现,以及兑现的程度如何,我想读者会有自己的衡量标准,我希望我的努力没有白费。    关于样本数据库    本书大量使用了SQL Server提供的Nothwind和pubs样本数据库。读者可以从周围的注释或者是代码本身来确定某个特定示例所使用的数据库。pubs数据库比Northwind数据库更经常使用,所以如果没有另外指定或不能确定时,那么使用的就是pubs数据库。    通常是在事务中修改这些数据库,这样就可以回滚这些修改;然而,出于安全考虑,应该在数据库被修改的章节后,删除数据库然后再重新创建它。重新创建数据库的脚本(instnwnd.sq1和instpubs.sql)在SQL Server的根目录的\Install子目录下。    精简结果    我对计算机书籍很憎恨的原因就是,有些书无耻地使用占用空间的办法来增加书的厚度--这是计算机出版业的黑暗的小秘密。现在有些技术书籍中到处是快照、表、图、提纲、工具条、图标、艺术条等。更有些人认为书越厚越好,有许多作者和出版商都非常高兴地来迎合他们。他们似乎沿用了一句老话的字面意思--"一幅图顶一千个字",结果有时他们出版的书就像画册一样。    在本书中,我将公平地处理详尽度和空间效率之间的关系。我经常地截断或修剪查询结果集,尤其是那些对于页面来说过宽的或是过长的结果集(改动的部分我会指明)。有时我也会用缩小字体的办法来列出结果。我没有使用快照,除非它会对即将进行的讨论有非常大的用处(书中只有一章包含了快照)。这样做是为了与我所设定的目标(完整却不过度)保持一致。书中有近600段SQL脚本出现在被提及的章节中。希望所有的删节都不会损害本书整体的实用性和价值。 .   关于形式    我所憎恨的另一件事就是为了形式而搞的形式。一位艺术家曾说过"画一条曲线要比画条直线更难",他的意思就是说,从某种意义上讲,把没有明确严格标准的事情做好要比把有清楚规则和固定先例的事情做好更难。画条直线要做的就只是找把直尺。那些关于作品的规则,特别是那些学术种类的规则,使得写书变得容易了,因为这些规则将写作的许多主观特性变得更客观了。这些规则会影响那些准作者的发展方向。于是,写作就由一个创造性的过程变成了机械的过程,按照这些规则,书就已经完成一半了,显然,这样就减少了作者进行创造性写作的决心。这样也会使其他一些好的作品变成了乏味的、课本式的论文,它们橡电话号码簿的白页一样无趣。    所以,我不认为正规的作品就是好的作品,这种想法是一个更高的标准,是所有技术型作家应该努力的目标。我属于Mark Twain的思想学派--"避免剩余物",我相信采取这种思想,通常谈话的方式就不会完全落入俗套(我坦率地承认这是个主观的区别),技术型作家最终的目标就是以与读者谈话的方式来写作。这是人们--尤其是技术人员最熟悉的交流方式,也是人们学习和共享思想的方式。这种思想的方法不是我发明的,而是许多我所欣赏的作家写作方法,他们是MarkTwain、DeanKoontz、JoeCelko、ErnestHemingway、Robert Heinlein、AndrewMiller、OscarWilde、 P.J.O'Rourke、PatrciaO'Connor。尽管这种方法很难构造,也很难自然地写出易读的故事来,但是如果作家试图表达的思想能像他们被发明一样被理解,那么还是很值得努力的。    作者简介    KenHenderson是数据库鉴赏家,居住在Dallas,与妻子、四个孩子和一条狗生活在一起。他把工作之外的时间,大部分都花在关心他的孩子成长上。与Henderson联系的email是:khen@khen.com.   
2022-10-18 10:54:44 9.93MB Transact SQL 权威指南 详细书签版
1
该版本提供了下册详细目录可以快速查阅(当然已经提供详细书签) 基本信息 原书名: Programming Windows (Fifth Edition) 原出版社: Microsoft Press 作者: (美)Charles Petzold 译者: 北京博彦科技发展有限责任公司 丛书名: Microsoft 程序设计系列 出版社:北京大学出版社 ISBN:730104187X 上架时间:2004-11-16 出版日期:2004 年9月 页码:1376 版次:1-8 内容简介    如果对Windows开发有什么问题的话,请翻阅PetZold的著作吧。在《Window程序设计》(第5版)中,这位杰出的“Windows先锋奖”(Windows Pioneer Award)获得者根据最新的Windows操作系统权威技术修订了他的经典著作——再一次演示了基本的Win32程序设计的API核心内容。本书的内容包括:    ** 基本内容——输入、输出和对话框    ** Unicode概述    ** 图形——绘图、文本和字体、位图和元文件    ** 内核和打印机    ** 声音和音乐    ** 动态链接库    ** 多任务和多线程    ** 多文档界面    ** Internet和 Intranet的程序设计    其中采用的大多是具有代表性的示例,这本Petzold著作为使用 Windows 95、Windows 98或 Windows NT的各级windows程序员提供了最基本的参考和指导。没有经验的开发人员也可以从中获取大量的新知识。       作译者 本书提供作译者介绍    Charles Petzold从 1984年开始编写个人计算机程序,从 1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于 Windows程序设计的杂志论文。从 1986年到 1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。 《Windows 程序设计》由微软出版社在1988年首次出版,后来被认为是这方面最好的导论性读本。在1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《WindowcMagazine》和Microsoft公司授予Windows Pioneer奖, 以表彰他对 Microsoft Windows的成功做出的贡献. 在1999年秋天,微软出版社将出版Charles Petzold面向普通读者的第一本书. 暂时命名为 《Code:The Hidden Language of Computer Hardware and Software》, 这本书专门介绍数字信息的本质以及计算机处理数字信息的方式. 作者: Charles Petzold 1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《Window Magazine》和Microsoft公司授予Windows Pioneer奖,以表彰他对 Microsoft Windows的成功做出的贡献。 Charles Petzold从1984年开始编写个人计算机程序,从1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于Windows程序设计的杂志论文。从1986年到1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。 [同作者作品] Microsoft c#Windows程序设计(上下册) Microsoft Windows程序设计——Visual Basic.NET语言描述 Windows 3D编程(英文影印版) 目录 第一部分 基础知识 第一章 开始 l.1 windows环境 1.1.1 windows 简史 1.1.2 windows方面 1.1.3 动态链接 1.2 windows编程选项 1.2. 1 api和内存模式 1.2.2 语言选项 l.2. 3 编程环境 1.2.4 api文档 1.3 编写一个windows程序 1.3.1 字符模式(character-mode)模型 1.3.2 windows 等价程序 1.3.3 头文件 1.3.4 程序入口点 1.3.5 messagebox 函数 1.3.6 编译、链接和运行 第二章 unicode简介 2.1 字符集简史 . 2.1.1 美国标准 2.1.2 国际方面 2.1.3 扩展ascll 2.1.4 双字书字符集 2.1.5 unicode解决方案 2.2 宽字符和c 2.2.1 char数据类型 2. 2. 2 宽字符 2.2.3 宽字符库函数 2.2.4 维护单一源代码 2.3 宽字符和windows 2.3.1 windows 头文件类型 2.3.z windows 函数调用 2.3.3 windows的字符串函数 2.3.4 在 windows中使用 printf 2.3.5 格式化消息框 2.3.6 本书与国际化 第三章 窗口和消息 3.1 自己的窗口 3. 1.l 总体结构 3.1.2 hellowin程序 3. 1.3 总体考虑 3.1.4 注册商口类 3.1.5 创建窗口 3.1.6 显示窗口 3.1.7 消息循环 3.1.8 窗口过程 3.1.9 处理消息 3.1.10 播放声音文件 3.1.11 wm_paint消息 3.1.12 wm_destroy消息 3.2 windows编程的难点 3.2.l 别调用我,我会调用您 3.2.2 进队消息与不进队消息 3.2. 3 行动迅速 第四章 输出文本 4.l 绘制和刷新 4.1.1 wm_paint消息 4. 1.2 有效短形和无效矩形 4.2 gdi简介 4.2.l 设备描述表 4.2.2 获取设备描述表句柄:方法一 4.2.3 绘图信息结构 4.2.4 获取设备描述表句柄:方法二 4. 2. 5 textout:细节 4.2.6 系统字体 4.2.7 字符大小 4.2. 8 文本尺寸:细节 4.2.9 格式化文本 4. 2.10 综合使用 4.2.11 sysments1.c窗口过程 4.2.12 空间不够 4. 2.13 客户区的大小 4.3 滚动条 4.3.l 滚动条的范围和位置 4.3.2 滚动条消息 4.3.3 在sysmets中添加滚动功能 4.3.4 绘图程序的组 4.4 建立更好的滚动 4.4.l 滚动条信息函数 4.4.2 滚动范围 4.4.3 新sysmets 4.4. 4 不用鼠标怎么办 第五章 图形基础 5. 1 gdi的结构 5.1. 1 gdi原理 5.1.2 gdi函数调用 5.1.3 gdi日元 5. 1. 4 其他方面 5.2 设备描述表 5.2.l 获取设备描述表句柄 5.2.2 获取设备描述表信息 5.2.3 devcaps1程序 5.2.4 设备的大小 5.2.5 关于色彩 5.2.6 设备描述表属性 5.2.7 保存设备描述表 5.3 画点和线 5.3.l 写像素 5.3.2 直线 5.3.3 边界框函数 5. 3.4 贝塞尔样条 5.3.5 使用现有画笔(stock pens) 5.3.6 画笔的创建、选择和删除 5.3.7 填充空隙 5.3.8 绘图方式 5.4 绘制填充区域 5.4.1 polygon函数和多边形填充方式 5.4.2 用画刷填充内部 5.5 gdi映射方式 5.5.l 设备坐标和逻辑坐标 5.5.2 设备坐标系 5.5.3 机口和窗口 5.5.4 处理mm_text 5.5. 5 “度量”映射方式 5.5.6 “自作主张的”映射方式 5.5.7 whatsize 程序 5.6 短形、区域和剪裁 5.6.1 矩形函数 5.6.2 随机短形 5.6.3 创建和绘制区域 5. 6.4 短形与区域的剪裁 5.6.5 clover程序 第六章 键盘 6.1 键盘基础 6.1.1 忽略键盘 6.1.2 谁获得了焦点 6.1.3 队列和同步 6.1.4 击键和字符 6. 2 击键消息 6.2.1 系统击键与非系统击键 6.2.2 虚拟键码 6.2.3 iparam信息 6.2.4 换档状态 6.2.5 使用击健消息 6.2.6 为键盘增强sysmets 6.3 字符消息 6.3.1 四类字符消息 6.3.2 消息顺序 6.3.3 处理控制字符 6.3.4 死字符消息 6.4 键盘消息和字符集 6.4.1 keyviewi程序 6.4.2 外语键盘问题 6.4.3 字符集和字体 6.4.4 unicode怎么样? 6.4.5 truetype和大字体 6.5 插入符(不是光标) 6.5.l 插入符函数 6.5.2 typer 程序 第七章 鼠标 7.1 鼠标基础 7.1.1 一些简单的定义 7.2 客户区鼠标消息 7.2.l 简单的鼠标处理:一个例子 7.2.2 处理sha键 7.2.3 双击鼠标键 7.3 非客户区鼠标消息 7.3.1 命中测试消息 7.3.2 从消息产生消息 7.4 程序中的命中测试 7. 4. 1 一个假想的例子 7.4.2 示例程序 7.4.3 使用键盘仿真鼠标 7.4. 4 在checker中添加键盘接口 7.4. 5 将于窗口用于命中测试 7.4.6 checker中的子窗口 7.4.7 子窗口和键盘 7.5 捕获鼠标 7.5.1 设计矩形 7.5.2 捕获的解决方案 7.5.3 blokout2程序 7.6 鼠标轮 7.6.1 后会有期 第八章 计时器 8.1 计时器基础 8.1.1 系统和计时器 8.1.2 计时器消息不是异步的 8.2 计时器的使用:三种方法 8.2.1 方法一 8.2.2 方法二 8.2.3 方法三 8.3 计时器用于时钟 8.3.1 构造数字时钟 8.3.2 获取当前时间 8.3.3 显示数字和冒号 8.3.4 国际化 8.3.5 构造模拟时钟 8.4 为状态报告使用计时器 第九章 子商口控制 9.1 按钮类 9.1.1 创建于窗口 9.1.2 子窗口向父窗口发送消息 9.1.3 父窗口向子窗口发送消息 9.1.4 下压按钮 9.1.5 复选框 9.1. 6 单选按钮 9.1.7 分组框 9.1.8 更改按钮文本 9.1.9 可见的和启用的按钮 9.1.10 按钮和输入焦点 9.2 控制与颜色 9.2.1 系统颜色 9.2.2 按钮颜色 9.2.3 wm_ctlcolorbtn消息 9.2.4 拥有者给制按钮 9.3 静态类 9.4 滚动条类 9. 4. 1 colors1程序 9. 4.2 自动键盘接口 9. 4. 3 窗口子类化 9.4.4 给背景着色 9.4.5 给滚动条和静态文本着色 9.5 编辑类 9.5.l 编辑类风格 9.5.2 编辑控制通知 9.5.3 使用编辑控制 9.5.4 发送给编辑控制的消息 9.6 列表框类 9.6.1 列表框风格 9.6.2 将串放人列表框 9.6.3 选择和获取项 9.6.4 接收来自列表框的消息 9.6.5 一个简单的列表框应用程序 9.6.6 文件列表 9.6.7 windows的head程序 第十章 菜单及其他资源 10.l 图标、光标、字符串和定制资源 10.1.1 将图标添加到程序 10.1.2 获取图标句柄 10.1.3 在程序中使用图标 10.1.4 使用自定义光标 10.1.5 字符串资源 10.1.6 定制资源 10.2 菜单 10.2.1 菜单概念 10.2.2 菜单结构 10.2.3 定义菜单 10.2.4 在程序中引用菜单 10.2. 5 菜单和消息 10.2.6 示例程序 10.2.7 菜单设计规范 10.2.8 定义菜单的复杂方法 10.2.9 浮动弹出式菜单 10.2.10 使用系统菜单 10. 2.11更改菜单 10.2.12 其他菜单命令 10.2.13 创建菜单的非正规方法 10.3 键盘加速键 10.3.1 为什么要使用加速键 10.3.2 安排加速键的几条规则 10.3.3 加速健表 10.3.4 加载加速键表 10.3.5 键盘代码转换 10.3.6 接收加速键消息 10.3.7 菜单与加速键应用程序poppad 10.3.8 启用菜单项 10.3.9 处理菜单项 第十一章 对话框 11.1 模态对话框 11.1.1 创建about对话框 11.1.2 对话框及其模板 11.1.3 对话框过程 11.1.4 激活对话框 11.1.5 不同的主题 11.l.6 更复杂的对话框 11.1.7 使用对话框控制 11.l.8 ok和cancel按钮 11.1.9 避免全局变量 11.1.10 tab停留位和组 11.1.11 在对话框上绘图 11.1.12 将其他函数用于对话框 11.1.13 定义自己的控制 11.2 非模态对话框 11.2.l 模态对话框与非模态对话框的区别 11.2.2 新的 colors程序 11.2.3 hexcalc:窗口还是对话框? 11.3 通用对话框 11.3.l 增强poppad 11.3.2 unicode 文件 i/o 11.3.3 更改字体 11.3.4 查找与替换 11.3.5 只调用一个函数的windows程序 第十二章 剪贴板 12.1 剪贴板的简单使用 12.1.1 标准剪贴板数据格式 12.1.2 内存分配 12.1.3 将文本传送到剪贴板 12.1.4 从剪贴板上获取文本 12.1.5 打开和关闭剪贴板 12.1.6 剪贴板和unicode 12.2 复杂的剪贴板用法 12.2.l 利用多个数据项 12.2.2 延迟生成 12.2.3 私有数据格式 12.3 实现剪贴极查看器 12.3.1 剪贴板查看器链 12.3.2 剪贴板查看器的函数和消息 12.3.3 一个简单的剪贴板查看器
2022-09-08 10:11:20 47.16MB Windows 程序设计 第5版 上、下册
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Android移动应用开发从入门到精通 基本信息 原书名: Android Wireless Application Development 原出版社: Addison-Wesley Professional 作者: (美)Shane Conder    Lauren Darcey 译者: 张魏 李卉 出版社:人民邮电出版社 ISBN:9787115230195 上架时间:2010-7-8 出版日期:2010 年7月 开本:16开 页码:470 版次:1-1 编辑推荐   本书提供Android开发从入门到进阶的全程指导,囊括详尽的开发实践技术和前瞻的市场应用技巧! 内容简介   本书涵盖了android开发从概念、技术到市场推广应用的全部话题,内容包括:android概览、android应用程序设计精髓、android用户界面设计精髓、常用android api、更多android应用程序设计原则、对外发布你的android应用程序和附录等7个部分。附录还包含了android开发常用工具(如模拟器、ddms、调试桥和sqlite等)的使用指南。   本书不仅适合android应用程序开发人员阅读,还能为qa测试人员提供指导。另外本书还可以帮助项目经理更好地管理项目进程和项目团队,帮助市场推广人员更好地把握市场、创造令人瞩目的销售业绩。 作译者   Shane Conder拥有丰富的开发经验,在过去的10年中,他把主要精力集中在移动和嵌入式开发领域,迄今已设计并开发了基于BREW、J2ME、Windows Mobile和Android的诸多商业软件。Shane撰写了大量关于移动通信行业和评估移动开发平台的文章,这些文章发表在他的个人技术博客上,在领域内受到了广泛的关注。Shane获得了加州大学授予的计算机科学学士学位。   Lauren Darcey是一家专注于移动开发的小软件公司的技术主管。拥有20年专业软件产品研发经验的Lauren,被公认为企业架构和商业级移动应用开发的权威.Lauren获得了加州大学圣克鲁兹分校授予的计算机学士学位. 目录 封面 -20 封底 -19 扉页 -18 版权 -17 内容提要 -16 作者简介 -15 致谢 -15 前言 -14 目录 -10 第一部分 Android概览 1 第1章 Android简介 2 1.1 移动软件开发简史 2 1.1.1 遥想当年 2 1.1.2 “砖头” 3 1.1.3 无线应用协议(WAP) 4 1.1.4 商用移动平台 6 1.2 开放手机联盟(OHA) 8 1.2.1 无线Google 8 1.2.2 开放手机联盟成立 8 1.2.3 制造商:设计Android手机 9 1.2.4 内容提供商:开发Android应用程序 9 1.2.5 移动操作系统:传播Android体验 9 1.2.6 充分发挥Android的优势 10 1.3 Android平台的不同之处 10 1.3.1 Android:下一代平台 10 1.3.2 免费开放源代码 11 1.3.3 熟悉和廉价的开发工具 11 1.3.4 合理的开发人员学习曲线 12 1.3.5 强大的应用程序开发支持 12 1.3.6 丰富、安全的应用集成 12 1.3.7 无障碍发布 13 1.3.8 为应用程序提供的“自由市场” 13 1.3.9 新生并逐渐成长的平台 14 1.4 Android平台 14 1.4.1 Android的基本体系结构 14 1.4.2 安全与许可权限 16 1.4.3 开发Android应用程序 17 小结 18 参考资料和更多信息 19 第2章 你的Android开发环境 20 2.1 配置你的开发环境 20 2.1.1 支持的操作系统 20 2.1.2 安装Java开发包(JDK) 20 2.1.3 安装Eclipse开发环境 21 2.1.4 其他开发环境 22 2.1.5 安装Android软件开发包(SDK) 22 2.1.6 安装与配置Android Eclipse插件(ADT) 23 2.1.7 ADT安装释疑 25 2.1.8 升级Android SDK 25 2.1.9 Android SDK的问题 25 2.1.10 配置Android编译硬件 26 2.1.11 配置操作系统以适应设备编译 26 2.1.12 本书使用的开发环境 27 2.2 探索Android SDK 27 2.2.1 Android SDK许可协议 27 2.2.2 Android SDK文档 28 2.2.3 Android应用程序框架 29 2.2.4 Android工具 30 2.2.5 Android示例应用程序 33 小结 34 参考资料和更多信息 34 第3章 编写第一个Android应用程序 35 3.1 测试你的开发环境 35 3.1.1 在Eclipse工程中导入Snake应用程序 35 3.1.2 为Snake工程创建Android虚拟设备(AVD) 37 3.1.3 为Snake工程创建运行配置参数 37 3.1.4 在Android模拟器中运行Snake应用程序 39 3.2 构建你的第一个Android应用程序 39 3.2.1 创建和配置新的Android工程 40 3.2.2 Android应用程序的核心文件和目录 40 3.2.3 为新工程创建Android虚拟设备 41 3.2.4 为工程配置运行参数 41 3.2.5 在模拟器中运行Android应用程序 42 3.2.6 在模拟器中调试Android应用程序 43 3.2.7 为Android应用程序添加日志记录 45 3.2.8 为应用程序添加媒体支持 46 3.2.9 为应用程序添加基于位置的服务(LBS) 48 3.2.10 在硬件上调试应用程序 50 小结 51 参考资料和更多信息 51 第二部分 Android应用程序设计精髓 53 第4章 剖析Android应用程序 54 4.1 Android应用程序的生存周期 54 4.1.1 使用Activity执行应用程序任务 54 4.1.2 使用Intent在不同Activity之间实现跳转 55 4.1.3 Android Activity的生存周期 58 4.2 使用Android Manifest文件定义应用程序 62 4.2.1 管理你的应用程序身份 65 4.2.2 注册Activity和其他应用程序组件 65 4.2.3 使用许可权限 67 4.2.4 指定应用程序所需输入设备和软件 69 4.2.5 使用库和Android SDK版本 70 4.2.6 在Manifest文件中定义应用程序的其他配置参数 71 小结 71 第5章 管理应用程序资源 72 5.1 什么是资源 72 5.1.1 应用程序资源的存储方式和位置 72 5.1.2 资源目录的层级结构 72 5.1.3 资源的类型 73 5.1.4 存储不同的资源类型 74 5.1.5 使用程序访问资源 75 5.2 实例:使用Eclipse设置简单资源 75 5.3 使用资源 78 5.3.1 使用String(字符串)资源 79 5.3.2 使用格式化的String资源 80 5.3.3 使用String数组 81 5.3.4 使用颜色 82 5.3.5 使用尺寸 82 5.3.6 使用简单Drawable资源 83 5.3.7 使用图像 84 5.3.8 使用动画 88 5.3.9 使用菜单 89 5.3.10 使用XML文件 90 5.3.11 使用原始文件 91 5.3.12 资源引用 92 5.3.13 使用布局(layout) 93 5.3.14 使用样式(style) 97 5.3.15 使用主题(theme) 100 5.4 引用系统资源 100 5.5 管理各种应用程序配置 101 5.5.1 为本地化和设备配置指定资源 102 5.5.2 在程序中使用适当的配置资源 104 5.5.3 高效地组织应用程序资源 106 小结 107 参考资料和更多信息 108 第三部分 Android用户界面设计精髓 109 第6章 探索用户界面屏幕元素 110 6.1 Android视图、Widget和布局简介 110 6.1.1 Android视图简介 110 6.1.2 Android Widget简介 110 6.1.3 Android布局简介 111 6.2 使用TextView显示文本 111 6.2.1 配置布局和尺寸 112 6.2.2 在文本中创建上下文链接 113 6.3 使用EditText和Spinner获取用户文本 114 6.3.1 使用自动补全辅助用户 116 6.3.2 使用输入过滤器约束用户输入 118 6.3.3 使用Spinner Widget的下拉列表约束用户输入 119 6.4 使用按钮、多选框和单选组 121 6.4.1 使用基本按钮 122 6.4.2 使用多选框和Toggle按钮 123 6.4.3 使用RadioGroup和RadioButton 124 6.5 获取用户输入的日期和时间 126 6.6 向用户显示信息 127 6.6.1 使用ProgressBar指示进度 128 6.6.2 使用SeekBar指示和调整进度 130 6.6.3 使用RatingBar指示和调整评分 130 6.6.4 使用Chronometer指示时间推移 131 6.6.5 使用AnalogClock和DigitalClock指示当前时间 133 6.7 为用户提供选项和上下文菜单 133 6.7.1 使用选项菜单 133 6.7.2 使用ContextMenu(上下文菜单) 136 6.8 掌控用户事件 137 6.8.1 监听触摸模式状态改变 138 6.8.2 监听全屏幕上的事件 138 6.8.3 监听长时单击 139 6.8.4 监听手势 140 6.8.5 监听焦点改变 142 6.8.6 监听屏幕旋转 143 6.9 使用样式 143 6.10 使用主题 146 小结 147 第7章 使用布局设计Android用户界面 149 7.1 创建Android用户界面 149 7.1.1 使用XML资源创建布局 149 7.1.2 使用代码创建布局 150 7.2 使用ViewGroup组织用户界面 152 7.3 使用内建的布局类 156 7.3.1 使用AbsoluteLayout 158 7.3.2 使用FrameLayout 159 7.3.3 使用LinearLayout 161 7.3.4 使用RelativeLayout 162 7.3.5 使用TableLayout 165 7.3.6 在屏幕上使用多布局 167 7.4 使用内建的View容器类 167 7.4.1 结合AdapterView使用数据驱动View容器 168 7.4.2 使用TabActivity和TabHost组织视图 171 7.4.3 探索其他视图容器 173 7.5 使用AppWidget显示应用程序视图 175 7.6 成为AppWidget提供者 176 小结 177 第8章 Android绘图与动画 178 8.1 屏幕绘图 178 8.2 使用文字 182 8.2.1 使用默认字体 182 8.2.2 使用自定义字体 183 8.2.3 测量文字所需的屏幕尺寸 184 8.3 使用位图 184 8.3.1 在画布上绘制位图 185 8.3.2 缩放位图 185 8.3.3 使用Matrix变换位图 186 8.4 使用图形 186 8.4.1 用XML资源定义图形 187 8.4.2 使用程序定义图形 187 8.4.3 绘制各种图形 188 8.5 使用动画 193 8.5.1 使用逐帧动画 194 8.5.2 使用补间动画 195 小结 200 第四部分 常用Android API 201 第9章 使用Android数据和存储API 202 9.1 使用应用程序首选项 202 9.1.1 创建私有和共享首选项 203 9.1.2 搜索和读取首选项 203 9.1.3 新增、修改和删除首选项 204 9.1.4 使用Android文件系统查找首选项数据 204 9.2 使用文件和目录 205 9.2.1 探索Android应用程序目录 206 9.2.2 在默认应用程序目录中创建和写入文件 206 9.2.3 在默认应用程序目录中读取文件内容 207 9.2.4 使用Android文件系统操作其他目录和文件 208 9.3 使用SQLite数据库存储结构化数据 209 9.3.1 创建SQLite数据库 210 9.3.2 创建、修改和删除数据库记录 212 9.3.3 在SQLite数据库中执行查询 215 9.3.4 关闭和删除SQLite数据库 220 9.3.5 设计持久数据库 220 9.3.6 向应用程序界面绑定数据 223 9.4 使用Content Provider在应用程序间共享数据 227 9.4.1 为访问图像调整Content Provider 227 9.4.2 探索Android的部分内建Content Provider 232 9.4.3 在Content Provider中修改数据 239 9.5 使用自定义Content Provider扩展你的Android应用程序 241 9.5.1 继承Content Provider 241 9.5.2 定义数据URI 242 9.5.3 定义数据列 242 9.5.4 实现query()、insert()、update()、delete()和getType() 243 9.5.5 更新Manifest文件 248 9.6 使用Live Folder 249 小结 251 参考资料和更多信息 252 第10章 使用Android网络API 253 10.1 访问因特网(HTTP) 253 10.1.1 从Web读取数据 253 10.1.2 使用HttpURLConnection 254 10.1.3 解析从网络获取的XML 255 10.1.4 使用线程访问网络 257 10.1.5 显示从网络资源获取的图像 260 10.1.6 获取Android网络状态 262 10.2 使用WebView浏览Web 263 小结 265 参考资料和更多信息 266 第11章 使用位置服务(LBS)API 267 11.1 使用全球定位服务(GPS) 267 11.1.1 查找你的位置 267 11.1.2 定位你的模拟器 269 11.2 位置地理编码 269 11.3 在地图上标注位置 272 11.3.1 地图标注内容 272 11.3.2 地图标注视图 272 11.3.3 获得调试API Key 274 11.3.4 拖曳地图视图 275 11.3.5 缩放地图视图 276 11.3.6 标记点 277 11.4 位置服务扩展应用 281 小结 282 参考资料和更多信息 282 第12章 使用Android多媒体API 283 12.1 操作静态图像 283 12.1.1 使用摄像头捕捉静态图像 283 12.1.2 分享图像 287 12.1.3 将图像指定为墙纸 288 12.2 使用视频 289 12.2.1 录制视频 289 12.2.2 播放视频 290 12.3 使用音频 291 12.3.1 录制音频 291 12.3.2 播放音频 293 12.3.3 共享音频 294 12.3.4 使用铃音 294 小结 295 第13章 使用Android电话API 296 13.1 使用电话功能包 296 13.1.1 为获取手机状态信息取得许可权限 296 13.1.2 请求获取通话状态 297 13.1.3 请求获取服务信息 299 13.1.4 使用电话号码 299 13.2 使用短消息 300 13.2.1 获得发送和接收短消息的许可权限 301 13.2.2 发送短消息 301 13.2.3 接收短消息 303 13.3 拨打电话 305 小结 307 参考资料和更多信息 307 第14章 通过OpenGL ES使用Android 3D图形 308 14.1 定义OpenGL ES 308 14.2 使用基于OpenGL ES的Android 3D应用程序 309 14.2.1 创建SurfaceView 309 14.2.2 启动OpenGL ES线程 311 14.2.3 初始化EGL 312 14.2.4 初始化GL 314 14.2.5 绘制 315 14.3 绘制3D物体 316 14.3.1 绘制顶点(vertices) 316 14.3.2 为顶点着色 317 14.3.3 绘制更多复杂物体 318 14.3.4 照亮你的场景 320 14.3.5 为对象赋予材质 321 14.4 同Android视图和事件进行交互 323 14.4.1 允许OpenGL线程向应用程序线程发送信息 324 14.4.2 允许应用程序线程向OpenGL线程发送信息 325 14.5 清理OpenGL ES 326 14.6 使用GLSurfaceView类 327 小结 330 参考资料和更多信息 330 第15章 使用Android可选硬件API 331 15.1 使用设备传感器 331 15.2 使用Wi-Fi 334 15.3 监视电池 337 小结 339 第五部分 更多Android应用程序设计原则 341 第16章 使用通知 342 16.1 使用状态栏发布通知 342 16.2 让手机震动 345 16.3 灯光闪烁 346 16.4 发出声响 347 16.5 自定义通知 348 小结 350 第17章 使用服务 351 17.1 创建服务 351 17.2 控制服务 355 17.3 实现远程接口 356 17.4 实现可包装(parcelable)类 358 小结 360 第六部分 对外发布你的Android应用程序 363 第18章 移动软件开发过程 364 18.1 移动开发过程概览 364 18.2 选择一种软件开发方法 364 18.2.1 理解“瀑布模型”的危险 365 18.2.2 认识迭代式开发的价值 365 18.3 整合应用程序需求 366 18.3.1 确定工程需求 366 18.3.2 为移动应用程序开发用例 367 18.3.3 吸纳第三方需求 367 18.3.4 管理手机设备数据库 368 18.4 项目风险评估 370 18.4.1 确定目标手机 370 18.4.2 获取目标手机 371 18.4.3 确定应用程序需求的可行性 372 18.4.4 理解质量保障的风险 372 18.5 编写基本项目文档 373 18.5.1 为质量保障制定测试计划 374 18.5.2 提供第三方所需的文档 374 18.5.3 提供维护和移植所需的文档 374 18.6 实现移动应用程序配置管理系统 374 18.6.1 选择一个源代码控制系统 374 18.6.2 实现一个可用的版本管理系统 375 18.7 设计移动应用程序 375 18.7.1 认识移动设备的局限 375 18.7.2 移动应用程序体系结构探索 376 18.7.3 可扩展和维护设计 376 18.7.4 应用程序交互设计 377 18.8 开发移动应用程序 377 18.9 测试移动应用程序 378 18.10 发布移动应用程序 378 18.10.1 确定目标市场 379 18.10.2 将市场需求引入应用程序需求 379 18.11 支持和维护移动应用程序 379 18.11.1 维护适当的应用程序文档 379 18.11.2 管理服务器的动态更改 379 18.11.3 确定低风险移植机会 380 小结 380 参考资料和更多信息 380 第19章 开发和测试“防弹”Android应用程序 381 19.1 “防弹”移动应用程序设计最佳实践 381 19.1.1 满足移动用户的需求 382 19.1.2 为移动设备设计用户界面 382 19.1.3 设计稳定、灵敏的移动应用程序 384 19.1.4 设计安全的移动应用程序 385 19.1.5 在设计移动应用程序时考虑利益的最大化 385 19.1.6 在Android应用程序设计时使用第三方标准 386 19.1.7 设计便于维护和升级的移动应用程序 386 19.1.8 在应用程序设计中使用Andriod工具 388 19.1.9 避免设计时的愚蠢错误 388 19.2 “防弹”移动应用程序开发最佳实践 388 19.2.1 设计有效的移动开发过程 389 19.2.2 提早和经常地测试应用程序可行性 389 19.2.3 使用代码标准、代码检查和单元测试以提高代码质量 389 19.2.4 处理某单一手机的缺陷 391 19.2.5 在应用程序开发中使用Android工具 392 19.2.6 避免开发时的愚蠢错误 392 19.3 移动应用程序测试最佳实践 392 19.3.1 设计一个应用程序漏洞跟踪系统 392 19.3.2 管理测试环境 393 19.4 确定设备的“洁净”初始状态 394 19.4.1 模仿现实世界的活动 395 19.4.2 尽量全面地进行测试 395 19.4.3 在应用程序测试中使用Android工具 400 19.4.4 避免测试时的愚蠢错误 401 19.4.5 外包测试的责任 401 小结 401 参考资料和更多信息 401 第20章 销售你的Android应用程序 402 20.1 为发布而打包你的应用程序 402 20.1.1 准备封装你的代码 402 20.1.2 准备你的软件包 403 20.1.3 测试软件包的发布版本 406 20.1.4 认证你的Android应用程序 406 20.2 赚钱 406 20.2.1 在Android Market上销售你的应用程序 406 20.2.2 在自己的服务器上销售你的应用程序 411 20.2.3 销售应用程序的其他途径 412 20.2.4 保护你的知识产权 413 20.2.5 让用户付费 413 小结 414 参考资料和更多信息 414 第七部分 附录 415 附录A Android模拟器快速入门 416 A.1 玩转默认模拟器 416 A.2 使用Android虚拟设备管理模拟器配置 418 A.3 列表显示Android目标操作系统 418 A.3.1 创建AVD 419 A.3.2 列表显示所有已知的AVD 424 A.3.3 删除AVD 424 A.3.4 使用其他的AVD命令 425 A.4 使用启动选项控制模拟器行为 425 A.4.1 以命令行的方式配置模拟器启动选项 426 A.4.2 使用Eclipse配置模拟器启动选项 426 A.5 配置模拟器的位置信息 427 A.6 在两个模拟器实例之间拨打电话 427 A.7 在两个模拟器实例之间发送消息 429 A.8 通过控制台与模拟器交互 429 A.8.1 使用控制台模拟来电 429 A.8.2 使用控制台模拟短消息 429 A.8.3 使用控制台发送GPS坐标 430 A.8.4 使用控制台监视网络状态 431 A.8.5 使用控制台操作电源设置 431 A.8.6 使用其他控制台命令 432 A.9 享受模拟器 432 A.10 认识模拟器的局限 433 附录B Android DDMS快速入门 434 B.1 独立或结合Eclipse使用DDMS 434 B.2 熟悉DDMS的关键特性 436 B.3 使用进程 436 B.3.1 向Android应用程序关联调试器 437 B.3.2 监视Android应用程序的线程活动 437 B.3.3 在Android应用程序中触发垃圾回收(GC) 438 B.3.4 监视Android应用程序的堆活动 438 B.3.5 终止Android进程 438 B.4 使用文件浏览器 439 B.4.1 从模拟器或设备上拷贝文件 440 B.4.2 向模拟器或设备拷贝文件 440 B.4.3 删除模拟器或设备上的文件 440 B.5 使用模拟器控制 441 B.5.1 模拟语音来电 441 B.5.2 模拟短消息接收 441 B.5.3 发送位置坐标 442 B.6 使用应用程序日志 442 B.7 在模拟器或目标设备上截屏 443 附录C Android调试桥快速入门 445 C.1 列表显示连接到计算机的设备和模拟器 445 C.2 针对特定设备使用ADB命令 446 C.3 启动和停止ADB服务进程 446 C.3.1 停止ADB服务进程 446 C.3.2 启动和检测ADB服务进程 446 C.4 使用ADB从/向Android应用程序拷贝文件 446 C.4.1 向设备发送文件 447 C.4.2 从设备提取文件 447 C.5 使用ADB安装和卸载Android应用程序 447 C.5.1 使用ADB安装应用程序 447 C.5.2 使用ADB重装应用程序 448 C.5.3 使用ADB卸载应用程序 448 C.6 使用LogCat记录日志 448 C.6.1 显示所有的日志信息 448 C.6.2 更改日志记录模式以包含日期和时间信息 449 C.6.3 过滤日志信息 449 C.6.4 清除日志 450 C.6.5 将日志输出重定向至一个文件 450 C.6.6 访问次级日志 450 C.7 生成Bug报告 451 C.8 发布Shell命令 451 C.8.1 发布单条Shell命令 451 C.8.2 启动和使用一个Shell会话 451 C.8.3 使用ADB Shell启动和终止模拟器 452 C.8.4 使用ADB Shell查看SQLite数据库 452 C.8.5 在ADB Shell中使用Monkey进行应用程序压力测试 452 C.8.6 通过Shell安装和使用自定义二进制文件 455 C.9 其他ADB命令探索 456 附录D SQLite快速入门 457 D.1 探索SQLite的常见任务 457 D.2 使用sqlite3命令行接口 457 D.2.1 启动sqlite3命令行接口并连接数据库 458 D.2.2 探索你的数据库 458 D.2.3 导入和导出数据库 460 D.2.4 在命令行中执行SQL命令 461 D.2.5 窥视SQLite内部 462 D.2.6 使用其他的sqlite3命令 462 D.2.7 认识SQLite的局限 462 D.3 通过实例理解SQLite:学生成绩数据库 463 D.3.1 设计学生成绩数据库的模式 463 D.3.2 结合AUTOINCREMENT创建简单表 464 D.3.3 向表中插入数据 464 D.3.4 使用SELECT查询表数据 465 D.3.5 创建具有外键和复合主键的表 466 D.3.6 修改和更新表数据 467 D.3.7 使用JOIN进行多表查询 467 D.3.8 使用计算列 468 D.3.9 对计算列使用子查询 469 D.3.10 删除表 470 前言   在以开放手机联盟(Open Handset Alliance,OHA)和Google公司为先驱的开拓下,Android作为一个热门、新潮、免费、开源的移动平台在无线通信领域引起了不小的波澜。而你手中的这本书恰恰能够为软件开发团队提供设计、开发、测试、调试和发布Android应用程序的一系列指导。如果你是一位资深的移动开发人员,那么书中一些小提示和小技巧可以帮助你更好地利用Android的某些独特功能,从而更加顺利地完成整个开发过程。相反,如果你刚刚踏入移动开发领域,那么本书将为你提供所有需要掌握的知识和技能,从而帮助你平稳而顺利地从传统软件开发过渡到移动开发——尤其是,过渡到其中最富有前景的新平台:Android。   此书为谁而写   本书涵盖了作者数年来在移动开发领域所积累的经验,以及成功进行移动项目开发所需的全部概念和实用技术,包括移动开发过程与传统软件开发的区别,还包括帮助你节约宝贵时间和规避隐患的技巧。不管你的项目有多大规模,本书都能为你提供帮助。   本书主要针对以下3类人群。   (1)想要学习编写专业Android应用程序的软件开发人员   本书主体部分主要针对有Java程序开发经验而无需具有移动开发经验的程序员。但是,具有丰富移动开发经验的开发人员更能够从本书中学习到如何充分运用和发挥Android的优势,同时了解它与市面上其他移动开发技术的区别。   (2)担负Android程序测试任务的QA人员   无论QA工程师采用的是“黑盒”还是“白盒”的测试方法,这本书对于他们而言都具有非凡的价值。我们花了几章的篇幅来讲解有关QA的问题,例如:制订稳健的测试计划,为应用程序开发漏洞跟踪系统,管理手机设备以及利用Android工具进行完整测试的方法。   (3)筹建和管理Android开发团队的项目经理   本书可以帮助项目经理完成从筹建开发团队、聘用开发人员到执行Android项目的整个过程。我们探讨了有关项目风险管理和顺利进行项目开发的有关话题。   这本书不仅适用于软件开发人员,而且适用于一个正在寻找潜在的垂直市场应用软件(Vertical Market Application)的公司,一个正在构思某个“新奇酷”手机软件的企业家,抑或一个正在探寻新手机乐趣的发烧友。同时,这本书也可以帮助某些正在为某个特定目的(例如可行性分析)而对Android进行评估的企业,或者任何拥有Android手机并且乐于创造新的移动应用软件的人。   书中解答的问题   本书为你解答了以下问题。   ①什么是Android?   ②Android和其他移动技术有什么不同?开发人员如何利用Android的优势?   ③开发人员如何使用针对Java的Eclipse开发环境来开发和调试模拟器和真机上的Android应用程序?   ④Android应用程序是怎样架构起来的?   ⑤如何为移动应用程序——尤其是为Android——设计强大的用户界面?   ⑥Android SDK提供哪些功能?开发人员如何使用它们?   ⑦移动应用开发过程同传统桌面应用程序开发有什么区别? .  ⑧对于Android开发而言,什么样的开发策略是最佳的?   ⑨项目经理、开发人员和测试人员在策划、开发和测试移动应用程序时应该关注什么?   ⑩开发团队如何设计能够供发布使用的“防弹(bulletproof)”的Android应用程序?   11开发团队如何封装Android应用程序以供部署(deployment)?   Q9开发团队如何利用Android应用程序谋求利润?   本书的结构   本书分为7个部分。前5个部分是开发人员感兴趣的主要问题,第6和第7部分则为项目经理、QA人员和开发人员提供了更多有用的信息。   接下来对本书的各个部分作一个简单的介绍。   (1)第1部分:Android概览   第1部分简单介绍了Android,阐释了它和其他移动平台的区别。你将会熟悉Android SDK和相关工具,了解如何搭建开发环境,以及怎样在模拟器及手机上编写和运行第一个Android应用程序。   (2)第2部分:Android应用程序设计精髓   第2部分介绍了设计一个Android应用程序所需要了解的原则。你将学习到如何构建Android应用程序,怎样在你的项目中包含诸如字符串、图形及其他用户界面组件等资源的方法。   (3)第3部分:Android用户界面设计精髓   第3部分对在Android中应该怎样设计用户界面进行了更深入的探讨。你将学习到核心用户界面元素——视图的有关知识,以及Android SDK提供的基本的屏幕绘制和动画功能。   (4)第4部分:常用Android API   第4部分由一系列章节组成,每一章都对Android SDK中最重要的API进行了更深入的讲解,例如数据和存储API(包括文件和数据库使用,以及内容提供者接口)、连网、电话、定位服务(LBS)、多媒体和3D图形API,以及可选硬件API。   (5)第5部分:更多Android应用程序设计原则   第5部分涵盖了更多的Android应用程序设计原则,例如通知和服务。   (6)第6部分:对外发布你的Android应用程序   第6部分涵盖了移动软件开发的全过程,还为项目经理、软件开发人员和QA人员提供了不少小提示和小技巧。   (7)第7部分:附录   第7部分针对Android开发工具提供了几个有用的快速入门引导:模拟器、ADB和DDMS,以及SQLite指南。   本书使用的Android开发环境   本书所有Android应用程序代码均在如下环境中编写:   ·Windows Vista SP1和Mac OS X 10.5.6   ·Eclipse Java IDE Version 3.4(Ganymede)   ·Eclipse JDT插件和Web Tools Platform(WTP)   ·Sun Java SE开发工具包(JDK)6 Update 10   ·Android SDK Version1.1R1和Version1.5 R1   Note   本书大部分示例程序均同时在Fedora 8和Windows XP平台下使用Android SDK测试通过。   可用的补充材料   书中的源代码在随书提供的光盘和原出版社网站(www.informit.com/title/9780321627094)上均可找到。   作者Lauren Darcey和Shane Conder在关于本书的博客(http://androidbook.blogspot.com)中提供了有关Android的最新信息。   获取更多信息   读者在互联网上可以找到一个活跃而有用的Android开发人员社区。另外,下面的一系列网站可供Android开发人员获取更多资源:   ·Android Developer Website——Android SDK和开发人员参考网站:   http://developer.android.com/   ·Open Handset Alliance——供Android制造商、运营商和开发人员:   www.openhandsetalliance.com/   ·Android Market——购买和销售Android应用程序:   www.android.com/market/   ·anddev.org——一个Android开发人员论坛:   www.anddev.org   ·Google Team Android Apps——开源Android应用程序:   http://apps-for-android.googlecode.com/   ·Fierce Developer——为无线开发人员提供技术周刊:   www.fiercedeveloper.com/   ·Fierce Wireless一每日提供无线通信业的相关文章:   www.fiercewireless.com/   ·Fierce Mobile Content——每日提供移动应用内容和市场有关的文章:   www.fiercemobilecontent.com/   ·Wireless Developer Network——提供无线领域的每日新闻:   www.wirelessdevnet.com/   ·Developer.com——面向开发者提供移动技术文章的网站:   www.developer.com/   本书约定   本书遵循如下约定:   ①用于指示代码接续,即该行代码应与上行代码保持在同一行。出现该符号的代码行略去了缩进。   ②代码和程序术语使用等宽(monospace)字体表示。   同时,本书提供如下类型的信息框:   Tip   “Tip”提供同当前内容相关的有用信息和提示。   Note   “Note”为读者补充感兴趣的相关信息。   Caution   “Caution”提供可能遇到的陷阱的有关信息, 以及避免它们的方法。   Android SDK1.5新特性   这一特殊的信息框用于展现Android SDK 1.5有趣的新特性。   联系作者   作者Lauren和Shane欢迎你提出批评意见。如果你对本书的内容存在任何疑问,或有任何反馈信息,请访问本书博客:http://androidbook.blogspot.com或发送电子邮件至:androidwirelessdev@gmail.com。   
2022-08-25 19:12:00 44.78MB Android 移动应用 开发入门 Android精通
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008宝典 共2部分:此为第002部分 基本信息 作者: 刘智勇    刘径舟    丛书名: 宝典丛书 出版社:电子工业出版社 ISBN:9787121102820 上架时间:2010-3-27 出版日期:2010 年3月 开本:16开 页码:802 版次:1-1 内容简介   《SQL Server 2008宝典》全面介绍了SQL Server 2008各方面的知识,全书由6部分组成:第1部分为数据库的基础篇,介绍了数据库的类型、概念、对象、SQL语言等;第2部分为SQLServer 2008的准备篇,介绍了SQL Server 2008的功能、特性、各版本的比较、安装方法、SQL Server 2008的服务、客户端的工具等;第3部分为SQL Server 2008的基本操作篇,介绍如何管理与配置SQL Server 2008服务器、如何创建数据库和数据表、如何对数据库里的数据进行操作;第4部分为数据库管理篇,介绍如何使用T-SQL程序对数据进行复杂的运算,以及如何使用视图、存储过程、触发器、索引、用户定义数据类型、用户定义函数、全文索引、游标、事务和锁、统计信息和同义词等方面的知识;第5部分为SQL Server高级技术,介绍如何进行数据库备份与恢复、如何规划数据库、如何保证数据库的安全、复制与发布、自动化管理、如何使用性能工具优化数据库、数据的导入导出、SQL Server邮件的使用、Analysis Services、Reporting Services、SQL Server与XML的应用,以及如何使用客户端和应用程序访问SQL Server;第6部分为SQL Server 2008改进篇,介绍了SQL Server 2008相对于之前版本进行了哪些方面的重大改进和优化,进一步帮助读者了解SQL Server 2008更多的独有特性。   《SQL Server 2008宝典》适合SQL Server 2008的初学者学习,也适合子数据库的管理人员和开发人员阅读和参考。 编辑推荐   《SQL Server 2008宝典》:实例丰富,内容充实。书中针对每一个知识点列举了大量实例来说明该功能如何实现,全书共有超过500个精彩实例。   讲解通俗,步骤详细。通过通俗易懂的语言讲解SQL Server 2008的各个强大功能,并配以插图讲解和详细的步骤说明,帮助读者快速掌握实用技能。   由浅入深,难易穿插。《SQL Server 2008宝典》面向入门级和提高级两类读者,每个知识点都采用由浅入深的讲解方式,并穿插介绍重点和难点。   提供源码,方便学习。书中涉及到的T—SQL程序在网站上提供下载,打开相应SQL文件即可直接执行其中的代码。   SQL Server 2008是一个能用于大型联机事务处理、数据仓库和电子商务等方面应用的数据库平台,也是一个能用于数据集成、数据分析和报表解决方案的商业智能平台,为用户提供了强大、集成、便于使用的工具,使系统管理员与普通用户能更方便、更快捷地管理数据库或设计、开发应用程序。 目录 封面 -33 封底 803 扉页 -32 版权 -31 前言 -30 目录 -26 第1部分 基础篇 1 第1章 认识数据库 2 1.1 数据库的类型 2 1.1.1 结构型数据库 2 1.1.2 网络型数据库 2 1.1.3 关系型数据库 2 1.1.4 面向对象型数据库 3 1.2 数据库的基本概念 3 1.2.1 数据 3 1.2.2 数据库 3 1.2.3 数据库管理系统 3 1.2.4 数据库系统 3 1.3 常见的数据库对象 3 1.3.1 表与记录 4 1.3.2 主键与外键 4 1.3.3 索引 4 1.3.4 约束 5 1.3.5 视图 5 1.3.6 关系图 5 1.3.7 默认值 5 1.3.8 规则 5 1.3.9 存储过程 6 1.3.10 触发器 6 1.3.11 用户和角色 6 1.4 数据库管理系统的基本功能 6 1.4.1 定义数据 6 1.4.2 处理数据 6 1.4.3 保证数据安全 6 1.4.4 备份和恢复数据 6 1.5 SQL语言简介 6 1.5.1 SQL语言的历史 7 1.5.2 SQL语言的优点 7 1.5.3 SQL语言分类 7 1.6 数据库系统的用户 8 1.7 小结 8 第2章 SQL Server 2008简介及安装 9 2.1 SQL Server 2008简介 9 2.1.1 SQL Server 2008数据平台 9 2.1.2 使用SQL Server 2008能获得的好处 10 2.2 SQL Server 2008新特性 10 2.3 SQL Server 2008新功能 11 2.3.1 可信任性 11 2.3.2 开发和管理生产效率 12 2.3.3 商业智能 13 2.4 SQL Server 2008各版本比较 15 2.4.1 可扩展性 15 2.4.2 高可用性 15 2.4.3 安全性 16 2.4.4 复制 16 2.4.5 可管理性 16 2.4.6 管理工具 16 2.4.7 开发工具 17 2.4.8 可编程性 17 2.4.9 空间和位置服务 17 2.4.10 Integration Services 18 2.4.11 数据仓库创建 18 2.4.12 数据仓库规模和性能 18 2.4.13 多维分析 19 2.4.14 数据挖掘 19 2.4.15 报表 19 2.5 安装SQL Server 2008的系统要求 20 2.5.1 CPU与内存要求 20 2.5.2 硬盘空间要求 20 2.5.3 操作系统要求 20 2.5.4 其他要求 22 2.6 安装SQL Server 2008 23 2.7 升级到SQL Server 2008 33 2.7.1 升级之前要考虑的问题 33 2.7.2 升级注意事项 34 2.7.3 使用SQL Server 2008升级顾问 35 2.7.4 升级到SQL Server 2008 38 2.8 小结 40 第2部分 准备篇 41 第3章 初识SQL Server 2008 42 3.1 服务器上的后台服务 42 3.1.1 SQL Server服务 43 3.1.2 SQL Server Active Directory Helper服务 43 3.1.3 SQL Server Agent服务 43 3.1.4 SQL Server Analysis Services服务 43 3.1.5 SQL Server Browser服务 44 3.1.6 SQL Server FullText Search服务 44 3.1.7 SQL Server Integration Services服务 44 3.1.8 SQL Server Reporting Services服务 44 3.1.9 SQL Server VSS Writer服务 45 3.2 客户端上的管理工具 45 3.2.1 SQL Server Management Studio 45 3.2.2 Reporting Services配置 45 3.2.3 SQL Server Configuration Manager 47 3.2.4 SQL Server错误和使用情况报告 48 3.2.5 SQL Server Profiler 49 3.2.6 数据库引擎优化顾问 50 3.2.7 Visual Studio 2008 52 3.2.8 SQL Server Business Intelligence Development Studio 52 3.3 SQL Server Management Studio 52 3.3.1 认识SQL Server Management Studio的界面 53 3.3.2 更改SQL Server Management Studio的界面布局 53 3.3.3 使用查询编辑器 53 3.3.4 利用编辑器自动生成查询语句 54 3.3.5 脱机编写SQL语句后连接到服务器 55 3.3.6 全屏显示查询编辑器 55 3.3.7 使用模板编写SQL语句 56 3.3.8 创建自定义模板 57 3.3.9 使用项目脚本和解决方案 58 3.4 示例数据库 59 3.4.1 SQL Server 2008示例数据库 59 3.4.2 本书示例数据库 61 3.5 小结 61 第3部分 基础操作篇 63 第4章 数据库服务器管理 64 4.1 数据库服务器的工作模式 64 4.1.1 C/S模式 64 4.1.2 B/S模式 65 4.2 连接与断开数据库服务器 65 4.2.1 用SQL Server Management Studio连接服务器 65 4.2.2 在已注册的服务器里添加服务器组与服务器 68 4.2.3 使用对象资源管理器连接服务器 72 4.2.4 通过服务器注册连接到服务器 73 4.2.5 断开与数据库服务器的连接 73 4.3 使用配置管理器配置SQL Server服务 74 4.3.1 启动/停止/暂停/重新启动服务 74 4.3.2 配置服务的启动模式 76 4.3.3 更改登录身份 77 4.3.4 SQL Server 2008使用的网络协议 78 4.3.5 为SQL Server 2008配置共享内存协议 79 4.3.6 为SQL Server 2008配置管道协议 80 4.3.7 为SQL Server 2008配置TCP/IP协议 84 4.3.8 配置客户端网络协议的使用顺序 86 4.3.9 隐藏实例 87 4.4 配置远程SQL Server服务 88 4.4.1 配置远程SQL Server服务的权限 89 4.4.2 用SQL Server Management Studio停止和启动远程SQL Server服务 89 4.4.3 通过已注册的服务器启动远程SQL Server服务 91 4.4.4 使用SQL Server配置管理器远程管理SQL Server服务 91 4.5 配置SQL Server 2008服务器 92 4.5.1 服务器属性的常规设置 92 4.5.2 服务器属性的内存设置 93 4.5.3 服务器属性的处理器设置 94 4.5.4 服务器属性的安全性设置 96 4.5.5 服务器属性的连接设置 97 4.5.6 服务器属性的数据库设置 98 4.5.7 服务器属性的高级选项设置 99 4.5.8 服务器属性的权限设置 100 4.6 通过日志查看服务器的运行情况 101 4.6.1 在事件查看器中查看服务器的运行情况 101 4.6.2 通过日志查看器查看SQL Server日志 102 4.6.3 在LOG文件夹中查看SQL Server错误日志 103 4.7 小结 104 第5章 数据库管理 105 5.1 创建数据库前的准备 105 5.1.1 数据库命名规则 105 5.1.2 创建数据库需要的权限 106 5.1.3 数据库的所有者 106 5.1.4 数据库的上限 106 5.1.5 数据库文件和文件组 106 5.1.6 记录数据库操作的事务日志 106 5.1.7 数据库状态 107 5.2 在SQL Server Management Studio中创建数据库 107 5.3 使用Create database语句创建数据库 113 5.3.1 基本语法 113 5.3.2 T-SQL中的语法约定 114 5.3.3 参数讲解 115 5.3.4 Create Database语句需要注意的功能 116 5.3.5 举例说明 116 5.3.6 使用模板 119 5.4 修改数据库设置 122 5.4.1 使用SQL Server Management Studio修改数据库设置 122 5.4.2 查看数据库的基本信息 123 5.4.3 增加、删除与修改数据库文件 123 5.4.4 修改数据库的所有者 124 5.4.5 设置全文索引 125 5.4.6 增加、删除与修改文件组 126 5.4.7 修改数据库的排序规则 127 5.4.8 修改数据库的兼容性 128 5.4.9 限制用户的访问 128 5.4.10 设置用户及角色对数据库的使用权限 128 5.4.11 修改数据库名称 130 5.5 使用Alter database语句修改数据库 131 5.5.1 基本语法 131 5.5.2 参数说明 131 5.5.3 Alter database语句的注意事项 134 5.5.4 典型案例 134 5.6 分离与附加数据库 136 5.6.1 分离数据库 136 5.6.2 附加数据库 139 5.7 脱机和联机数据库 143 5.7.1 脱机数据库 143 5.7.2 联机数据库 144 5.8 删除数据库 145 5.8.1 在SQL Server Management Studio中删除数据库 145 5.8.2 用Drop database语句删除数据库 146 5.9 收缩数据库 146 5.9.1 自动收缩数据库 147 5.9.2 手动收缩数据库 147 5.9.3 手动收缩数据库文件 149 5.10 编写数据库脚本 151 5.11 小结 153 第6章 数据表管理 154 6.1 数据表简介 154 6.1.1 数据表的分类 155 6.1.2 认识列 155 6.2 数据类型 155 6.2.1 精确数字型 156 6.2.2 近似数字型 157 6.2.3 日期和时间型 157 6.2.4 字符串型 157 6.2.5 Unicode字符串型 158 6.2.6 二进制字符串型 158 6.2.7 其他数据类型 159 6.2.8 用户自定义型 159 6.3 在SQL Server Management Studio中创建表 160 6.3.1 定义数据表的字段和主键 160 6.3.2 设置默认值 162 6.3.3 设置标识列 162 6.3.4 建立表与表之间的关系 163 6.3.5 创建索引 166 6.3.6 创建约束 167 6.3.7 设置数据表所在文件组 169 6.4 用T-SQL语言创建表 170 6.4.1 基本语法 170 6.4.2 参数说明 170 6.4.3 创建新表 175 6.4.4 创建标识字段 176 6.4.5 创建带标识种子和标识增量的标识字段 176 6.4.6 创建非Null字段 176 6.4.7 字段的默认值 177 6.4.8 将创建的表放在文件组中 177 6.4.9 使用Check约束 177 6.4.10 设置字段的排序规则 178 6.4.11 创建外键 178 6.4.12 设置外键的更新规则和删除规则 178 6.4.13 创建Unique约束 179 6.4.14 创建计算列 179 6.4.15 设置数据表的约束 180 6.4.16 Create Table语句的注意事项 180 6.5 在SQL Server Management Studio中修改表 180 6.5.1 修改数据表名 180 6.5.2 插入、移动和删除数据表的字段 181 6.5.3 修改字段数据类型 182 6.5.4 修改主键、外键、索引和约束 182 6.5.5 修改数据表属性 182 6.6 用T-SQL语言修改数据表结构 184 6.6.1 基本语法 184 6.6.2 参数说明 184 6.6.3 修改字段属性 189 6.6.4 添加字段 189 6.6.5 添加字段并设置字段属性 189 6.6.6 删除字段 189 6.6.7 添加约束 189 6.6.8 禁用约束 190 6.6.9 启用约束 190 6.6.10 删除约束 190 6.6.11 设置主键 190 6.6.12 修改字段名和数据表名 191 6.6.13 Create Table语句的注意事项 191 6.7 在SQL Server Management Studio中删除表 191 6.8 用Drop Table删除数据表 194 6.9 编写表脚本 194 6.10 数据库关系图的使用 195 6.10.1 创建数据库关系图并添加数据表 195 6.10.2 添加相关联的数据表 197 6.10.3 更改数据表的显示模式 197 6.10.4 在关系图中删除数据表 198 6.10.5 建立和删除表与表之间的关联 198 6.10.6 保存部分修改过的数据表 199 6.10.7 在关系图中创建数据表 200 6.10.8 在关系图中修改字段属性 201 6.10.9 在关系图中设置或修改表的外键与约束 201 6.11 临时表简介 202 6.12 已分区表简介 203 6.13 小结 203 第7章 数据(记录)操作 204 7.1 在SQL Server Management Studio中查看记录 204 7.1.1 选择前1000行 204 7.1.2 返回前几条记录 204 7.2 在SQL Server Management Studio中插入记录 205 7.3 用Insert语句插入记录 207 7.3.1 基本语法 207 7.3.2 参数说明 207 7.3.3 简单的插入语句 208 7.3.4 按表中不同字段顺序插入记录 208 7.3.5 插入值少于字段数的记录 209 7.3.6 在标识列字段里插入字段内容 209 7.3.7 从数据表中查询记录并插入到另一个表中 209 7.3.8 从数据表中查询部分字段记录并插入到另一个表中 210 7.3.9 从数据表中查询记录插入其他表并为字段添加固定内容 210 7.3.10 在Insert语句里使用exec子句 211 7.3.11 在数据中只插入默认值 211 7.4 插入记录的注意事项 211 7.5 用Update语句更新记录 212 7.5.1 基本语法 212 7.5.2 参数说明 213 7.5.3 简单的更新语句 214 7.5.4 使用计算值更新记录 214 7.5.5 引用其他表里的字段值更新记录 214 7.5.6 使用top子句更新记录 215 7.6 在SQL Server Management Studio中删除记录 215 7.7 用Delete语句删除记录 215 7.7.1 基本语法 215 7.7.2 参数说明 216 7.7.3 简单的删除语句 217 7.7.4 删除多条记录 217 7.7.5 引用其他表里的字段值来删除记录 217 7.8 用Truncate Table语句删除记录 217 7.9 用Select语句进行查询 218 7.10 用Select子句设定查询内容 218 7.10.1 基本语法 218 7.10.2 参数说明 219 7.10.3 查询表中所有列 219 7.10.4 查询表中某几列 220 7.10.5 为查询添加计算列 220 7.10.6 查看最前记录 221 7.10.7 查看不重复记录 222 7.10.8 查询表中的标识列或GUID列 223 7.11 用From子句指定查询哪些表 223 7.11.1 基本语法 223 7.11.2 参数说明 224 7.11.3 简单的From子句 225 7.11.4 从两个表中联合查询记录 225 7.11.5 从多个表中联合查询记录 227 7.11.6 JOIN的其他类型 227 7.11.7 使用表别名 229 7.11.8 表JOIN自身 230 7.12 用Where子句设定查询条件 230 7.12.1 基本语法 230 7.12.2 参数说明 231 7.12.3 单个查询条件 232 7.12.4 设置多个查询条件 232 7.12.5 在查询条件里使用函数 233 7.12.6 查询两个条件之间的记录 233 7.12.7 查询字段内容为NULL的记录 234 7.12.8 将结果集作为查询条件 234 7.12.9 模糊查询 235 7.12.10 在模糊查询中查询含有通配符的文本 236 7.12.11 使用EXISTS关键字 237 7.12.12 使用ALL,ANY和SOME关键字 237 7.13 使用Order by子句排序 238 7.13.1 基本语法 238 7.13.2 参数说明 239 7.13.3 按一个字段排序 239 7.13.4 按多个字段排序 239 7.14 使用Group by子句分组 239 7.14.1 基本语法 240 7.14.2 参数说明 240 7.14.3 Group by的基本用法 240 7.14.4 在Group by中使用表达式 241 7.14.5 使用with cube对所有字段进行汇总 241 7.14.6 使用with rollup对第一个字段进行汇总 242 7.14.7 使用Group by all对所有数据分组 243 7.15 使用Having子句在分组中设置查询条件 243 7.15.1 基本语法 244 7.15.2 使用Having对分组设置查询条件 244 7.16 使用Compute子句归类 244 7.16.1 基本语法 245 7.16.2 参数说明 245 7.16.3 使用Compute归类 245 7.16.4 使用Compute by归类 246 7.17 使用UNION子句合并多个查询结果 246 7.17.1 基本语法 247 7.17.2 参数说明 247 7.17.3 使用UNION ALL合并两个查询结果集 248 7.17.4 使用UNION合并两个查询结果集 248 7.17.5 使用UNION加入临时数据 248 7.17.6 在UNION的结果集里排序 248 7.17.7 在UNION的结果集里分组 249 7.18 使用Select into子句为查询结果建立新表 249 7.18.1 基本语法 249 7.18.2 使用Select into创建一个新表 249 7.18.3 在Select into中设置复杂的查询条件 250 7.18.4 使用Select into复制表结构 250 7.19 在不同数据库中查询记录 251 7.20 NULL字段的处理方法 251 7.20.1 使用NULL时要注意的事项 251 7.20.2 检查字段内容是否为NULL 252 7.20.3 使用ISNULL函数替换NULL值 252 7.21 SQL Server 2008语句新增功能 253 7.21.1 Select语句新增功能 253 7.21.2 Insert语句新增功能 253 7.21.3 Update语句新增功能 254 7.21.4 Delete语句新增功能 255 7.22 小结 255 第4部分 数据库管理篇 257 第8章 T-SQL程序 258 8.1 T-SQL概述 258 8.1.1 什么是T-SQL 258 8.1.2 T-SQL的语法约定 258 8.2 数据库对象的引用方法 259 8.2.1 引用数据库对象的方法 259 8.2.2 架构 260 8.2.3 创建自定义架构 261 8.3 T-SQL中的批处理 262 8.3.1 一次执行多个T-SQL语句 262 8.3.2 使用GO语句分隔多个批 262 8.4 T-SQL中的注释 263 8.4.1 --注释 263 8.4.2 /* … */注释 263 8.5 T-SQL数据类型及转换 264 8.5.1 使用CAST转换数据类型 264 8.5.2 使用CONVERT转换数据类型 265 8.5.3 隐式数据类型转换 266 8.5.4 数据类型转换时的注意事项 267 8.6 T-SQL运算符 267 8.6.1 算术运算符 267 8.6.2 赋值运算符 268 8.6.3 位运算符 268 8.6.4 比较运算符 268 8.6.5 逻辑运算符 268 8.6.6 字符串串联运算符 269 8.6.7 一元运算符 269 8.7 运算符的优先级 269 8.8 T-SQL中的常量 270 8.8.1 字符串常量 270 8.8.2 Unicode常量 270 8.8.3 二进制常量 270 8.8.4 bit常量 271 8.8.5 datetime常量 271 8.8.6 integer常量 271 8.8.7 decimal常量 271 8.8.8 float和real常量 271 8.8.9 money常量 271 8.8.10 uniqueidentifier常量 272 8.8.11 在T-SQL中使用常量 272 8.9 T-SQL中的变量 272 8.9.1 局部变量 273 8.9.2 全局变量 275 8.10 T-SQL的流程控制 277 8.10.1 Begin…End语句 277 8.10.2 If…Else语句 278 8.10.3 While语句 279 8.10.4 Case语句 280 8.10.5 Goto语句 282 8.10.6 Waitfor语句 283 8.10.7 Return语句 284 8.10.8 Try…Catch语句 284 8.10.9 Execute语句 285 8.11 T-SQL的常用函数 287 8.11.1 聚合函数 287 8.11.2 日期和时间函数 288 8.11.3 数学函数 288 8.11.4 字符串函数 289 8.11.5 文本和图像函数 289 8.11.6 配置函数 289 8.11.7 游标函数 290 8.11.8 元数据函数 290 8.11.9 行集函数 291 8.11.10 安全函数 291 8.11.11 系统统计函数 291 8.11.12 其他函数 292 8.12 不应使用的关键字 293 8.13 小结 295 第9章 视图 296 9.1 视图简介 296 9.2 创建视图 297 9.2.1 在SQL Server Management Studio中创建视图 298 9.2.2 使用Create view语句创建视图 299 9.3 查看与修改视图 302 9.3.1 查看视图 302 9.3.2 在SQL Server Management Studio中修改视图 303 9.3.3 使用Alter view语句修改视图 303 9.4 加密视图 304 9.5 限制视图所用的表或视图不能更改设计和删除 305 9.6 检查视图的数据变动 307 9.7 编辑视图中的记录 307 9.7.1 编辑视图中的记录的限制 307 9.7.2 在SQL Server Management Studio中操作视图记录 308 9.7.3 使用Insert,Update和Delete语句操作视图记录 308 9.8 删除视图 309 9.8.1 在Management Studio中删除视图 309 9.8.2 使用Drop view语句删除视图 309 9.9 为视图重命名 309 9.10 小结 310 第10章 存储过程 311 10.1 存储过程简介 311 10.1.1 存储过程的概念 311 10.1.2 使用存储过程的优点 311 10.1.3 存储过程的分类 312 10.2 创建存储过程 312 10.2.1 使用Create procedure语句创建存储过程 312 10.2.2 在SQL Server Management Studio中建立存储过程 314 10.3 修改存储过程 316 10.3.1 使用Alter procedure语句修改存储过程 316 10.3.2 在SQL Server Management Studio中修改存储过程 316 10.3.3 修改存储过程名 317 10.4 执行存储过程 318 10.5 设计存储过程的高级技巧 320 10.5.1 设计存储过程时的注意事项 320 10.5.2 参数传递的方式 321 10.5.3 存储过程的返回值 322 10.5.4 不显示影响行数的通知 324 10.5.5 临时存储过程 325 10.5.6 嵌套调用存储过程 325 10.5.7 查看存储过程的依赖关系 326 10.5.8 加密存储过程 327 10.5.9 查看存储过程的源代码 327 10.5.10 设计存储过程组 328 10.6 删除存储过程 329 10.6.1 使用Drop procedure语句删除存储过程 329 10.6.2 在SQL Server Management Studio中删除存储过程 329 10.7 常用的系统存储过程 330 10.7.1 sp_help:查看对象信息 330 10.7.2 sp_helpdb:查看数据库信息 330 10.7.3 sp_helpfile:查看数据库文件信息 331 10.7.4 sp_helpfilegroup:查看文件组信息 331 10.7.5 sp_helpindex:查看索引信息 331 10.7.6 sp_helpsort:查看排序及字符集信息 331 10.7.7 sp_helpstats:查看列和索引的统计信息 331 10.7.8 sp_helptext:查看对象内容 332 10.7.9 sp_helptrigger:查看触发器信息 332 10.7.10 sp_lock:查看锁信息 332 10.7.11 sp_monitor:查看系统统计信息 332 10.7.12 sp_rename:修改对象名 332 10.7.13 sp_renamedb:修改数据库名 332 10.7.14 sp_who:查看用户和进程信息 333 10.7.15 sp_columns:查看列信息 333 10.7.16 sp_databases:查看数据库信息 333 10.7.17 sp_fkeys:查看外键信息 333 10.7.18 sp_pkeys:查看主键信息 334 10.7.19 sp_server_info:查看SQL Server信息 334 10.7.20 sp_tables:查看表或视图信息 334 10.7.21 sp_stored_procedures:查看存储过程信息 334 10.8 CLR存储过程 335 10.8.1 创建CLR存储过程的步骤 335 10.8.2 开启CLR支持 335 10.8.3 编写CLR存储过程内容 335 10.8.4 将CLR存储过程编译成DLL文件 337 10.8.5 注册程序集 337 10.8.6 创建引用程序集的存储过程 338 10.8.7 执行CLR存储过程 339 10.9 小结 339 第11章 触发器 340 11.1 触发器简介 340 11.1.1 触发器的概念和作用 340 11.1.2 触发器的种类 341 11.2 DML触发器的分类 341 11.3 DML触发器的工作原理 341 11.3.1 After触发器的工作原理 342 11.3.2 Instead Of触发器的工作原理 342 11.4 设计DML触发器的注意事项及技巧 342 11.4.1 设计触发器的限制 342 11.4.2 如何用触发器取得字段修改前和修改后的数据 343 11.4.3 使用DML触发器的注意事项 343 11.5 设计After触发器 344 11.5.1 设计简单的After触发器 344 11.5.2 测试触发器功能 346 11.5.3 建立触发器的SQL语句 347 11.6 设置After触发器的激活顺序 350 11.7 触发器的嵌套 352 11.8 触发器的递归 354 11.9 设计Instead Of触发器 355 11.9.1 Instead Of触发器的使用范围 355 11.9.2 设计简单的Instead Of触发器 355 11.10 查看DML触发器 356 11.10.1 在SQL Server Management Studio中查看触发器 356 11.10.2 使用系统存储过程查看触发器 357 11.11 修改DML触发器 359 11.12 删除DML触发器 359 11.13 禁用与启用DML触发器 359 11.14 DDL触发器 360 11.15 设计DDL触发器 360 11.15.1 建立DDL触发器的语句 360 11.15.2 测试触发器功能 363 11.16 查看与修改DDL触发器 365 11.17 触发器的应用技巧 366 11.17.1 如何知道触发器修改了多少条记录 366 11.17.2 如何知道插入记录的自动编号是多少 367 11.17.3 如何知道某个字段是否被修改 367 11.17.4 如何返回错误信息 368 11.18 小结 370 第12章 索引 371 12.1 索引简介 371 12.2 索引的结构 371 12.3 索引的分类 372 12.3.1 聚集索引与非聚集索引 372 12.3.2 唯一索引 372 12.3.3 复合索引与包含性列索引 373 12.3.4 视图索引 373 12.3.5 全文索引 373 12.3.6 XML索引 373 12.4 系统自动建立的索引 374 12.4.1 主键字段 374 12.4.2 Unique字段 374 12.5 建立索引的注意事项 375 12.6 在SQL Server Management Studio中创建索引 375 12.7 使用Create index语句创建索引 379 12.7.1 基本语法 379 12.7.2 参数说明 380 12.7.3 创建简单的索引 380 12.7.4 创建简单的复合索引 381 12.7.5 创建唯一索引 381 12.7.6 创建聚集索引 381 12.7.7 创建降序的非聚集索引 381 12.7.8 创建包含性列索引 381 12.7.9 创建索引并指定其所在的文件组 382 12.7.10 创建索引并设置填充因子 382 12.7.11 创建索引并设置填充索引 382 12.7.12 创建复杂的索引 383 12.8 查看与修改索引 383 12.8.1 在SQL Server Management Studio中查看与修改索引 383 12.8.2 使用sp_helpindex查看索引 385 12.8.3 使用sys.indexes视图查看索引信息 385 12.8.4 使用Alter index语句修改索引 386 12.9 重新生成和重新组织索引 387 12.9.1 在SQL Server Management Studio中重新生成索引 388 12.9.2 在SQL Server Management Studio中重新组织索引 388 12.9.3 使用REBUILD参数重新生成索引 389 12.9.4 使用REORGANIZE参数重新组织索引 390 12.9.5 使用SQL Server Management Studio查看索引碎片 390 12.9.6 使用函数sys.dm_db_index_physical_stats查看索引碎片 391 12.10 禁用索引 392 12.10.1 在SQL Server Management Studio中禁用索引 392 12.10.2 使用DISABLE参数禁用索引 392 12.11 重命名索引 393 12.12 删除索引 394 12.12.1 删除索引的注意事项 394 12.12.2 在SQL Server Management Studio中删除索引 394 12.12.3 使用Drop index语句删除索引 394 12.13 索引视图 394 12.13.1 索引视图简介 395 12.13.2 创建索引视图 395 12.14 小结 395 第13章 用户定义数据类型和函数 396 13.1 用户定义数据类型 396 13.1.1 创建用户定义数据类型 396 13.1.2 使用用户定义数据类型 398 13.1.3 删除用户定义数据类型 399 13.2 用户定义函数 400 13.2.1 用户定义函数与存储过程的比较 401 13.2.2 用户定义函数类型 401 13.2.3 创建标量值函数 401 13.2.4 创建内联表值函数 403 13.2.5 创建多语句表值函数 404 13.2.6 在SQL Server Management Studio里创建用户定义函数 406 13.2.7 查看与修改用户定义函数 407 13.2.8 使用用户定义函数 408 13.2.9 删除用户定义函数 409 13.3 小结 410 第14章 全文索引 411 14.1 全文索引简介 411 14.2 全文索引常用术语 411 14.3 全文索引的体系结构 412 14.4 全文目录管理 413 14.4.1 创建全文目录 413 14.4.2 查看与修改全文目录 414 14.4.3 删除全文目录 415 14.5 全文索引管理 415 14.5.1 创建全文索引的注意事项 415 14.5.2 创建全文索引 416 14.5.3 查看与修改全文索引 419 14.5.4 启用和禁用全文索引 420 14.5.5 删除全文索引 420 14.6 填充全文索引 420 14.6.1 填充全文索引的方式 421 14.6.2 填充全文索引 421 14.6.3 定时填充全文索引 422 14.7 使用全文搜索查询数据 424 14.7.1 使用CONTAINS搜索 424 14.7.2 使用FREETEXT搜索 428 14.7.3 使用CONTAINSTABLE搜索 429 14.7.4 使用FREETEXTTABLE搜索 432 14.7.5 搜索image字段 432 14.8 与全文索引相关的T-SQL语句 433 14.8.1 创建全文目录 433 14.8.2 更改全文目录属性 433 14.8.3 创建全文索引 434 14.8.4 更改全文索引属性 435 14.8.5 删除全文索引 436 14.8.6 删除全文目录 436 14.9 小结 436 第15章 游标 438 15.1 游标简介 438 15.2 游标的基本操作 439 15.2.1 定义游标 439 15.2.2 打开游标 440 15.2.3 读取游标 441 15.2.4 关闭和删除游标 441 15.3 游标的运用 442 15.3.1 用游标处理数据 442 15.3.2 全局游标与本地游标 445 15.3.3 游标的嵌套 446 15.3.4 使用游标变量 447 15.3.5 在存储过程中使用游标参数 451 15.4 在游标中常用的变量、函数和存储过程 452 15.4.1 使用系统全局变量查看游标信息 452 15.4.2 使用函数查看游标状态 453 15.4.3 使用系统存储过程查看游标属性 454 15.5 小结 458 第16章 事务与锁 460 16.1 事务简介 460 16.1.1 事务的特性 460 16.1.2 事务的工作流程 461 16.1.3 执行事务的注意事项 462 16.1.4 事务的工作原理 462 16.1.5 事务执行的模式 463 16.2 编写事务 463 16.2.1 编写事务的原则 464 16.2.2 编写事务 464 16.3 嵌套事务 466 16.3.1 使用嵌套事务的注意事项 466 16.3.2 嵌套事务示例 467 16.3.3 获取嵌套的层次 469 16.4 事务保存点 471 16.5 事务的隔离级别 473 16.6 锁简介 473 16.7 锁的对象和模式 474 16.8 死锁 475 16.9 小结 476 第17章 其他数据对象 477 17.1 统计信息 477 17.1.1 统计信息简介 477 17.1.2 查看统计信息 478 17.1.3 创建统计信息 481 17.1.4 更新统计信息 482 17.1.5 删除统计信息 483 17.2 同义词 484 17.2.1 同义词简介 484 17.2.2 创建同义词 484 17.2.3 使用同义词与链接服务器 486 17.2.4 查看同义词的信息与删除同义词 488 17.3 小结 489 第5部分 SQL Server高级技术篇 491 第18章 数据库备份与恢复 492 18.1 备份与恢复介绍 492 18.1.1 备份类型 492 18.1.2 恢复模式 493 18.1.3 如何备份数据库 494 18.1.4 数据库备份到哪里 495 18.2 在SQL Server Management Studio中备份数据库 496 18.3 使用T-SQL语言备份数据库 499 18.3.1 完整备份与差异备份 499 18.3.2 备份文件和文件组 502 18.3.3 事务日志备份 503 18.4 备份设备管理 504 18.4.1 查看备份设备的内容 504 18.4.2 通过备份设备来备份数据库 505 18.4.3 验证备份的内容 506 18.4.4 删除备份设备 507 18.5 在SQL Server Management Studio中还原数据库 507 18.5.1 还原数据库的方式 508 18.5.2 还原数据库前要注意的事项 508 18.5.3 还原数据库备份 508 18.5.4 还原文件和文件组备份 510 18.5.5 使用现有的备份创建新的数据库 511 18.6 用T-SQL语言还原数据库 512 18.6.1 还原完整备份 512 18.6.2 还原差异备份 514 18.6.3 还原事务日志备份 515 18.6.4 还原文件和文件组备份 515 18.6.5 将数据库还原到某个时间点 516 18.6.6 将文件还原到新位置上 516 18.7 建立自动备份的维护计划 517 18.8 小结 519 第19章 系统数据库与用户数据库 520 19.1 SQL Server 2008系统数据库介绍 520 19.1.1 master系统数据库 520 19.1.2 tempdb临时数据库 520 19.1.3 model模板数据库 521 19.1.4 msdb系统数据库 521 19.1.5 resource系统数据库 522 19.2 系统表与视图介绍 522 19.2.1 msdb数据库里的表 523 19.2.2 系统视图 525 19.2.3 系统函数 526 19.3 规划数据库 526 19.3.1 数据库文件 526 19.3.2 文件组 527 19.3.3 计算数据库文件的大小 528 19.4 小结 529 第20章 SQL Server 2008的安全 530 20.1 SQL Server 2008的身份验证模式 530 20.2 访问权限 532 20.3 用户 532 20.3.1 添加用户 532 20.3.2 使用用户登录 533 20.3.3 为用户设置权限 534 20.4 角色 538 20.4.1 角色简介 538 20.4.2 服务器角色 538 20.4.3 将用户设为服务器角色成员 539 20.4.4 数据库角色 539 20.4.5 将用户设为数据库角色成员 540 20.4.6 创建用户自定义数据库角色 541 20.4.7 应用程序角色 541 20.4.8 创建应用程序角色 541 20.4.9 使用应用程序角色 542 20.5 架构 543 20.6 确保数据库服务器的安全 544 20.7 小结 546 第21章 复制与发布 547 21.1 复制简介 547 21.1.1 什么是复制 547 21.1.2 复制的类型 548 21.1.3 复制代理 549 21.2 发布服务器与发布 550 21.2.1 复制的步骤 550 21.2.2 创建发布服务器与发布 550 21.2.3 修改发布属性 554 21.2.4 删除发布 557 21.3 订阅服务器与订阅 557 21.3.1 创建订阅服务器与订阅 557 21.3.2 修改订阅属性 560 21.3.3 删除订阅 560 21.4 复制监视器 561 21.4.1 启动复制监视器 561 21.4.2 添加其他发布服务器 562 21.4.3 查看发布服务器的信息 563 21.5 小结 564 第22章 SQL Server的自动化管理 565 22.1 SQL Server代理 565 22.1.1 SQL Server代理简介 565 22.1.2 启动和停止SQL Server代理 566 22.1.3 SQL Server代理的设置 566 22.1.4 指定SQL Server代理的登录账户 569 22.2 操作员 570 22.3 作业 571 22.3.1 新建作业 571 22.3.2 手动执行作业 574 22.3.3 调度作业 574 22.3.4 查看历史记录 575 22.3.5 删除、禁用与启用作业 576 22.4 警报与通知 576 22.4.1 新建警报 576 22.4.2 修改警报 579 22.4.3 启动、禁用与删除警报 579 22.4.4 通知 579 22.5 维护计划 580 22.6 错误日志 582 22.7 小结 583 第23章 SQL Server的性能工具 584 23.1 SQL Server Profiler 584 23.1.1 SQL Server Profiler简介 584 23.1.2 新建跟踪 585 23.1.3 存储事件记录 586 23.1.4 载入事件记录 586 23.1.5 新建跟踪模板 586 23.1.6 值得注意的功能 587 23.2 数据库引擎优化顾问 588 23.2.1 数据库引擎优化顾问介绍 588 23.2.2 使用数据库引擎优化顾问 588 23.3 小结 589 第24章 SQL Server邮件 590 24.1 SQL Mail 590 24.1.1 配置SQL Mail 590 24.1.2 使用SQL Mail发送电子邮件 593 24.2 数据库邮件 594 24.2.1 配置数据库邮件 594 24.2.2 发送测试邮件 597 24.2.3 配置SQL Server代理以使用数据库邮件 598 24.3 小结 599 第25章 数据导入与导出 601 25.1 SQL Server导入导出向导 601 25.2 数据导入导出 601 25.3 数据导入导出时的数据类型转换 604 25.4 在不同数据源与目标之间传输数据 604 25.5 小结 606 第26章 Analysis Services 607 26.1 Analysis Services简介 607 26.1.1 数据仓库 607 26.1.2 数据仓库的结构 608 26.1.3 创建数据仓库的步骤 609 26.1.4 联机分析处理(OLAP) 609 26.1.5 数据挖掘 610 26.2 定义数据源 610 26.3 定义数据源视图 612 26.4 定义多维数据集 614 26.5 部署Analysis Services项目 618 26.6 查看多维数据集 619 26.7 使用客户端软件查看多维数据 620 26.8 小结 623 第27章 Reporting Services 624 27.1 创建报表服务器项目 624 27.2 创建数据源 625 27.3 创建报表 626 27.4 发布报表 628 27.5 自定义报表信息 629 27.6 小结 632 第28章 SQL Server与XML 634 28.1 XML简介 634 28.1.1 什么是XML 634 28.1.2 使用XML的好处 635 28.1.3 XML的语法 636 28.2 SQL Server中的XML语句 638 28.2.1 FOR XML的Select语句 638 28.2.2 简单输出XML 639 28.2.3 输出XSD架构 643 28.2.4 输出XDR架构 645 28.2.5 按路径输出XML 646 28.2.6 为输出的XML添加根元素 647 28.2.7 OpenXml函数 648 28.3 XML数据类型 650 28.3.1 声明XML数据类型 651 28.3.2 为XML类型的变量赋值 651 28.3.3 将XML数据插入数据表 653 28.4 XML索引 653 28.4.1 XML索引类型 653 28.4.2 使用SQL Server Management Studio创建XML索引 654 28.4.3 使用T-SQL语句创建XML索引 656 28.5 操作XML 657 28.5.1 Query方法 657 28.5.2 Value方法 658 28.5.3 Exist方法 659 28.5.4 在XML实例中插入节点 660 28.5.5 在XML实例中修改节点的值 661 28.5.6 在XML实例中删除节点 664 28.6 小结 664 第29章 客户端及应用程序访问SQL Server的方式 666 29.1 客户端访问SQL Server的方式 666 29.1.1 ODBC接口 666 29.1.2 OLE DB接口 668 29.1.3 ADO组件 668 29.2 从Access访问SQL Server 668 29.3 使用ASP.NET程序访问SQL Server 669 29.3.1 通过ODBC接口访问SQL Server 669 29.3.2 通过OLE DB接口访问SQL Server 670 29.4 小结 671 第6部分 SQL Server 2008改进篇 673 第30章 对T-SQL的改进 674 30.1 兼容级别设置 674 30.1.1 语法 674 30.1.2 使用SQL Server Management Studio更改兼容级别 675 30.1.3 数据库兼容的注意事项 676 30.1.4 兼容级别导致的影响 677 30.1.5 兼容级别示例 678 30.1.6 兼容级别对ORDER BY的影响示例 679 30.2 复合运算符 681 30.2.1 +=运算符 681 30.2.2 -=运算符 681 30.3 Convert函数 682 30.3.1 语法 682 30.3.2 二进制与字符十六进制转换示例 683 30.4 日期和时间功能 683 30.4.1 语法 683 30.4.2 ISO周-日示例 684 30.4.3 日期功能的注意事项 684 30.5 Grouping Sets分组 685 30.5.1 语法 685 30.5.2 注意事项 686 30.5.3 Grouping Sets分组示例 686 30.6 MERGE语句 687 30.6.1 语法 687 30.6.2 MERGE合并数据源示例 690 30.7 SQL依赖关系报告 691 30.8 表值参数 692 30.8.1 创建用户表类型 692 30.8.2 使用表值参数示例 692 30.8.3 使用表值参数进行数据传递的注意事项 692 30.9 T-SQL行构造函数 693 30.10 小结 694 第31章 数据存储和数据类型 695 31.1 数据存储的改进 695 31.1.1 表和索引的压缩存储 695 31.1.2 FILESTREAM存储 701 31.1.3 稀疏列和列集 705 31.1.4 空间数据的存储、方法和索引 710 31.2 新增的数据类型 710 31.2.1 HierarchyID层次化数据 711 31.2.2 日期和时间类型 715 31.2.3 空间数据类型 718 31.2.4 用户定义表类型 723 31.2.5 用户定义类型 727 31.3 对非关系数据类型的支持 730 31.3.1 非关系数据类型概述 731 31.3.2 文档和多媒体 731 31.3.3 地理信息数据 731 31.3.4 XML数据 732 31.4 小结 734 第32章 安全性的增强 735 32.1 数据加密 735 32.1.1 新的加密辅助函数 735 32.1.2 透明数据加密 736 32.1.3 外部密钥管理 743 32.2 数据审核 743 32.2.1 数据审核概述 743 32.2.2 进行数据审核 744 32.3 身份验证的改进 752 32.3.1 基本身份验证 752 32.3.2 端点身份验证 752 32.4 小结 753 第33章 SQL Server Integration Service 754 33.1 SSIS简介 754 33.1.1 SSIS的概述 754 33.1.2 SQL Server 2008中SSIS的改进 755 33.2 SSIS结构 756 33.2.1 SSIS的用途 756 33.2.2 SSIS包的组成 757 33.3 SSIS的开发 762 33.3.1 设计和实现包 762 33.3.2 部署包 767 33.4 小结 772 第34章 分析服务的改进 773 34.1 多维数据库解决方案设计的改进 773 34.1.1 AMO警示 773 34.1.2 维度设计 775 34.1.3 多维数据集 777 34.1.4 聚合设计 780 34.2 资源监控及管理的改进 783 34.2.1 资源监控 783 34.2.2 块计算 783 34.2.3 回写性能 783 34.2.4 备份可扩展性 784 34.3 小结 784 第35章 报表服务的改进 785 35.1 新增报表制作功能 785 35.1.1 新增的数据源类型 785 35.1.2 增强的图表数据区域 785 35.1.3 仪表数据区域的使用 790 35.1.4 Tablix数据区域 792 35.1.5 文本框增强功能 797 35.1.6 报表设计器 798 35.2 报表处理 799 35.2.1 增强的报表导出格式 799 35.2.2 报表的部署 799 35.3 小结 802
2022-08-22 16:13:23 106.63MB SQL Server 2008 宝典
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008宝典 共2部分:此为第001部分 基本信息 作者: 刘智勇    刘径舟    丛书名: 宝典丛书 出版社:电子工业出版社 ISBN:9787121102820 上架时间:2010-3-27 出版日期:2010 年3月 开本:16开 页码:802 版次:1-1 内容简介   《SQL Server 2008宝典》全面介绍了SQL Server 2008各方面的知识,全书由6部分组成:第1部分为数据库的基础篇,介绍了数据库的类型、概念、对象、SQL语言等;第2部分为SQLServer 2008的准备篇,介绍了SQL Server 2008的功能、特性、各版本的比较、安装方法、SQL Server 2008的服务、客户端的工具等;第3部分为SQL Server 2008的基本操作篇,介绍如何管理与配置SQL Server 2008服务器、如何创建数据库和数据表、如何对数据库里的数据进行操作;第4部分为数据库管理篇,介绍如何使用T-SQL程序对数据进行复杂的运算,以及如何使用视图、存储过程、触发器、索引、用户定义数据类型、用户定义函数、全文索引、游标、事务和锁、统计信息和同义词等方面的知识;第5部分为SQL Server高级技术,介绍如何进行数据库备份与恢复、如何规划数据库、如何保证数据库的安全、复制与发布、自动化管理、如何使用性能工具优化数据库、数据的导入导出、SQL Server邮件的使用、Analysis Services、Reporting Services、SQL Server与XML的应用,以及如何使用客户端和应用程序访问SQL Server;第6部分为SQL Server 2008改进篇,介绍了SQL Server 2008相对于之前版本进行了哪些方面的重大改进和优化,进一步帮助读者了解SQL Server 2008更多的独有特性。   《SQL Server 2008宝典》适合SQL Server 2008的初学者学习,也适合子数据库的管理人员和开发人员阅读和参考。 编辑推荐   《SQL Server 2008宝典》:实例丰富,内容充实。书中针对每一个知识点列举了大量实例来说明该功能如何实现,全书共有超过500个精彩实例。   讲解通俗,步骤详细。通过通俗易懂的语言讲解SQL Server 2008的各个强大功能,并配以插图讲解和详细的步骤说明,帮助读者快速掌握实用技能。   由浅入深,难易穿插。《SQL Server 2008宝典》面向入门级和提高级两类读者,每个知识点都采用由浅入深的讲解方式,并穿插介绍重点和难点。   提供源码,方便学习。书中涉及到的T—SQL程序在网站上提供下载,打开相应SQL文件即可直接执行其中的代码。   SQL Server 2008是一个能用于大型联机事务处理、数据仓库和电子商务等方面应用的数据库平台,也是一个能用于数据集成、数据分析和报表解决方案的商业智能平台,为用户提供了强大、集成、便于使用的工具,使系统管理员与普通用户能更方便、更快捷地管理数据库或设计、开发应用程序。 目录 封面 -33 封底 803 扉页 -32 版权 -31 前言 -30 目录 -26 第1部分 基础篇 1 第1章 认识数据库 2 1.1 数据库的类型 2 1.1.1 结构型数据库 2 1.1.2 网络型数据库 2 1.1.3 关系型数据库 2 1.1.4 面向对象型数据库 3 1.2 数据库的基本概念 3 1.2.1 数据 3 1.2.2 数据库 3 1.2.3 数据库管理系统 3 1.2.4 数据库系统 3 1.3 常见的数据库对象 3 1.3.1 表与记录 4 1.3.2 主键与外键 4 1.3.3 索引 4 1.3.4 约束 5 1.3.5 视图 5 1.3.6 关系图 5 1.3.7 默认值 5 1.3.8 规则 5 1.3.9 存储过程 6 1.3.10 触发器 6 1.3.11 用户和角色 6 1.4 数据库管理系统的基本功能 6 1.4.1 定义数据 6 1.4.2 处理数据 6 1.4.3 保证数据安全 6 1.4.4 备份和恢复数据 6 1.5 SQL语言简介 6 1.5.1 SQL语言的历史 7 1.5.2 SQL语言的优点 7 1.5.3 SQL语言分类 7 1.6 数据库系统的用户 8 1.7 小结 8 第2章 SQL Server 2008简介及安装 9 2.1 SQL Server 2008简介 9 2.1.1 SQL Server 2008数据平台 9 2.1.2 使用SQL Server 2008能获得的好处 10 2.2 SQL Server 2008新特性 10 2.3 SQL Server 2008新功能 11 2.3.1 可信任性 11 2.3.2 开发和管理生产效率 12 2.3.3 商业智能 13 2.4 SQL Server 2008各版本比较 15 2.4.1 可扩展性 15 2.4.2 高可用性 15 2.4.3 安全性 16 2.4.4 复制 16 2.4.5 可管理性 16 2.4.6 管理工具 16 2.4.7 开发工具 17 2.4.8 可编程性 17 2.4.9 空间和位置服务 17 2.4.10 Integration Services 18 2.4.11 数据仓库创建 18 2.4.12 数据仓库规模和性能 18 2.4.13 多维分析 19 2.4.14 数据挖掘 19 2.4.15 报表 19 2.5 安装SQL Server 2008的系统要求 20 2.5.1 CPU与内存要求 20 2.5.2 硬盘空间要求 20 2.5.3 操作系统要求 20 2.5.4 其他要求 22 2.6 安装SQL Server 2008 23 2.7 升级到SQL Server 2008 33 2.7.1 升级之前要考虑的问题 33 2.7.2 升级注意事项 34 2.7.3 使用SQL Server 2008升级顾问 35 2.7.4 升级到SQL Server 2008 38 2.8 小结 40 第2部分 准备篇 41 第3章 初识SQL Server 2008 42 3.1 服务器上的后台服务 42 3.1.1 SQL Server服务 43 3.1.2 SQL Server Active Directory Helper服务 43 3.1.3 SQL Server Agent服务 43 3.1.4 SQL Server Analysis Services服务 43 3.1.5 SQL Server Browser服务 44 3.1.6 SQL Server FullText Search服务 44 3.1.7 SQL Server Integration Services服务 44 3.1.8 SQL Server Reporting Services服务 44 3.1.9 SQL Server VSS Writer服务 45 3.2 客户端上的管理工具 45 3.2.1 SQL Server Management Studio 45 3.2.2 Reporting Services配置 45 3.2.3 SQL Server Configuration Manager 47 3.2.4 SQL Server错误和使用情况报告 48 3.2.5 SQL Server Profiler 49 3.2.6 数据库引擎优化顾问 50 3.2.7 Visual Studio 2008 52 3.2.8 SQL Server Business Intelligence Development Studio 52 3.3 SQL Server Management Studio 52 3.3.1 认识SQL Server Management Studio的界面 53 3.3.2 更改SQL Server Management Studio的界面布局 53 3.3.3 使用查询编辑器 53 3.3.4 利用编辑器自动生成查询语句 54 3.3.5 脱机编写SQL语句后连接到服务器 55 3.3.6 全屏显示查询编辑器 55 3.3.7 使用模板编写SQL语句 56 3.3.8 创建自定义模板 57 3.3.9 使用项目脚本和解决方案 58 3.4 示例数据库 59 3.4.1 SQL Server 2008示例数据库 59 3.4.2 本书示例数据库 61 3.5 小结 61 第3部分 基础操作篇 63 第4章 数据库服务器管理 64 4.1 数据库服务器的工作模式 64 4.1.1 C/S模式 64 4.1.2 B/S模式 65 4.2 连接与断开数据库服务器 65 4.2.1 用SQL Server Management Studio连接服务器 65 4.2.2 在已注册的服务器里添加服务器组与服务器 68 4.2.3 使用对象资源管理器连接服务器 72 4.2.4 通过服务器注册连接到服务器 73 4.2.5 断开与数据库服务器的连接 73 4.3 使用配置管理器配置SQL Server服务 74 4.3.1 启动/停止/暂停/重新启动服务 74 4.3.2 配置服务的启动模式 76 4.3.3 更改登录身份 77 4.3.4 SQL Server 2008使用的网络协议 78 4.3.5 为SQL Server 2008配置共享内存协议 79 4.3.6 为SQL Server 2008配置管道协议 80 4.3.7 为SQL Server 2008配置TCP/IP协议 84 4.3.8 配置客户端网络协议的使用顺序 86 4.3.9 隐藏实例 87 4.4 配置远程SQL Server服务 88 4.4.1 配置远程SQL Server服务的权限 89 4.4.2 用SQL Server Management Studio停止和启动远程SQL Server服务 89 4.4.3 通过已注册的服务器启动远程SQL Server服务 91 4.4.4 使用SQL Server配置管理器远程管理SQL Server服务 91 4.5 配置SQL Server 2008服务器 92 4.5.1 服务器属性的常规设置 92 4.5.2 服务器属性的内存设置 93 4.5.3 服务器属性的处理器设置 94 4.5.4 服务器属性的安全性设置 96 4.5.5 服务器属性的连接设置 97 4.5.6 服务器属性的数据库设置 98 4.5.7 服务器属性的高级选项设置 99 4.5.8 服务器属性的权限设置 100 4.6 通过日志查看服务器的运行情况 101 4.6.1 在事件查看器中查看服务器的运行情况 101 4.6.2 通过日志查看器查看SQL Server日志 102 4.6.3 在LOG文件夹中查看SQL Server错误日志 103 4.7 小结 104 第5章 数据库管理 105 5.1 创建数据库前的准备 105 5.1.1 数据库命名规则 105 5.1.2 创建数据库需要的权限 106 5.1.3 数据库的所有者 106 5.1.4 数据库的上限 106 5.1.5 数据库文件和文件组 106 5.1.6 记录数据库操作的事务日志 106 5.1.7 数据库状态 107 5.2 在SQL Server Management Studio中创建数据库 107 5.3 使用Create database语句创建数据库 113 5.3.1 基本语法 113 5.3.2 T-SQL中的语法约定 114 5.3.3 参数讲解 115 5.3.4 Create Database语句需要注意的功能 116 5.3.5 举例说明 116 5.3.6 使用模板 119 5.4 修改数据库设置 122 5.4.1 使用SQL Server Management Studio修改数据库设置 122 5.4.2 查看数据库的基本信息 123 5.4.3 增加、删除与修改数据库文件 123 5.4.4 修改数据库的所有者 124 5.4.5 设置全文索引 125 5.4.6 增加、删除与修改文件组 126 5.4.7 修改数据库的排序规则 127 5.4.8 修改数据库的兼容性 128 5.4.9 限制用户的访问 128 5.4.10 设置用户及角色对数据库的使用权限 128 5.4.11 修改数据库名称 130 5.5 使用Alter database语句修改数据库 131 5.5.1 基本语法 131 5.5.2 参数说明 131 5.5.3 Alter database语句的注意事项 134 5.5.4 典型案例 134 5.6 分离与附加数据库 136 5.6.1 分离数据库 136 5.6.2 附加数据库 139 5.7 脱机和联机数据库 143 5.7.1 脱机数据库 143 5.7.2 联机数据库 144 5.8 删除数据库 145 5.8.1 在SQL Server Management Studio中删除数据库 145 5.8.2 用Drop database语句删除数据库 146 5.9 收缩数据库 146 5.9.1 自动收缩数据库 147 5.9.2 手动收缩数据库 147 5.9.3 手动收缩数据库文件 149 5.10 编写数据库脚本 151 5.11 小结 153 第6章 数据表管理 154 6.1 数据表简介 154 6.1.1 数据表的分类 155 6.1.2 认识列 155 6.2 数据类型 155 6.2.1 精确数字型 156 6.2.2 近似数字型 157 6.2.3 日期和时间型 157 6.2.4 字符串型 157 6.2.5 Unicode字符串型 158 6.2.6 二进制字符串型 158 6.2.7 其他数据类型 159 6.2.8 用户自定义型 159 6.3 在SQL Server Management Studio中创建表 160 6.3.1 定义数据表的字段和主键 160 6.3.2 设置默认值 162 6.3.3 设置标识列 162 6.3.4 建立表与表之间的关系 163 6.3.5 创建索引 166 6.3.6 创建约束 167 6.3.7 设置数据表所在文件组 169 6.4 用T-SQL语言创建表 170 6.4.1 基本语法 170 6.4.2 参数说明 170 6.4.3 创建新表 175 6.4.4 创建标识字段 176 6.4.5 创建带标识种子和标识增量的标识字段 176 6.4.6 创建非Null字段 176 6.4.7 字段的默认值 177 6.4.8 将创建的表放在文件组中 177 6.4.9 使用Check约束 177 6.4.10 设置字段的排序规则 178 6.4.11 创建外键 178 6.4.12 设置外键的更新规则和删除规则 178 6.4.13 创建Unique约束 179 6.4.14 创建计算列 179 6.4.15 设置数据表的约束 180 6.4.16 Create Table语句的注意事项 180 6.5 在SQL Server Management Studio中修改表 180 6.5.1 修改数据表名 180 6.5.2 插入、移动和删除数据表的字段 181 6.5.3 修改字段数据类型 182 6.5.4 修改主键、外键、索引和约束 182 6.5.5 修改数据表属性 182 6.6 用T-SQL语言修改数据表结构 184 6.6.1 基本语法 184 6.6.2 参数说明 184 6.6.3 修改字段属性 189 6.6.4 添加字段 189 6.6.5 添加字段并设置字段属性 189 6.6.6 删除字段 189 6.6.7 添加约束 189 6.6.8 禁用约束 190 6.6.9 启用约束 190 6.6.10 删除约束 190 6.6.11 设置主键 190 6.6.12 修改字段名和数据表名 191 6.6.13 Create Table语句的注意事项 191 6.7 在SQL Server Management Studio中删除表 191 6.8 用Drop Table删除数据表 194 6.9 编写表脚本 194 6.10 数据库关系图的使用 195 6.10.1 创建数据库关系图并添加数据表 195 6.10.2 添加相关联的数据表 197 6.10.3 更改数据表的显示模式 197 6.10.4 在关系图中删除数据表 198 6.10.5 建立和删除表与表之间的关联 198 6.10.6 保存部分修改过的数据表 199 6.10.7 在关系图中创建数据表 200 6.10.8 在关系图中修改字段属性 201 6.10.9 在关系图中设置或修改表的外键与约束 201 6.11 临时表简介 202 6.12 已分区表简介 203 6.13 小结 203 第7章 数据(记录)操作 204 7.1 在SQL Server Management Studio中查看记录 204 7.1.1 选择前1000行 204 7.1.2 返回前几条记录 204 7.2 在SQL Server Management Studio中插入记录 205 7.3 用Insert语句插入记录 207 7.3.1 基本语法 207 7.3.2 参数说明 207 7.3.3 简单的插入语句 208 7.3.4 按表中不同字段顺序插入记录 208 7.3.5 插入值少于字段数的记录 209 7.3.6 在标识列字段里插入字段内容 209 7.3.7 从数据表中查询记录并插入到另一个表中 209 7.3.8 从数据表中查询部分字段记录并插入到另一个表中 210 7.3.9 从数据表中查询记录插入其他表并为字段添加固定内容 210 7.3.10 在Insert语句里使用exec子句 211 7.3.11 在数据中只插入默认值 211 7.4 插入记录的注意事项 211 7.5 用Update语句更新记录 212 7.5.1 基本语法 212 7.5.2 参数说明 213 7.5.3 简单的更新语句 214 7.5.4 使用计算值更新记录 214 7.5.5 引用其他表里的字段值更新记录 214 7.5.6 使用top子句更新记录 215 7.6 在SQL Server Management Studio中删除记录 215 7.7 用Delete语句删除记录 215 7.7.1 基本语法 215 7.7.2 参数说明 216 7.7.3 简单的删除语句 217 7.7.4 删除多条记录 217 7.7.5 引用其他表里的字段值来删除记录 217 7.8 用Truncate Table语句删除记录 217 7.9 用Select语句进行查询 218 7.10 用Select子句设定查询内容 218 7.10.1 基本语法 218 7.10.2 参数说明 219 7.10.3 查询表中所有列 219 7.10.4 查询表中某几列 220 7.10.5 为查询添加计算列 220 7.10.6 查看最前记录 221 7.10.7 查看不重复记录 222 7.10.8 查询表中的标识列或GUID列 223 7.11 用From子句指定查询哪些表 223 7.11.1 基本语法 223 7.11.2 参数说明 224 7.11.3 简单的From子句 225 7.11.4 从两个表中联合查询记录 225 7.11.5 从多个表中联合查询记录 227 7.11.6 JOIN的其他类型 227 7.11.7 使用表别名 229 7.11.8 表JOIN自身 230 7.12 用Where子句设定查询条件 230 7.12.1 基本语法 230 7.12.2 参数说明 231 7.12.3 单个查询条件 232 7.12.4 设置多个查询条件 232 7.12.5 在查询条件里使用函数 233 7.12.6 查询两个条件之间的记录 233 7.12.7 查询字段内容为NULL的记录 234 7.12.8 将结果集作为查询条件 234 7.12.9 模糊查询 235 7.12.10 在模糊查询中查询含有通配符的文本 236 7.12.11 使用EXISTS关键字 237 7.12.12 使用ALL,ANY和SOME关键字 237 7.13 使用Order by子句排序 238 7.13.1 基本语法 238 7.13.2 参数说明 239 7.13.3 按一个字段排序 239 7.13.4 按多个字段排序 239 7.14 使用Group by子句分组 239 7.14.1 基本语法 240 7.14.2 参数说明 240 7.14.3 Group by的基本用法 240 7.14.4 在Group by中使用表达式 241 7.14.5 使用with cube对所有字段进行汇总 241 7.14.6 使用with rollup对第一个字段进行汇总 242 7.14.7 使用Group by all对所有数据分组 243 7.15 使用Having子句在分组中设置查询条件 243 7.15.1 基本语法 244 7.15.2 使用Having对分组设置查询条件 244 7.16 使用Compute子句归类 244 7.16.1 基本语法 245 7.16.2 参数说明 245 7.16.3 使用Compute归类 245 7.16.4 使用Compute by归类 246 7.17 使用UNION子句合并多个查询结果 246 7.17.1 基本语法 247 7.17.2 参数说明 247 7.17.3 使用UNION ALL合并两个查询结果集 248 7.17.4 使用UNION合并两个查询结果集 248 7.17.5 使用UNION加入临时数据 248 7.17.6 在UNION的结果集里排序 248 7.17.7 在UNION的结果集里分组 249 7.18 使用Select into子句为查询结果建立新表 249 7.18.1 基本语法 249 7.18.2 使用Select into创建一个新表 249 7.18.3 在Select into中设置复杂的查询条件 250 7.18.4 使用Select into复制表结构 250 7.19 在不同数据库中查询记录 251 7.20 NULL字段的处理方法 251 7.20.1 使用NULL时要注意的事项 251 7.20.2 检查字段内容是否为NULL 252 7.20.3 使用ISNULL函数替换NULL值 252 7.21 SQL Server 2008语句新增功能 253 7.21.1 Select语句新增功能 253 7.21.2 Insert语句新增功能 253 7.21.3 Update语句新增功能 254 7.21.4 Delete语句新增功能 255 7.22 小结 255 第4部分 数据库管理篇 257 第8章 T-SQL程序 258 8.1 T-SQL概述 258 8.1.1 什么是T-SQL 258 8.1.2 T-SQL的语法约定 258 8.2 数据库对象的引用方法 259 8.2.1 引用数据库对象的方法 259 8.2.2 架构 260 8.2.3 创建自定义架构 261 8.3 T-SQL中的批处理 262 8.3.1 一次执行多个T-SQL语句 262 8.3.2 使用GO语句分隔多个批 262 8.4 T-SQL中的注释 263 8.4.1 --注释 263 8.4.2 /* … */注释 263 8.5 T-SQL数据类型及转换 264 8.5.1 使用CAST转换数据类型 264 8.5.2 使用CONVERT转换数据类型 265 8.5.3 隐式数据类型转换 266 8.5.4 数据类型转换时的注意事项 267 8.6 T-SQL运算符 267 8.6.1 算术运算符 267 8.6.2 赋值运算符 268 8.6.3 位运算符 268 8.6.4 比较运算符 268 8.6.5 逻辑运算符 268 8.6.6 字符串串联运算符 269 8.6.7 一元运算符 269 8.7 运算符的优先级 269 8.8 T-SQL中的常量 270 8.8.1 字符串常量 270 8.8.2 Unicode常量 270 8.8.3 二进制常量 270 8.8.4 bit常量 271 8.8.5 datetime常量 271 8.8.6 integer常量 271 8.8.7 decimal常量 271 8.8.8 float和real常量 271 8.8.9 money常量 271 8.8.10 uniqueidentifier常量 272 8.8.11 在T-SQL中使用常量 272 8.9 T-SQL中的变量 272 8.9.1 局部变量 273 8.9.2 全局变量 275 8.10 T-SQL的流程控制 277 8.10.1 Begin…End语句 277 8.10.2 If…Else语句 278 8.10.3 While语句 279 8.10.4 Case语句 280 8.10.5 Goto语句 282 8.10.6 Waitfor语句 283 8.10.7 Return语句 284 8.10.8 Try…Catch语句 284 8.10.9 Execute语句 285 8.11 T-SQL的常用函数 287 8.11.1 聚合函数 287 8.11.2 日期和时间函数 288 8.11.3 数学函数 288 8.11.4 字符串函数 289 8.11.5 文本和图像函数 289 8.11.6 配置函数 289 8.11.7 游标函数 290 8.11.8 元数据函数 290 8.11.9 行集函数 291 8.11.10 安全函数 291 8.11.11 系统统计函数 291 8.11.12 其他函数 292 8.12 不应使用的关键字 293 8.13 小结 295 第9章 视图 296 9.1 视图简介 296 9.2 创建视图 297 9.2.1 在SQL Server Management Studio中创建视图 298 9.2.2 使用Create view语句创建视图 299 9.3 查看与修改视图 302 9.3.1 查看视图 302 9.3.2 在SQL Server Management Studio中修改视图 303 9.3.3 使用Alter view语句修改视图 303 9.4 加密视图 304 9.5 限制视图所用的表或视图不能更改设计和删除 305 9.6 检查视图的数据变动 307 9.7 编辑视图中的记录 307 9.7.1 编辑视图中的记录的限制 307 9.7.2 在SQL Server Management Studio中操作视图记录 308 9.7.3 使用Insert,Update和Delete语句操作视图记录 308 9.8 删除视图 309 9.8.1 在Management Studio中删除视图 309 9.8.2 使用Drop view语句删除视图 309 9.9 为视图重命名 309 9.10 小结 310 第10章 存储过程 311 10.1 存储过程简介 311 10.1.1 存储过程的概念 311 10.1.2 使用存储过程的优点 311 10.1.3 存储过程的分类 312 10.2 创建存储过程 312 10.2.1 使用Create procedure语句创建存储过程 312 10.2.2 在SQL Server Management Studio中建立存储过程 314 10.3 修改存储过程 316 10.3.1 使用Alter procedure语句修改存储过程 316 10.3.2 在SQL Server Management Studio中修改存储过程 316 10.3.3 修改存储过程名 317 10.4 执行存储过程 318 10.5 设计存储过程的高级技巧 320 10.5.1 设计存储过程时的注意事项 320 10.5.2 参数传递的方式 321 10.5.3 存储过程的返回值 322 10.5.4 不显示影响行数的通知 324 10.5.5 临时存储过程 325 10.5.6 嵌套调用存储过程 325 10.5.7 查看存储过程的依赖关系 326 10.5.8 加密存储过程 327 10.5.9 查看存储过程的源代码 327 10.5.10 设计存储过程组 328 10.6 删除存储过程 329 10.6.1 使用Drop procedure语句删除存储过程 329 10.6.2 在SQL Server Management Studio中删除存储过程 329 10.7 常用的系统存储过程 330 10.7.1 sp_help:查看对象信息 330 10.7.2 sp_helpdb:查看数据库信息 330 10.7.3 sp_helpfile:查看数据库文件信息 331 10.7.4 sp_helpfilegroup:查看文件组信息 331 10.7.5 sp_helpindex:查看索引信息 331 10.7.6 sp_helpsort:查看排序及字符集信息 331 10.7.7 sp_helpstats:查看列和索引的统计信息 331 10.7.8 sp_helptext:查看对象内容 332 10.7.9 sp_helptrigger:查看触发器信息 332 10.7.10 sp_lock:查看锁信息 332 10.7.11 sp_monitor:查看系统统计信息 332 10.7.12 sp_rename:修改对象名 332 10.7.13 sp_renamedb:修改数据库名 332 10.7.14 sp_who:查看用户和进程信息 333 10.7.15 sp_columns:查看列信息 333 10.7.16 sp_databases:查看数据库信息 333 10.7.17 sp_fkeys:查看外键信息 333 10.7.18 sp_pkeys:查看主键信息 334 10.7.19 sp_server_info:查看SQL Server信息 334 10.7.20 sp_tables:查看表或视图信息 334 10.7.21 sp_stored_procedures:查看存储过程信息 334 10.8 CLR存储过程 335 10.8.1 创建CLR存储过程的步骤 335 10.8.2 开启CLR支持 335 10.8.3 编写CLR存储过程内容 335 10.8.4 将CLR存储过程编译成DLL文件 337 10.8.5 注册程序集 337 10.8.6 创建引用程序集的存储过程 338 10.8.7 执行CLR存储过程 339 10.9 小结 339 第11章 触发器 340 11.1 触发器简介 340 11.1.1 触发器的概念和作用 340 11.1.2 触发器的种类 341 11.2 DML触发器的分类 341 11.3 DML触发器的工作原理 341 11.3.1 After触发器的工作原理 342 11.3.2 Instead Of触发器的工作原理 342 11.4 设计DML触发器的注意事项及技巧 342 11.4.1 设计触发器的限制 342 11.4.2 如何用触发器取得字段修改前和修改后的数据 343 11.4.3 使用DML触发器的注意事项 343 11.5 设计After触发器 344 11.5.1 设计简单的After触发器 344 11.5.2 测试触发器功能 346 11.5.3 建立触发器的SQL语句 347 11.6 设置After触发器的激活顺序 350 11.7 触发器的嵌套 352 11.8 触发器的递归 354 11.9 设计Instead Of触发器 355 11.9.1 Instead Of触发器的使用范围 355 11.9.2 设计简单的Instead Of触发器 355 11.10 查看DML触发器 356 11.10.1 在SQL Server Management Studio中查看触发器 356 11.10.2 使用系统存储过程查看触发器 357 11.11 修改DML触发器 359 11.12 删除DML触发器 359 11.13 禁用与启用DML触发器 359 11.14 DDL触发器 360 11.15 设计DDL触发器 360 11.15.1 建立DDL触发器的语句 360 11.15.2 测试触发器功能 363 11.16 查看与修改DDL触发器 365 11.17 触发器的应用技巧 366 11.17.1 如何知道触发器修改了多少条记录 366 11.17.2 如何知道插入记录的自动编号是多少 367 11.17.3 如何知道某个字段是否被修改 367 11.17.4 如何返回错误信息 368 11.18 小结 370 第12章 索引 371 12.1 索引简介 371 12.2 索引的结构 371 12.3 索引的分类 372 12.3.1 聚集索引与非聚集索引 372 12.3.2 唯一索引 372 12.3.3 复合索引与包含性列索引 373 12.3.4 视图索引 373 12.3.5 全文索引 373 12.3.6 XML索引 373 12.4 系统自动建立的索引 374 12.4.1 主键字段 374 12.4.2 Unique字段 374 12.5 建立索引的注意事项 375 12.6 在SQL Server Management Studio中创建索引 375 12.7 使用Create index语句创建索引 379 12.7.1 基本语法 379 12.7.2 参数说明 380 12.7.3 创建简单的索引 380 12.7.4 创建简单的复合索引 381 12.7.5 创建唯一索引 381 12.7.6 创建聚集索引 381 12.7.7 创建降序的非聚集索引 381 12.7.8 创建包含性列索引 381 12.7.9 创建索引并指定其所在的文件组 382 12.7.10 创建索引并设置填充因子 382 12.7.11 创建索引并设置填充索引 382 12.7.12 创建复杂的索引 383 12.8 查看与修改索引 383 12.8.1 在SQL Server Management Studio中查看与修改索引 383 12.8.2 使用sp_helpindex查看索引 385 12.8.3 使用sys.indexes视图查看索引信息 385 12.8.4 使用Alter index语句修改索引 386 12.9 重新生成和重新组织索引 387 12.9.1 在SQL Server Management Studio中重新生成索引 388 12.9.2 在SQL Server Management Studio中重新组织索引 388 12.9.3 使用REBUILD参数重新生成索引 389 12.9.4 使用REORGANIZE参数重新组织索引 390 12.9.5 使用SQL Server Management Studio查看索引碎片 390 12.9.6 使用函数sys.dm_db_index_physical_stats查看索引碎片 391 12.10 禁用索引 392 12.10.1 在SQL Server Management Studio中禁用索引 392 12.10.2 使用DISABLE参数禁用索引 392 12.11 重命名索引 393 12.12 删除索引 394 12.12.1 删除索引的注意事项 394 12.12.2 在SQL Server Management Studio中删除索引 394 12.12.3 使用Drop index语句删除索引 394 12.13 索引视图 394 12.13.1 索引视图简介 395 12.13.2 创建索引视图 395 12.14 小结 395 第13章 用户定义数据类型和函数 396 13.1 用户定义数据类型 396 13.1.1 创建用户定义数据类型 396 13.1.2 使用用户定义数据类型 398 13.1.3 删除用户定义数据类型 399 13.2 用户定义函数 400 13.2.1 用户定义函数与存储过程的比较 401 13.2.2 用户定义函数类型 401 13.2.3 创建标量值函数 401 13.2.4 创建内联表值函数 403 13.2.5 创建多语句表值函数 404 13.2.6 在SQL Server Management Studio里创建用户定义函数 406 13.2.7 查看与修改用户定义函数 407 13.2.8 使用用户定义函数 408 13.2.9 删除用户定义函数 409 13.3 小结 410 第14章 全文索引 411 14.1 全文索引简介 411 14.2 全文索引常用术语 411 14.3 全文索引的体系结构 412 14.4 全文目录管理 413 14.4.1 创建全文目录 413 14.4.2 查看与修改全文目录 414 14.4.3 删除全文目录 415 14.5 全文索引管理 415 14.5.1 创建全文索引的注意事项 415 14.5.2 创建全文索引 416 14.5.3 查看与修改全文索引 419 14.5.4 启用和禁用全文索引 420 14.5.5 删除全文索引 420 14.6 填充全文索引 420 14.6.1 填充全文索引的方式 421 14.6.2 填充全文索引 421 14.6.3 定时填充全文索引 422 14.7 使用全文搜索查询数据 424 14.7.1 使用CONTAINS搜索 424 14.7.2 使用FREETEXT搜索 428 14.7.3 使用CONTAINSTABLE搜索 429 14.7.4 使用FREETEXTTABLE搜索 432 14.7.5 搜索image字段 432 14.8 与全文索引相关的T-SQL语句 433 14.8.1 创建全文目录 433 14.8.2 更改全文目录属性 433 14.8.3 创建全文索引 434 14.8.4 更改全文索引属性 435 14.8.5 删除全文索引 436 14.8.6 删除全文目录 436 14.9 小结 436 第15章 游标 438 15.1 游标简介 438 15.2 游标的基本操作 439 15.2.1 定义游标 439 15.2.2 打开游标 440 15.2.3 读取游标 441 15.2.4 关闭和删除游标 441 15.3 游标的运用 442 15.3.1 用游标处理数据 442 15.3.2 全局游标与本地游标 445 15.3.3 游标的嵌套 446 15.3.4 使用游标变量 447 15.3.5 在存储过程中使用游标参数 451 15.4 在游标中常用的变量、函数和存储过程 452 15.4.1 使用系统全局变量查看游标信息 452 15.4.2 使用函数查看游标状态 453 15.4.3 使用系统存储过程查看游标属性 454 15.5 小结 458 第16章 事务与锁 460 16.1 事务简介 460 16.1.1 事务的特性 460 16.1.2 事务的工作流程 461 16.1.3 执行事务的注意事项 462 16.1.4 事务的工作原理 462 16.1.5 事务执行的模式 463 16.2 编写事务 463 16.2.1 编写事务的原则 464 16.2.2 编写事务 464 16.3 嵌套事务 466 16.3.1 使用嵌套事务的注意事项 466 16.3.2 嵌套事务示例 467 16.3.3 获取嵌套的层次 469 16.4 事务保存点 471 16.5 事务的隔离级别 473 16.6 锁简介 473 16.7 锁的对象和模式 474 16.8 死锁 475 16.9 小结 476 第17章 其他数据对象 477 17.1 统计信息 477 17.1.1 统计信息简介 477 17.1.2 查看统计信息 478 17.1.3 创建统计信息 481 17.1.4 更新统计信息 482 17.1.5 删除统计信息 483 17.2 同义词 484 17.2.1 同义词简介 484 17.2.2 创建同义词 484 17.2.3 使用同义词与链接服务器 486 17.2.4 查看同义词的信息与删除同义词 488 17.3 小结 489 第5部分 SQL Server高级技术篇 491 第18章 数据库备份与恢复 492 18.1 备份与恢复介绍 492 18.1.1 备份类型 492 18.1.2 恢复模式 493 18.1.3 如何备份数据库 494 18.1.4 数据库备份到哪里 495 18.2 在SQL Server Management Studio中备份数据库 496 18.3 使用T-SQL语言备份数据库 499 18.3.1 完整备份与差异备份 499 18.3.2 备份文件和文件组 502 18.3.3 事务日志备份 503 18.4 备份设备管理 504 18.4.1 查看备份设备的内容 504 18.4.2 通过备份设备来备份数据库 505 18.4.3 验证备份的内容 506 18.4.4 删除备份设备 507 18.5 在SQL Server Management Studio中还原数据库 507 18.5.1 还原数据库的方式 508 18.5.2 还原数据库前要注意的事项 508 18.5.3 还原数据库备份 508 18.5.4 还原文件和文件组备份 510 18.5.5 使用现有的备份创建新的数据库 511 18.6 用T-SQL语言还原数据库 512 18.6.1 还原完整备份 512 18.6.2 还原差异备份 514 18.6.3 还原事务日志备份 515 18.6.4 还原文件和文件组备份 515 18.6.5 将数据库还原到某个时间点 516 18.6.6 将文件还原到新位置上 516 18.7 建立自动备份的维护计划 517 18.8 小结 519 第19章 系统数据库与用户数据库 520 19.1 SQL Server 2008系统数据库介绍 520 19.1.1 master系统数据库 520 19.1.2 tempdb临时数据库 520 19.1.3 model模板数据库 521 19.1.4 msdb系统数据库 521 19.1.5 resource系统数据库 522 19.2 系统表与视图介绍 522 19.2.1 msdb数据库里的表 523 19.2.2 系统视图 525 19.2.3 系统函数 526 19.3 规划数据库 526 19.3.1 数据库文件 526 19.3.2 文件组 527 19.3.3 计算数据库文件的大小 528 19.4 小结 529 第20章 SQL Server 2008的安全 530 20.1 SQL Server 2008的身份验证模式 530 20.2 访问权限 532 20.3 用户 532 20.3.1 添加用户 532 20.3.2 使用用户登录 533 20.3.3 为用户设置权限 534 20.4 角色 538 20.4.1 角色简介 538 20.4.2 服务器角色 538 20.4.3 将用户设为服务器角色成员 539 20.4.4 数据库角色 539 20.4.5 将用户设为数据库角色成员 540 20.4.6 创建用户自定义数据库角色 541 20.4.7 应用程序角色 541 20.4.8 创建应用程序角色 541 20.4.9 使用应用程序角色 542 20.5 架构 543 20.6 确保数据库服务器的安全 544 20.7 小结 546 第21章 复制与发布 547 21.1 复制简介 547 21.1.1 什么是复制 547 21.1.2 复制的类型 548 21.1.3 复制代理 549 21.2 发布服务器与发布 550 21.2.1 复制的步骤 550 21.2.2 创建发布服务器与发布 550 21.2.3 修改发布属性 554 21.2.4 删除发布 557 21.3 订阅服务器与订阅 557 21.3.1 创建订阅服务器与订阅 557 21.3.2 修改订阅属性 560 21.3.3 删除订阅 560 21.4 复制监视器 561 21.4.1 启动复制监视器 561 21.4.2 添加其他发布服务器 562 21.4.3 查看发布服务器的信息 563 21.5 小结 564 第22章 SQL Server的自动化管理 565 22.1 SQL Server代理 565 22.1.1 SQL Server代理简介 565 22.1.2 启动和停止SQL Server代理 566 22.1.3 SQL Server代理的设置 566 22.1.4 指定SQL Server代理的登录账户 569 22.2 操作员 570 22.3 作业 571 22.3.1 新建作业 571 22.3.2 手动执行作业 574 22.3.3 调度作业 574 22.3.4 查看历史记录 575 22.3.5 删除、禁用与启用作业 576 22.4 警报与通知 576 22.4.1 新建警报 576 22.4.2 修改警报 579 22.4.3 启动、禁用与删除警报 579 22.4.4 通知 579 22.5 维护计划 580 22.6 错误日志 582 22.7 小结 583 第23章 SQL Server的性能工具 584 23.1 SQL Server Profiler 584 23.1.1 SQL Server Profiler简介 584 23.1.2 新建跟踪 585 23.1.3 存储事件记录 586 23.1.4 载入事件记录 586 23.1.5 新建跟踪模板 586 23.1.6 值得注意的功能 587 23.2 数据库引擎优化顾问 588 23.2.1 数据库引擎优化顾问介绍 588 23.2.2 使用数据库引擎优化顾问 588 23.3 小结 589 第24章 SQL Server邮件 590 24.1 SQL Mail 590 24.1.1 配置SQL Mail 590 24.1.2 使用SQL Mail发送电子邮件 593 24.2 数据库邮件 594 24.2.1 配置数据库邮件 594 24.2.2 发送测试邮件 597 24.2.3 配置SQL Server代理以使用数据库邮件 598 24.3 小结 599 第25章 数据导入与导出 601 25.1 SQL Server导入导出向导 601 25.2 数据导入导出 601 25.3 数据导入导出时的数据类型转换 604 25.4 在不同数据源与目标之间传输数据 604 25.5 小结 606 第26章 Analysis Services 607 26.1 Analysis Services简介 607 26.1.1 数据仓库 607 26.1.2 数据仓库的结构 608 26.1.3 创建数据仓库的步骤 609 26.1.4 联机分析处理(OLAP) 609 26.1.5 数据挖掘 610 26.2 定义数据源 610 26.3 定义数据源视图 612 26.4 定义多维数据集 614 26.5 部署Analysis Services项目 618 26.6 查看多维数据集 619 26.7 使用客户端软件查看多维数据 620 26.8 小结 623 第27章 Reporting Services 624 27.1 创建报表服务器项目 624 27.2 创建数据源 625 27.3 创建报表 626 27.4 发布报表 628 27.5 自定义报表信息 629 27.6 小结 632 第28章 SQL Server与XML 634 28.1 XML简介 634 28.1.1 什么是XML 634 28.1.2 使用XML的好处 635 28.1.3 XML的语法 636 28.2 SQL Server中的XML语句 638 28.2.1 FOR XML的Select语句 638 28.2.2 简单输出XML 639 28.2.3 输出XSD架构 643 28.2.4 输出XDR架构 645 28.2.5 按路径输出XML 646 28.2.6 为输出的XML添加根元素 647 28.2.7 OpenXml函数 648 28.3 XML数据类型 650 28.3.1 声明XML数据类型 651 28.3.2 为XML类型的变量赋值 651 28.3.3 将XML数据插入数据表 653 28.4 XML索引 653 28.4.1 XML索引类型 653 28.4.2 使用SQL Server Management Studio创建XML索引 654 28.4.3 使用T-SQL语句创建XML索引 656 28.5 操作XML 657 28.5.1 Query方法 657 28.5.2 Value方法 658 28.5.3 Exist方法 659 28.5.4 在XML实例中插入节点 660 28.5.5 在XML实例中修改节点的值 661 28.5.6 在XML实例中删除节点 664 28.6 小结 664 第29章 客户端及应用程序访问SQL Server的方式 666 29.1 客户端访问SQL Server的方式 666 29.1.1 ODBC接口 666 29.1.2 OLE DB接口 668 29.1.3 ADO组件 668 29.2 从Access访问SQL Server 668 29.3 使用ASP.NET程序访问SQL Server 669 29.3.1 通过ODBC接口访问SQL Server 669 29.3.2 通过OLE DB接口访问SQL Server 670 29.4 小结 671 第6部分 SQL Server 2008改进篇 673 第30章 对T-SQL的改进 674 30.1 兼容级别设置 674 30.1.1 语法 674 30.1.2 使用SQL Server Management Studio更改兼容级别 675 30.1.3 数据库兼容的注意事项 676 30.1.4 兼容级别导致的影响 677 30.1.5 兼容级别示例 678 30.1.6 兼容级别对ORDER BY的影响示例 679 30.2 复合运算符 681 30.2.1 +=运算符 681 30.2.2 -=运算符 681 30.3 Convert函数 682 30.3.1 语法 682 30.3.2 二进制与字符十六进制转换示例 683 30.4 日期和时间功能 683 30.4.1 语法 683 30.4.2 ISO周-日示例 684 30.4.3 日期功能的注意事项 684 30.5 Grouping Sets分组 685 30.5.1 语法 685 30.5.2 注意事项 686 30.5.3 Grouping Sets分组示例 686 30.6 MERGE语句 687 30.6.1 语法 687 30.6.2 MERGE合并数据源示例 690 30.7 SQL依赖关系报告 691 30.8 表值参数 692 30.8.1 创建用户表类型 692 30.8.2 使用表值参数示例 692 30.8.3 使用表值参数进行数据传递的注意事项 692 30.9 T-SQL行构造函数 693 30.10 小结 694 第31章 数据存储和数据类型 695 31.1 数据存储的改进 695 31.1.1 表和索引的压缩存储 695 31.1.2 FILESTREAM存储 701 31.1.3 稀疏列和列集 705 31.1.4 空间数据的存储、方法和索引 710 31.2 新增的数据类型 710 31.2.1 HierarchyID层次化数据 711 31.2.2 日期和时间类型 715 31.2.3 空间数据类型 718 31.2.4 用户定义表类型 723 31.2.5 用户定义类型 727 31.3 对非关系数据类型的支持 730 31.3.1 非关系数据类型概述 731 31.3.2 文档和多媒体 731 31.3.3 地理信息数据 731 31.3.4 XML数据 732 31.4 小结 734 第32章 安全性的增强 735 32.1 数据加密 735 32.1.1 新的加密辅助函数 735 32.1.2 透明数据加密 736 32.1.3 外部密钥管理 743 32.2 数据审核 743 32.2.1 数据审核概述 743 32.2.2 进行数据审核 744 32.3 身份验证的改进 752 32.3.1 基本身份验证 752 32.3.2 端点身份验证 752 32.4 小结 753 第33章 SQL Server Integration Service 754 33.1 SSIS简介 754 33.1.1 SSIS的概述 754 33.1.2 SQL Server 2008中SSIS的改进 755 33.2 SSIS结构 756 33.2.1 SSIS的用途 756 33.2.2 SSIS包的组成 757 33.3 SSIS的开发 762 33.3.1 设计和实现包 762 33.3.2 部署包 767 33.4 小结 772 第34章 分析服务的改进 773 34.1 多维数据库解决方案设计的改进 773 34.1.1 AMO警示 773 34.1.2 维度设计 775 34.1.3 多维数据集 777 34.1.4 聚合设计 780 34.2 资源监控及管理的改进 783 34.2.1 资源监控 783 34.2.2 块计算 783 34.2.3 回写性能 783 34.2.4 备份可扩展性 784 34.3 小结 784 第35章 报表服务的改进 785 35.1 新增报表制作功能 785 35.1.1 新增的数据源类型 785 35.1.2 增强的图表数据区域 785 35.1.3 仪表数据区域的使用 790 35.1.4 Tablix数据区域 792 35.1.5 文本框增强功能 797 35.1.6 报表设计器 798 35.2 报表处理 799 35.2.1 增强的报表导出格式 799 35.2.2 报表的部署 799 35.3 小结 802
2022-08-22 16:08:43 130MB SQL Server 2008 宝典
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐) 1.10 小结 正如你可以从到目前为止的例子中看出的,SQL语言提供了很多不同的选择来得到同样的结果集。你可能还注意到了一点就是这5个核心的SQL语句都可以使用类似的构造,例如子查询。关键是需要搞清楚在各种不同的使用场景下哪种构造是最高效的。我们将在本书后面的内容中阐述如何做到这一点。 如果你对本章的例子的理解有任何困难,请一定花点时间复习Beginning Oracle SQL或者Oracle文档中的SQL Reference Guide。在本书中接下来的部分我们假设你已经很好地理解了5个核心SQL语句的基本构造:SELECT、INSERT、UPDATE、DELETE和MERGE。 Oracle SQL 高级编程 详细书签版 2013-------》2022
2022-06-20 18:05:37 43.88MB Oracle SQL 高级编程 详细书签版
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008实战(SQL Server程序员和DBA不可或缺的权威参考手册) 基本信息 原书名: SQL Server 2008 Transact-SQL Recipes: A Problem-Solution Approach 原出版社: Apress 作者: (美)Joseph Sack 译者: 金迎春 丛书名: 图灵程序设计丛书 数据库 出版社:人民邮电出版社 ISBN:9787115221063 上架时间:2010-3-5 出版日期:2010 年2月 开本:16开 页码:713 版次:1-1 编辑推荐    SQL Server程序员和DBA不可或缺的权威参考手册    查询方便,迅速解决工作中的难题    大量来自微软内部的技巧 内容简介    t-sql一直以来都是 sql server编程的基础。和传统的 t-sql书籍不同,本书以独特的 “技巧 ”形式来介绍知识点,涵盖了数据处理(增删改、视图、索引、存储过程、触发器等)、数据应用(web服务、 clr集成、分布式查询等)和数据库配置(主体、安全、数据库镜像和快照、备份等)3个方面的内容。其中每一个技巧中都包含了有代表性的示例和精炼的解析。    本书实用、高效、技巧性强,适用于 sql server专业技术人员,也可供初学者学习参考。 作译者   Joseph Sack 世界知名的SQL Server技术专家,微软认证数据库管理员(MCDBA),有10多年的SQL Server开发和管理工作经验。目前就职于微软公司高级现场工程组(Premier Field Engineering team)。除本书外,他撰写的SQL Server 2000 Fast Answers for DBAs and Developers(即本书前身)是Amazon五星著作,与人合写的Pro SQL Server 2005也广受好评。他的博客地址是http://joesack.com/WordPress/。 目录 封面 -19 封底 -18 扉页 -17 版权 -16 版权声明 -15 译者序 -14 前言 -12 致谢 -11 目录 -10 第1章 SELECT 1 1.1 基本的SELECT语句 1 1.1.1 从表中选择指定列 2 1.1.2 从所有行中选择所有列 2 1.2 使用基本WHERE子句进行有选择的查询 3 1.2.1 使用WHERE子句指定结果集中返回的行 3 1.2.2 组合搜索条件 4 1.2.3 否定搜索条件 5 1.2.4 保持WHERE子句无歧义 5 1.3 使用运算符和表达式 6 1.3.1 在日期范围搜索中使用BETWEEN 7 1.3.2 使用比较运算符 8 1.3.3 检测NULL值 9 1.3.4 基于一组值返回行 9 1.3.5 LIKE和通配符结合使用 9 1.3.6 声明变量及为变量赋值 11 1.4 数据分组 12 1.4.1 使用GROUP BY子句 12 1.4.2 使用GROUP BY ALL 13 1.4.3 使用HAVING选择性地查询分组的数据 13 1.5 对结果排序 14 1.5.1 使用ORDER BY子句 15 1.5.2 在排序的结果中使用TOP关键字 16 1.6 SELECT子句技术 18 1.6.1 使用DISTINCT消除重复值 18 1.6.2 在聚合函数中使用DISTINCT 18 1.6.3 使用列别名 19 1.6.4 使用SELECT创建脚本 20 1.6.5 字符串拼接 21 1.6.6 使用SELECT创建逗号分隔的列表 21 1.6.7 使用INTO子句 22 1.7 子查询 23 1.8 从多个数据源查询 24 1.8.1 使用内联结 25 1.8.2 使用外联结 26 1.8.3 使用交叉联结 27 1.8.4 在同一查询中多次引用同一个表 27 1.8.5 使用衍生表 28 1.8.6 使用UNION组合结果集 29 1.9 使用APPLY来为每行调用表值函数 30 1.9.1 使用CROSS APPLY 30 1.9.2 使用OUTER APPLY 32 1.10 数据源高级技术 33 1.10.1 使用TABLESAMPLE来返回随机行 33 1.10.2 使用PIVOT把单列值转化为多列和聚合数据 34 1.10.3 使用UNPIVOT规范化数据 36 1.10.4 使用EXCEPT和INTERSECT返回不重复的或匹配的行 38 1.11 汇总数据 40 1.11.1 使用CUBE汇总数据 40 1.11.2 使用ROLLUP来汇总数据 42 1.11.3 使用分组集创建自定义汇总 43 1.11.4 展现GROUPING生成的行 44 1.11.5 使用GROUPING_ID标识分组级别 46 1.12 公共表表达式 49 1.12.1 使用非递归的公共表表达式 49 1.12.2 使用递归的公共表表达式 52 第2章 执行、捕获和跟踪数据修改 55 2.1 INSERT 55 2.1.1 向表中插入一行 55 2.1.2 使用默认值插入行 56 2.1.3 显式向一个IDENTITY列插入值 57 2.1.4 在表中插入拥有uniqueidentifier列的行 59 2.1.5 使用INSERT...SELECT语句插入行 59 2.1.6 调用存储过程插入数据 60 2.1.7 通过VALUES插入多个行 62 2.1.8 将VALUES作为表源来使用 62 2.2 UPDATE 63 2.2.1 更新一行 64 2.2.2 根据FROM和WHERE子句更新行 65 2.2.3 更新大值数据类型的列 66 2.2.4 使用OPENROWSET和BULK插入或更新图片文件 68 2.2.5 在维护SQL Server事务控制时向文件系统存储非结构化数据 69 2.2.6 “就地”赋值并修改数据库值 73 2.3 DELETE 75 2.3.1 删除行 75 2.3.2 截断表 76 2.4 高级数据修改技术 77 2.4.1 使用TOP分块修改数据 77 2.4.2 在一条语句中执行INSERT、UPDATE和DELETE 78 2.5 捕获和跟踪数据修改的改变 81 2.5.1 返回数据修改语句影响的行 81 2.5.2 异步捕获表数据修改 83 2.5.3 从CDC表查询所有变更 87 2.5.4 从CDC表查询净变更 89 2.5.5 翻译CDC更新掩码 90 2.5.6 使用LSN边界 92 2.5.7 禁用对表和数据库的变更数据捕获 93 2.5.8 以最小的磁盘开销跟踪净数据更改 93 第3章 事务、锁定、阻塞和死锁 100 3.1 事务控制 100 3.1.1 使用显式事务 101 3.1.2 使用DBCC OPENTRAN显示最早的活动事务 104 3.1.3 通过会话查询事务信息 104 3.2 锁定 106 3.2.1 查看锁的活动 108 3.2.2 控制表的锁升级行为 109 3.3 事务、锁定和并发 110 3.4 阻塞 115 3.4.1 找到并解决阻塞进程 116 3.4.2 配置语句等待锁释放的时长 118 3.5 死锁 118 3.5.1 使用跟踪标志位找出死锁 119 3.5.2 设置死锁优先级 121 第4章 表 123 4.1 表基础 123 4.1.1 创建表 126 4.1.2 为既有表添加列 126 4.1.3 修改列定义 127 4.1.4 创建计算列 128 4.1.5 减少NULL列的存储空间 129 4.1.6 删除表中的列 131 4.1.7 报告表信息 132 4.1.8 删除表 132 4.2 排序规则基础 133 4.2.1 查看排序规则元数据 133 4.2.2 指定列的排序规则 134 4.3 键 134 4.3.1 创建有主键的表 135 4.3.2 为既有表增加主键约束 136 4.3.3 创建一个有外键引用的表 136 4.3.4 为既有表增加外键 137 4.3.5 创建递归外键引用 138 4.3.6 允许外键的级联修改 139 4.4 代理键 140 4.4.1 在创建表的时候使用IDENTITY属性 141 4.4.2 使用DBCC CHECKIDENT来查看和纠正IDENTITY种子值 142 4.4.3 使用ROWGUIDCOL属性 143 4.5 约束 143 4.5.1 创建唯一约束 144 4.5.2 为既有表增加UNIQUE约束 145 4.5.3 使用CHECK约束 145 4.5.4 为既有表增加CHECK约束 146 4.5.5 禁止和启用约束 147 4.5.6 在表创建时使用DEFAULT约束 148 4.5.7 为既有表增加DEFAULT约束 149 4.5.8 从表删除约束 150 4.6 临时表和表变量 150 4.6.1 使用临时表在批处理中进行多次查找 151 4.6.2 创建表变量来保存临时结果集 152 4.7 管理超大型表 153 4.7.1 实现表分区 154 4.7.2 确定数据在分区中的位置 157 4.7.3 增加新的分区 158 4.7.4 移除分区 160 4.7.5 把分区移动到不同的表 161 4.7.6 移除分区函数和分区方案 162 4.7.7 用文件组提高VLDB的可管理性 162 4.7.8 用数据压缩减少磁盘空间使用 164 第5章 索引 167 5.1 索引预览 167 5.1.1 创建表索引 169 5.1.2 在非键列上强制唯一性 170 5.1.3 在多个列上创建索引 171 5.1.4 定义索引列排序方向 172 5.1.5 查看索引元数据 172 5.1.6 禁用索引 174 5.1.7 删除索引 174 5.1.8 使用DROP_EXISTING改变既有索引 174 5.2 控制索引创建的性能和并发性 175 5.2.1 在tempdb中创建临时索引 175 5.2.2 控制索引创建的并行执行计划 176 5.2.3 在索引创建过程中允许用户表访问 176 5.3 索引选项 177 5.3.1 使用索引INCLUDE 177 5.3.2 使用PAD_INDEX和FILLFACTOR 178 5.3.3 禁用页和/或行索引锁定 178 5.4 管理超大型索引 179 5.4.1 在文件组上创建索引 180 5.4.2 实现索引分区 180 5.4.3 为行的子集做索引 181 5.4.4 减小索引的大小 182 第6章 全文搜索 183 6.1 全文索引和全文目录 183 6.1.1 创建全文目录 183 6.1.2 创建全文索引 184 6.1.3 修改全文目录 186 6.1.4 修改全文索引 187 6.1.5 检索全文目录和索引元数据 189 6.1.6 从全文索引中去掉普通字符串 190 6.1.7 删除全文索引 193 6.1.8 删除全文目录 193 6.2 基本搜索 194 6.2.1 使用FREETEXT来搜索全文索引的列 194 6.2.2 使用CONTAINS来搜索单词 195 6.3 高级搜索 196 6.3.1 使用CONTAINS和通配符来搜索 196 6.3.2 使用CONTAINS来搜索变形匹配 196 6.3.3 使用CONTAINS根据词的相邻搜索结果 197 6.4 排名搜索 197 6.4.1 根据含义返回排名搜索结果 198 6.4.2 根据权值返回排名搜索结果 199 第7章 视图 201 7.1 普通视图 201 7.1.1 创建基本视图 202 7.1.2 查询视图定义 203 7.1.3 显示视图及其结构 204 7.1.4 刷新视图定义 205 7.1.5 修改视图 206 7.1.6 删除视图 206 7.1.7 使用视图修改数据 206 7.2 视图加密 207 7.3 索引视图 208 7.3.1 创建索引视图 208 7.3.2 强制优化器为索引视图使用索引 210 7.4 分区视图 211 第8章 SQL Server函数 216 8.1 聚合函数 216 8.1.1 返回平均值 217 8.1.2 返回行总数 217 8.1.3 找出表达式中的最小值和最大值 218 8.1.4 返回值的和 218 8.1.5 使用统计聚合函数 219 8.2 数学函数 219 8.3 字符串函数 221 8.3.1 把字符值转化为ASCII以及把ASCII转回字符 222 8.3.2 返回整数和字符Unicode值 222 8.3.3 获取某个字符串在另一个字符串中的起始位置 223 8.3.4 使用通配符找到某个字符串在另一个字符串中的起始位置 223 8.3.5 检测字符串相似度 224 8.3.6 获取字符串最左和最右部分 224 8.3.7 检测字符串中的字符数或者字节数 225 8.3.8 把字符串的一部分替换成另一个字符串 226 8.3.9 把字符串填充到字符串中 226 8.3.10 在小写和大写之间进行转化 227 8.3.11 移除前导空格和尾部空格 228 8.3.12 重复一个表达式N次 228 8.3.13 重复一个空格N次 229 8.3.14 逆序输出表达式 229 8.3.15 返回表达式的一块 229 8.4 处理NULL 230 8.4.1 用另一个值替换NULL值 230 8.4.2 使用ISNULL进行灵活的搜索 230 8.4.3 返回表达式列表中第一个非NULL值 232 8.4.4 当两个表达式相等的时候返回NULL值,否则返回第一个表达式 232 8.5 日期函数 233 8.5.1 返回当前日期和时间 233 8.5.2 在时区间进行转换 234 8.5.3 增加或减少日期值 235 8.5.4 找出两个日期的差 236 8.5.5 显示日期一部分的字符串值 237 8.5.6 使用DATEPART显示日期一部分的整数值 237 8.5.7 使用YEAR、MONTH和DAY显示日期一部分的整数值 238 8.6 类型转换 238 8.6.1 转换数据类型 238 8.6.2 将日期转换为文本形式 239 8.6.3 以字符串字面量表示二进制数据 240 8.6.4 计算表达式返回的数据类型 241 8.7 排名函数 242 8.7.1 生成递增行号 242 8.7.2 根据排名返回行 244 8.7.3 根据无间隔排名返回行 245 8.7.4 使用NTILE 246 8.8 使用系统函数检测服务器、数据库以及连接级别的配置 246 8.8.1 确定每周的第一天 246 8.8.2 查看当前会话使用的语言 247 8.8.3 查看和设置当前连接锁超时设置 247 8.8.4 显示当前存储过程上下文的嵌套级别 248 8.8.5 返回当前SQL Server实例名和SQL Server版本 248 8.8.6 返回当前连接的会话ID(SPID) 249 8.8.7 返回打开事务的数量 249 8.8.8 获取之前语句影响的行数 250 8.8.9 获取系统统计信息 250 8.8.10 显示数据库和SQL Server设置 251 8.8.11 返回当前数据库ID和名称 252 8.8.12 返回数据库对象名和ID 253 8.8.13 返回当前用户会话的应用程序和主机 253 8.8.14 获取当前用户和登录名上下文 253 8.8.15 查看用户连接选项 254 8.9 IDENTITY和uniqueidentifier函数 255 8.9.1 返回最后一个标识值 255 8.9.2 返回标识列的种子和增量值 256 8.9.3 创建新的uniqueidentifier值 256 第9章 条件处理、流控制和游标 258 9.1 条件处理 258 9.1.1 使用CASE来计算单个输入表达式 258 9.1.2 使用CASE来计算布尔表达式 260 9.1.3 使用IF...ELSE 261 9.2 流控制 262 9.2.1 使用RETURN 263 9.2.2 使用WHILE 264 9.2.3 使用GOTO 266 9.2.4 使用WAITFOR 267 9.3 游标 268 第10章 存储过程 273 10.1 存储过程基础 273 10.1.1 创建基本的存储过程 274 10.1.2 创建带参数的存储过程 275 10.1.3 使用OUTPUT参数 277 10.1.4 修改存储过程 278 10.1.5 删除存储过程 279 10.1.6 在SQL Server启动时自动执行存储过程 279 10.1.7 报告存储过程元数据 281 10.1.8 为存储过程建立文档 281 10.2 存储过程安全 282 10.2.1 加密存储过程 282 10.2.2 使用EXECUTE AS来指定过程的安全上下文 283 10.3 重新编译和缓存 286 10.3.1 每次存储过程执行时重新编译 286 10.3.2 清空过程缓存 287 第11章 用户定义函数和类型 289 11.1 UDF基础 289 11.1.1 创建标量用户定义函数 290 11.1.2 创建内联用户定义函数 294 11.1.3 创建多语句用户定义函数 296 11.1.4 修改用户定义函数 299 11.1.5 查看UDF元数据 300 11.1.6 移除用户定义函数 301 11.2 从UDF获益 301 11.2.1 维护可重用的代码 302 11.2.2 交叉引用的自然键值 303 11.2.3 使用多语句UDF替代视图 306 11.3 UDT基础知识 308 11.3.1 创建和使用用户定义类型 308 11.3.2 找出使用用户定义类型的列和参数 310 11.3.3 删除用户定义类型 311 11.3.4 传入表值参数 312 第12章 触发器 315 12.1 DML触发器 316 12.1.1 创建AFTER DML触发器 316 12.1.2 创建INSTEAD OF DML触发器 319 12.1.3 在DML触发器中处理事务 322 12.1.4 根据修改的列控制DML触发器 324 12.1.5 查看DML触发器元数据 325 12.2 DDL触发器 326 12.2.1 创建审核数据库级别的事件的DDL触发器 326 12.2.2 创建审核服务器级别的事件的DDL触发器 328 12.2.3 使用登录触发器 329 12.2.4 查看DDL触发器元数据 331 12.3 管理触发器 332 12.3.1 修改触发器 332 12.3.2 启用和禁止表触发器 333 12.3.3 限制触发器嵌套 334 12.3.4 控制触发器递归 335 12.3.5 设置触发器触发次序 336 12.3.6 删除触发器 338 第13章 CLR集成 339 13.1 CLR概述 339 13.2 什么时候使用(不使用)程序集 340 13.3 CLR对象概述 341 13.4 创建CLR数据库对象 341 13.4.1 启用SQL Server的CLR支持 342 13.4.2 为CLR存储过程写程序集 342 13.4.3 把程序集编译成DLL文件 345 13.4.4 把程序集载入SQL Server 345 13.4.5 创建CLR存储过程 346 13.4.6 创建CLR标量用户定义函数 348 13.4.7 创建CLR触发器 350 13.5 管理程序集 352 13.5.1 查看程序集元数据 352 13.5.2 修改程序集权限 352 13.5.3 从数据库移除程序集 353 第14章 XML、分层和空间数据 354 14.1 使用原生XML 354 14.1.1 创建XML数据类型列 354 14.1.2 插入XML数据到列 355 14.1.3 使用架构验证XML数据 356 14.1.4 获取XML数据 358 14.1.5 修改XML数据 361 14.1.6 XML索引 362 14.2 在XML文档与关系型数据之间进行转换 363 14.2.1 将关系型数据格式化为XML 363 14.2.2 将XML转换为关系型 366 14.3 使用原生分层数据 368 14.3.1 存储分层数据 368 14.3.2 返回指定的祖先 370 14.3.3 返回子节点 371 14.3.4 返回节点的深度 371 14.3.5 返回根节点 372 14.3.6 确定节点是否为当前节点的子节点 372 14.3.7 更改节点位置 372 14.4 原生空间数据 373 14.4.1 存储空间数据 373 14.4.2 查询空间数据 376 第15章 提示 380 15.1 使用联结提示 380 15.2 使用查询提示 382 15.3 使用表提示 384 15.3.1 不锁定执行查询 385 15.3.2 强制SEEK覆盖SCAN 385 第16章 错误处理 388 16.1 系统定义和用户定义的错误消息 388 16.1.1 查看系统错误信息 388 16.1.2 创建用户定义错误消息 389 16.1.3 删除用户定义错误消息 391 16.2 手动引发错误 391 16.3 捕获和处理应用程序错误 393 16.3.1 旧风格的错误处理 394 16.3.2 使用TRY...CATCH进行错误处理 396 16.3.3 不重编写存储过程来应用TRY...CATCH 398 16.3.4 嵌套错误处理 398 第17章 主体 401 17.1 Windows级别的主体 401 17.1.1 创建Windows登录名 402 17.1.2 查看Windows登录名 403 17.1.3 修改Windows登录名 403 17.1.4 删除Windows登录名 404 17.1.5 拒绝Windows用户或用户组的SQL Server访问 405 17.2 SQL Server级别的主体 405 17.2.1 创建SQL Server登录名 407 17.2.2 查看SQL Server登录名 407 17.2.3 修改SQL Server登录名 408 17.2.4 管理登录名的密码 409 17.2.5 删除SQL登录名 409 17.2.6 管理服务器角色成员 410 17.2.7 报告固定服务器角色信息 411 17.3 数据库级别的主体 412 17.3.1 创建数据库用户 413 17.3.2 报告数据库用户信息 414 17.3.3 修改数据库用户 414 17.3.4 从数据库删除数据库用户 415 17.3.5 修复孤立的数据库用户 415 17.3.6 报告固定数据库角色信息 416 17.3.7 管理固定数据库角色成员 417 17.3.8 管理用户定义的数据库角色 418 17.3.9 管理应用程序角色 420 第18章 安全对象、权限和审核 423 18.1 权限总览 424 18.2 服务器范围的安全对象和权限 426 18.2.1 管理服务器权限 428 18.2.2 查询服务器权限 429 18.3 数据库范围的安全对象和权限 430 18.3.1 管理数据库权限 431 18.3.2 查询数据库权限 432 18.4 架构范围的安全对象和权限 434 18.4.1 管理架构 436 18.4.2 管理架构的权限 437 18.5 对象的权限 438 18.6 管理权限访问安全对象范围 440 18.6.1 检测当前连接的安全对象的权限 440 18.6.2 通过安全对象范围报告主体的权限 441 18.6.3 改变安全对象所有权 445 18.6.4 允许SQL登录名访问非SQL Server的资源 446 18.7 对安全对象的主体审核SQL实例和数据库级别活动 447 18.7.1 定义审核数据源 447 18.7.2 捕获SQL实例范围的事件 450 18.7.3 捕获数据库范围的事件 452 18.7.4 查询捕获的审核数据 455 18.7.5 管理、修改和移除审核对象 458 第19章 加密 462 19.1 通过通行短语加密 462 19.2 主密钥 464 19.2.1 备份及还原服务主密钥 465 19.2.2 创建、重新生成以及删除数据库主密钥 466 19.2.3 备份及还原数据库主密钥 467 19.2.4 从数据库主密钥删除服务主密钥加密 468 19.3 非对称密钥加密 469 19.3.1 创建非对称密钥 469 19.3.2 查看当前数据库中的非对称密钥 470 19.3.3 修改非对称密钥的私钥密码 470 19.3.4 使用非对称密钥对数据进行加密和解密 471 19.3.5 删除非对称密钥 473 19.4 对称密钥加密 473 19.4.1 创建对称密钥 474 19.4.2 查看当前数据库中的对称密钥 475 19.4.3 改变对称密钥加密方式 475 19.4.4 使用对称密钥进行加密和解密 476 19.4.5 删除对称密钥 479 19.5 证书加密 479 19.5.1 创建数据库证书 479 19.5.2 查看数据库中的证书 480 19.5.3 备份和还原证书 480 19.5.4 管理证书的私钥 482 19.5.5 使用证书加密和解密 483 19.5.6 通过对称密钥自动打开和解密 484 19.6 透明数据加密 486 19.6.1 启用透明数据加密 486 19.6.2 管理和移除TDE 487 第20章 Service Broker 489 20.1 示例场景:在线书店 489 20.2 创建基本的Service Broker应用程序 490 20.2.1 启用数据库的Service Broker活动 491 20.2.2 创建加密用的数据库主密钥 491 20.2.3 管理消息类型 492 20.2.4 创建约定 493 20.2.5 创建队列 494 20.2.6 创建服务 496 20.2.7 启动对话 497 20.2.8 查询队列中传入的消息 499 20.2.9 检索并响应消息 499 20.2.10 结束会话 501 20.2.11 设定Service Broker会话的优先级 503 20.3 创建用来处理消息的存储过程 505 20.4 远程服务器Service Broker的实现 507 20.4.1 启用传输安全模式 510 20.4.2 启用对话安全模式 512 20.4.3 创建路由和远程服务绑定 514 20.5 事件通知 517 第21章 配置和查看SQL Server的选项 520 第22章 创建和配置数据库 524 22.1 创建、修改和删除数据库 524 22.1.1 使用默认配置创建数据库 524 22.1.2 查看数据库信息 525 22.1.3 使用文件选项创建数据库 526 22.1.4 使用用户定义文件组创建数据库 528 22.1.5 设置数据库用户访问 530 22.1.6 重命名数据库 532 22.1.7 删除数据库 533 22.1.8 分离数据库 533 22.1.9 附加数据库 535 22.2 配置数据库选项 535 22.2.1 查看数据库选项 536 22.2.2 配置ANSI SQL选项 536 22.2.3 配置自动选项 538 22.2.4 创建或修改允许外部访问的数据库 539 22.2.5 使用非服务器默认排序规则创建或改变数据库 540 22.2.6 配置游标选项 541 22.2.7 启用日期相关性优化 542 22.2.8 修改数据库参数化行为 543 22.2.9 为事务启用读取一致性 546 22.2.10 配置数据库恢复模式 547 22.2.11 配置页验证 548 22.3 控制数据库访问和拥有关系 550 22.3.1 修改数据库状态为联机、离线或紧急状态 550 22.3.2 修改数据库拥有者 551 22.4 管理数据库文件和文件组 552 22.4.1 为既有的数据库添加数据文件或日志文件 552 22.4.2 从数据库删除数据或日志文件 553 22.4.3 重新分配数据或事务日志文件 554 22.4.4 修改文件的逻辑名称 555 22.4.5 增加数据库文件的大小和修改它的增长选项 556 22.4.6 为既有的数据库添加文件组 557 22.4.7 设置默认文件组 557 22.4.8 删除文件组 558 22.4.9 使数据库或文件组为只读 559 22.5 查看和管理数据库空间使用 560 22.5.1 查看数据库空间使用情况 560 22.5.2 收缩数据库或数据库文件 561 第23章 数据库完整性和优化 565 23.1 数据库检查 565 23.1.1 使用DBCC CHECKALLOC检查磁盘空间分配结构的一致性 565 23.1.2 使用DBCC CHECKDB检查所有数据库的分配和结构完整性 567 23.2 表和约束 569 23.2.1 使用DBCC CHECKFILEGROUP检查文件组中所有表的分配和结构完整性 569 23.2.2 使用DBCC CHECKTABLE检查表和索引视图的数据完整性 570 23.2.3 使用DBCC CHECKCONSTRAINTS检查表的完整性 573 23.2.4 使用DBCC CHECKCATALOG检查系统表的一致性 574 23.3 索引维护 575 23.3.1 重建索引 575 23.3.2 索引碎片整理 577 23.3.3 重建堆 578 第24章 维护数据库对象和对象依赖关系 579 24.1 数据库对象维护 579 24.1.1 修改用户创建的数据库对象的名称 579 24.1.2 修改对象的架构 581 24.2 对象依赖关系 581 24.2.1 标识对象依赖关系 581 24.2.2 标识引用和被引用的实体 583 24.2.3 查看对象定义 585 第25章 数据库镜像 587 25.1 上下文中的数据库镜像 587 25.2 数据库镜像体系结构 588 25.3 设置数据库镜像 589 25.3.1 创建镜像端点 590 25.3.2 备份和还原主体数据库 593 25.3.3 创建数据库镜像会话 595 25.4 设置总结 597 25.5 运行数据库镜像 598 25.5.1 改变运行模式 598 25.5.2 进行故障转移 599 25.5.3 暂停或继续镜像会话 600 25.5.4 停止镜像会话和删除端点 600 25.6 镜像和配置选项 601 25.6.1 监视镜像状态 601 25.6.2 配置连接超时时限 601 第26章 数据库快照 603 26.1 快照基础 603 26.1.1 创建和查询数据库快照 603 26.1.2 删除数据库快照 605 26.1.3 从数据库快照恢复数据 605 第27章 链接服务器和分布式查询 608 27.1 链接服务器基础 608 27.1.1 为另一SQL Server实例创建链接服务器 609 27.1.2 配置链接服务器属性 610 27.1.3 查看链接服务器信息 611 27.1.4 删除链接服务器 611 27.2 链接服务器登录名 612 27.2.1 添加链接服务器登录名映射 612 27.2.2 查看链接登录名 613 27.2.3 删除链接服务器登录名映射 613 27.3 执行分布式查询 614 27.3.1 在链接服务器上执行分布式查询 614 27.3.2 创建和使用引用4部分组成的链接服务器名的别名 615 27.3.3 使用OPENQUERY执行分布式查询 616 27.3.4 使用OPENROWSET执行临时的查询 617 27.3.5 使用OPENROWSET BULK选项从文件中读取数据 618 第28章 查询性能调优 621 28.1 查询性能技巧 622 28.2 捕捉和评估查询性能 623 28.2.1 使用sys.dm_exec_requests捕捉执行的查询 623 28.2.2 使用T-SQL命令查看评估的查询执行计划 624 28.2.3 查看执行运行时信息 627 28.2.4 查看性能统计信息和缓存的查询计划 629 28.2.5 基于查询或计划模式查看聚合的性能统计信息 630 28.2.6 标识出最大瓶颈 632 28.2.7 通过数据库和文件标识出I/O争用 633 28.3 索引调优 634 28.3.1 显示索引碎片 635 28.3.2 显示索引使用情况 637 28.4 统计信息 638 28.4.1 手动创建统计信息 639 28.4.2 行子集上创建统计信息 640 28.4.3 更新统计信息 640 28.4.4 生成及更新所有表的统计信息 641 28.4.5 查看详细的统计信息 642 28.4.6 删除统计信息 643 28.5 杂项技术 643 28.5.1 使用动态SQL的替代方法 644 28.5.2 强制SQL Server使用查询计划 646  28.5.3 不修改应用程序的SQL去应用提示 648 28.5.4 从缓存创建计划指南 651 28.5.5 检查计划指南的有效性 653 28.5.6 使用计划指南将非参数化查询参数化 653 28.5.7 限制查询资源消耗竞争 656 第29章 备份与恢复 662 29.1 创建备份和恢复计划 662 29.2 生成备份 663 29.2.1 执行基本的完全备份 665 29.2.2 压缩备份 666 29.2.3 命名和描述备份和媒体 668 29.2.4 配置备份保持期 669 29.2.5 条带化备份集 670 29.2.6 使用命名的备份设备 670 29.2.7 镜像备份集 672 29.2.8 执行事务日志备份 673 29.2.9 不破坏备份序列创建备份 674 29.2.10 执行差异备份 675 29.2.11 备份单个文件或文件组 675 29.2.12 执行部分备份 677 29.2.13 查看备份元数据 678 29.3 还原数据库 679 29.3.1 从完全备份还原数据库 679 29.3.2 从事务日志备份还原数据库 682 29.3.3 从差异备份还原数据库 684 29.3.4 还原文件或文件组 685 29.3.5 执行部分(PARTIAL)还原 686 29.3.6 还原页面 687 29.3.7 用多种恢复路径识别数据库 688 索引 691 译者序   不知不觉我已经从事数据库相关工作十年了,可以说是与SQL Server一起成长起来的,6.5、7.0、2000、2005,到现在的2008,每一次版本的更新都显著地增强了SQL Server的性能。   比如SQL Server 7.0带来了OLE DB和MSDE。服役时间最长的SQL Server 2000及后续的Service Pack带来了诸如Notification Services、Reporting Services、对Web的支持以及对XML的支持。SQL Server 2005新增了多种T-SQL指令,例如PIVOT/UNPIVOT和公共表表达式(Common Table Expression,CTE)等,强化了XML的处理能力,并新增了原生XML数据类型以及支持原生XML数据类型的XML查询操作符,大幅强化了数据库引擎的安全性功能,并支持数据结构变更的触发程序(DDL Trigger)等。   而本书介绍的SQL Server 2008在T-SQL方面带来了:   可以由管理者设置以调整执行资源的资源调节器(Resource Governer);   数据压缩能力;   DDL(数据定义语言)审核能力;   透明数据加密(Transparent Data Encryption);   本地的DATE和TIME分割的数据类型,并且支持时间位移的DATETIMEOFFSET和更精确的DATETIME2数据类型;   稀疏字段(Sparse Column)的支持,可节省因为NULL值所占据的存储空间;   空间数据类型,包含geometry以及geography数据类型,分别用来存储地理和几何的数据,有助于GIS系统的开发;   变更数据捕获(Change Data Capture);   hierarchyid数据类型,可以存储分层数据;   MERGE命令,可根据与来源数据表联结的结果,在目标数据表上执行插入、更新或删除操作;   ……   因为本书的重点是在T-SQL,其他方面的新增功能就不再阐述了。可以看到,新增的内容还是很多的,而这些内容会贯穿于本书所有章节。   本书在以下几个方面特色鲜明。   知识面广,几乎涵盖所有SQL Server 2008 T-SQL的内容。在学习和工作中遇到的任何T-SQL问题都可以在本书中找到答案。   讲解通俗,突出基础,言简意赅。你可以通过本书迅速找到你关心的T-SQL内容,并很快理解它是如何使用的。   示例丰富。书中提供了大量的代码示例,方便读者理论与实践相结合。通过实际操作,让读者更容易理解相应的内容。   本书主要适合如下读者阅读。 .  初学者可以从头到尾把书细读下来,同时跟着示例在测试环境中做练习。   数据库工作人员可以把它当作参考书,在工作中遇到问题就去查对应的内容。   程序开发人员在做数据库相关的开发工作时,也会从中得到很好的支持。   在校学生通过本书掌握相关知识和技能,在职场竞争中就多一样有力的武器。   在此,我要感谢麦格特尔网络科技有限公司技术部的所有同事,没有他们对我工作的支持,我是没办法完成本书的翻译的。翻译过程中得到了朱晔和孙铭先生的帮助,在此表示感谢。最后,感谢我的父母和妻子,他们是我完成本书的最大动力!还要感谢在我翻译期间出生的宝宝金曼妮,你的诞生是我最好的礼物,你的到来让我的人生更有意义。   由于时间仓促,书中难免存在错漏之处,欢迎读者指正。读者在阅读过程中发现任何问题,都可以发邮件到TSQLRecipes@hotmail.com和我交流。    前言   本书的目的在于快速提供使用T-SQL语言解决问题和执行任务的技巧。为了让你快速了解各个任务及其相关的T-SQL解决方案,我以问题/解决方案的形式编写了本书。你可以从中查找你希望执行的任务,看一下怎么做,然后在你自己的系统中执行。本书编写时遵循了以下几条关键原则。   保持简洁,仅提供完成工作所需要的信息。   让各种技巧之间和各章之间彼此独立——尽量避免交叉引用和内容分散。   主要关注可完全使用T-SQL执行操作的特性。例如,书中会讨论新的资源调控器特性,因为DBA一般会使用T-SQL对它进行部署,但是不会讨论基于策略的管理,因为它对SQL Server代理、SQL Server Management Objects(SMO)和SQL Server Management Studio有底层依赖。幸运的是,大多数新的SQL Server引擎改进都是完全基于T-SQL的,因此本书会讨论这些内容。   涵盖了从初级到高级的各种技巧。每一章都是从基本的技巧开始,然后逐渐上升到更高级的主题。   SQL Server 2008的新特性会贯穿在本书应用它们的各章节中。如果你只是想查找T-SQL更新了哪些新特性,也不用担心,对于每章涉及的新特性,我都会在章首处列出。   尽管本书的关键原则是保持内容简洁,但你会注意到本书还是很厚。这是SQL Server特性集持续扩展的结果,然而请放心,技巧部分还是比较简洁的,并且本书的编排让你能够快速找到完成工作所需要的答案。   本书适合SQL Server开发人员、管理员、应用程序开发人员以及那些负责开发数据库或管理SQL Server环境的IT多面手阅读。你可以从头到尾阅读本书,也可以直接翻到你感兴趣的主题来读。你可以在应聘或考试之前使用本书重温一下某些主题。对于有经验的SQL Server专业人士来说,如果有些命令或技术忘记了,本书可以帮助他们迅速拾起它们的用法。   感谢你的阅读!   
2022-03-14 15:33:59 48.06MB SQL Server 实战 DBA
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Oracle性能诊断艺术(Oracle数据库优化的里程碑式著作) 基本信息 原书名: Troubleshooting Oracle Performance 原出版社: Apress 作者: (瑞)Christian Antognini 译者: 童家旺 胡怡文 冯大辉 丛书名: 图灵程序设计丛书 数据库 出版社:人民邮电出版社 ISBN:9787115215147 上架时间:2009-10-30 出版日期:2009 年10月 开本:16开 页码:451 版次:1-1 所属分类: 计算机 > 数据库 > Oracle 编辑推荐   Oracle数据库优化的里程碑式著作.    涵盖Oracle各版本..    源自实战的真知灼见... 内容简介   前端业务应用炙手可热之日,便是优化后端数据库性能之时。当此之际,身怀数据库优化的绝技,可以让你平步职场,傲视群英。.    本书是oracle数据库优化专家christian antognini的一部继往开来的里程碑式著作。书中的最佳实践和诸多建议全部来源于作者在实战一线的丰富积累。不仅简单实用,而且发人深省,堪称一座“宝库”,适合各层次读者研读和发掘。..    与其他同类图书不同,本书不仅涵盖了市面上常见的各种oracle版本,还指明了各个版本独有的性能优化特性。全书以崭新的视角开篇立论,围绕查明问题真相和搜寻有效方略,透彻讲解了查询优化器的配置,表访问、连接和物理表布局的优化,以及加速sql执行计划等重要主题,被读者誉为“最透彻,但又最通俗的性能优化好书”。值得拥有!... 作译者   Christian Antognini 瑞士苏黎世Trivadis公司首席顾问和讲师,从1995年就开始致力于探究Oracle数据库引擎的工作机制。他最热衷的是逻辑与物理数据库的设计、 数据库与Java应用程序的集成、查询优化器,以及与性能管理和优化相关的所有方面。他还是Trivadis性能团队和OakTable 网站的核心成员。.   童家旺 安徽芜湖人。毕业于上海电力学院工商管理专业,现供职于阿里巴巴,负责产品数据库的维护工作。主要关注Oracle数据库以及Unix(Linux)操作系统,尤其关注这些产品的设计思路、理念,不止于满足知其然,更想了解其所以然.空闲时喜读各种闲书,涉及经济、历史、政治、文学等...   胡怡文 江苏淮安人.现供职于支付宝(中国)网络技术有限公司,担任商业智能部门的数据仓库工程师.关注BI架构与设计、数据库和操作系统技术,常沉浸其中,偶有所得亦欣然自喜.平时好读书,爬山,骑车,四处走走.愿行万里路,交天下朋友.   冯大辉 就职于支付宝(中国)网络科技有限公司(Alipay.com),担任过DBA、数据架构师,现负责领导支付宝数据库团队.过去几年间,他的工作集中在数据库管理、优化、数据架构规划、解决方案等方面.2007年国内首批OraclecACE,网络ID“Fenng”,长期关注Webc2.0网站架构技术.个人技术Blog:http://dbanotes.net.... 目录 封面 -19 封底 -18 书名 -17 版权声明 -16 致中国读者 -15 译者序 -14 序 -12 致谢 -10 关于本书 -9 关于OakTable Network -7 目录 -4 第一部分 基  础 1 第1章 性能问题 2 1.1 需要为性能做规划吗 2 1.1.1 需求分析 2 1.1.2 分析和设计 4 1.1.3 编码和单元测试 4 1.1.4 集成和验收测试 5 1.2 什么是性能问题 5 1.2.1 系统监控 6 1.2.2 响应时间监控 6 1.2.3 强迫调优失调症 6 1.3 如何解决性能问题 7 1.3.1 业务角度与系统角度 7 1.3.2 把问题分类 8 1.3.3 解决问题 8 1.4 小结 9 第2章 关键概念 10 2.1 选择性和基数 10 2.2 游标的生命周期 11 2.3 解析的过程 13 2.3.1 共享游标 15 2.3.2 绑定变量 17 2.4 读写数据块 24 2.5 小结 25 第二部分 找出问题 27 第3章 找出性能问题 28 3.1 分而治之 28 3.2 分析路线图 29 3.3 性能测量与剖析分析 32 3.4 性能测量 32 3.4.1 应用程序代码 33 3.4.2 数据库调用 35 3.5 剖析应用程序代码 38 3.5.1 简明的性能剖析 38 3.5.2 细节化性能剖析 43 3.6 跟踪数据库调用 46 3.6.1 sql跟踪 46 3.6.2 跟踪文件的结构 58 3.6.3 使用trcsess 60 3.6.4 剖析工具 61 3.6.5 使用tkprof 62 3.6.6 使用tvd$xtat 71 3.7 剖析pl/sql代码 79 3.7.1 安装剖析工具 80 3.7.2 安装输出表 80 3.7.3 收集剖析数据 81 3.7.4 报告剖析数据 82 3.7.5 gui方式 83 3.8 小结 84 第三部分 查询优化器 85 第4章 系统和对象统计信息 86 4.1 工具包dbms_stats简介 86 4.2 系统统计 87 4.2.1 数据字典 88 4.2.2 非工作量统计信息 89 4.2.3 工作量统计信息 90 4.2.4 对查询优化器的影响 92 4.3 对象统计信息 94 4.3.1 有哪些对象统计信息可用 95 4.3.2 收集对象统计信息 108 4.3.3 锁定对象统计信息 123 4.3.4 比较对象统计信息 125 4.3.5 删除对象统计信息 127 4.3.6 保持统计信息时效性的策略 129 4.4 通用服务 130 4.4.1 统计信息历史 130 4.4.2 创建和删除备份表 131 4.4.3 导出、导入、获取和设置操作 132 4.4.4 日志 132 4.5 小结 133 第5章 配置查询优化器 134 5.1 配置还是不配置 134 5.2 配置路线图 135 5.3 设置正确的参数 136 5.3.1 查询优化器参数 137 5.3.2 pga管理 150 5.4 小结 153 第6章 执行计划 154 6.1 获取执行计划 154 6.1.1 sql语句explain plan 154 6.1.2 动态性能视图 157 6.1.3 awr和statspack 161 6.1.4 跟踪功能 163 6.1.5 dbms_xplan包 165 6.2 解释执行计划 175 6.2.1 父子关系 176 6.2.2 操作类型 177 6.2.3 单独型操作 177 6.2.4 非相关联合型操作 179 6.2.5 相关联合型操作 180 6.2.6 分而治之 186 6.2.7 特殊的例子 188 6.3 识别低效的执行计划 190 6.3.1 错误的评估 190 6.3.2 未识别约束 192 6.4 小结 193 第7章 sql优化技术 194 7.1 改变访问结构 195 7.1.1 运行机制 195 7.1.2 何时使用 196 7.1.3 缺陷和谬误 196 7.2 修改sql语句.. 196 7.2.1 运行机制 196 7.2.2 何时使用 198 7.2.3 缺陷和谬误 198 7.3 提示 198 7.3.1 运行机制 198 7.3.2 何时使用 204 7.3.3 缺陷和谬误 204 7.4 改变执行环境 205 7.4.1 工作机制 206 7.4.2 何时使用 208 7.4.3 缺陷和谬误 208 7.5 sql概要 208 7.5.1 工作机制 209 7.5.2 何时使用 219 7.5.3 缺陷和谬误 219 7.6 存储提纲 220 7.6.1 工作机制 221 7.6.2 何时使用 227 7.6.3 缺陷和谬误 227 7.7 sql计划基线 229 7.7.1 工作机制 229 7.7.2 何时使用 240 7.7.3 缺陷和谬误 240 7.8 小结 241 第四部分 优化器 243 第8章 解析 244 8.1 识别解析问题 244 8.1.1 快速解析 245 8.1.2 长解析 248 8.2 解决解析问题 250 8.2.1 快速解析 251 8.2.2 长解析 256 8.3 应对解析问题 256 8.3.1 游标共享 257 8.3.2 服务器端语句缓存 258 8.4 使用应用编程接口 260 8.4.1 pl/sql 261 8.4.2 oci 264 8.4.3 jdbc 265 8.4.4 odp.net 266 8.5 小结 268 第9章 优化数据访问 269 9.1 找出不理想的访问路径 269 9.1.1 识别 269 9.1.2 陷阱 271 9.1.3 原因 273 9.1.4 解决办法 274 9.2 具有弱选择性的sql语句 277 9.2.1 全表扫描 277 9.2.2 全分区扫描 279 9.2.3 范围分区 279 9.2.4 哈希与列表分区 289 9.2.5 组合分区 289 9.2.6 设计考虑 291 9.2.7 全索引扫描 293 9.3 具有强选择性的sql语句 295 9.3.1 rowid访问 296 9.3.2 索引访问 297 9.3.3 单表哈希聚簇访问 324 9.4 小结 325 第10章 表连接优化 326 10.1 定义 326 10.1.1 连接树 326 10.1.2 连接的类型 329 10.1.3 限制条件与连接条件 332 10.2 嵌套循环连接 333 10.2.1 概念 333 10.2.2 两表连接 334 10.2.3 四表连接 335 10.2.4 块预取 336 10.2.5 其他可选的执行计划 337 10.3 合并连接 338 10.3.1 概念 338 10.3.2 两表连接 339 10.3.3 四表连接 341 10.3.4 工作区 342 10.4 哈希连接 346 10.4.1 概念 346 10.4.2 两表连接 347 10.4.3 四表连接 348 10.4.4 工作区 350 10.4.5 索引连接 350 10.5 外连接 350 10.6 选择连接方法 351 10.6.1 first_rows优化目标 352 10.6.2 all_rows优化目标 352 10.6.3 支持的连接方法 352 10.6.4 并行连接 352 10.7 分区智能连接 353 10.7.1 完全分区智能连接 353 10.7.2 部分智能分区连接 355 10.8 转换 357 10.8.1 连接去除 357 10.8.2 外连接转换为内连接 358 10.8.3 子查询非嵌套化 359 10.8.4 星形转换 360 10.9 小结 365 第11章 高级优化技术 366 11.1 物化视图 366 11.1.1 运行机制 366 11.1.2 何时使用 384 11.1.3 缺陷与谬误 385 11.2 结果缓存 385 11.2.1 运行机制 386 11.2.2 何时使用 391 11.2.3 缺陷与谬误 391 11.3 并行处理 392 11.3.1 运行机制 392 11.3.2 何时使用 408 11.3.3 缺陷与谬误 408 11.4 直接路径插入 412 11.4.1 运行机制 412 11.4.2 何时使用 414 11.4.3 缺陷与谬误 414 11.5 行预取 415 11.5.1 运行机制 415 11.5.2 何时使用 419 11.5.3 缺陷与谬误 419 11.6 数组接口 419 11.6.1 运行机制 419 11.6.2 何时使用 422 11.6.3 缺陷与谬误 422 11.7 小结 422 第12章 优化物理设计 424 12.1 最佳字段顺序 424 12.2 最优数据类型 426 12.2.1 数据类型选择方面的陷阱 426 12.2.2 选择数据类型的最佳实践 429 12.3 行迁移与行链接 430 12.3.1 迁移与链接 431 12.3.2 问题描述 433 12.3.3 找出问题 433 12.3.4 解决方案 433 12.4 数据块争用 434 12.4.1 问题描述 434 12.4.2 找出问题 435 12.4.3 解决方案 437 12.5 数据压缩 440 第五部分 附  录 443 附录A 可下载文件 444 译者序   还是在2008年7月的时候,一次在线闲聊中,我和阿里巴巴B2B的童家旺谈及写本数据库方面的技术图书的想法。我曾与他在一个DBA团队共事,深知他的技术功力。不过相对于图书创作来说,他更倾向于翻译一本质量过硬的作品。家旺慧眼识珠,在饶有兴趣地阅读了Troubleshooting Oracle Performance的部分样章之后,终于按耐不住内心的冲动,决定要把这本书翻译出来。我们很快联系到了人民邮电出版社图灵公司并达成意向。这本书原作厚达600多页,一人翻译在时间上肯定有些吃紧,加上我也很认可这本书,所以也加入到了翻译团队。考虑到各自工作也比较繁重,所以我又拉来在支付宝数据仓库团队的同事胡怡文,一起来翻译。翻译图书是件吃力不讨好的活,时间紧、任务急、酬劳低,质量不过关还会遭受读者质疑,唯愿我们此次翻译能够换来读者的好评。能够看到此书中文版面市,我们这些译者倍感荣幸。.   关于Oracle优化的书在图书市场上并不少见,但有些图书内容陈旧,或是主要提供一些脚本风格的案例展示,系统化且有深度的优化图书并不多。这本Troubleshooting Oracle Performance(TOP)是从2008年到现在国外Oracle相关书籍中最值得关注的一部大作。   本书第1、3、4、9章由冯大辉翻译。感谢张磊(BlogKid)对第1章初稿所做的辛苦工作;感谢美国Amazon架构师朱一对第4章初稿所做的辛苦工作。第2、10、11、12章由童家旺翻译。感谢阿里巴巴同事郑勇斌对第12章校稿所做的工作。第5、6、7、8章以及附录A由胡怡文翻译。全书校稿以及前言部分的翻译由童家旺、胡怡文、冯大辉共同协作完成。读者在阅读本书的过程中如果遇到问题或者有意见建议,请发送邮件到这个Google群组:troubleshooting-oracle-performance@googlegroups.com。另外请关注http://dbanotes.net/top,我们将在这里第一时间发布勘误信息。..   感谢人民邮电出版社图灵公司的编辑傅志红以及其他未曾谋面的编辑的倾力协作。感谢刘江总编给予的大力支持。   ——冯大辉   2009年8月   感谢阿里巴巴B2B DBA团队给予的支持与协助。感谢妻子苏红以及母亲在这段时间对孩子的照顾,使得我可以腾出时间专心翻译这本书。另外要特别感谢郑勇斌帮助我审查我翻译的部分章节,并提出很多翻译意见。   ——童家旺   感谢所有支付宝数据仓库同事给予的支持与帮助。感谢父母的关心,也祝他们健康。感谢冯大辉、樊亚飞一直以来对我的帮助和解惑,感谢女友张茜的照顾和亲手做的美味食物。感谢所有朋友、同学和亲人在此期间给我的鼓励和宝贵意见。   ——胡怡文   感谢在支付宝的架构师团队的同事以及支付宝各位领导的支持。感谢妻子姚湘怡的照顾。感谢广大热心网友在我的个人网站(dbanotes.net)上针对译稿初稿提出的建议与宝贵意见。感谢朱一、张磊两位朋友的大力协助。...   ——冯大辉 序言   与过去的10年相比,现在在书店买到的Oracle性能方面的图书,其内容和质量上有了极大提升。我认为这对大家充分挖掘Oracle的性能无疑是最好的事情。.   我们以前能买到的关于Oracle性能的图书都千篇一律。那些书暗示 Oracle系统必然承载过多的I/O(实际上不一定)或是内存不足(这和他们描述的I/O过多其实是一回事,但却不是事实)。那些书向你展示可能运行的数不清的SQL脚本,告诉你要优化SQL,并且扬言这样就能搞定一切。   真是不堪回首的漫漫长夜啊!   Chris的这本书是给我们带来光明的一本书。光明与黑暗的界线,在于能否体现出一个简单的概念,这个概念是你从10岁开始数学老师就让你反复练习的——展现你的思路(show your work)。   我的意思不是指上台说故事,就像有些人说他们在数百个客户的站点提升了若干倍性能,并自诩为专家那样。我是说,展现你的思路,这意味着记录一个起点度量,构建可控的实验,然后记录下一个度量,并坦诚地公布结果,让读者能够完全理解,如果他们愿意甚至可以重现你的测试。   这是个了不起的事情。当作者开始这样做的时候,Oracle读者已比从前更加明智。从2000年开始, Oracle社区的人数已经有很大增长,他们能提出具有深度的性能问题并需要有价值的答案。过去人们相信过的那些错误观念很快就被一一摒弃了。   在本书中,Chris遵循切实可行的模式,讲述了有用的信息。但是,他并不止于此。他展示给读者他是如何探索得知的,也就是说,他告诉你如何找到自己需要的东西。他在本书中展现了他的思路。   这带来了两个益处。首先,展示他的思路有助于读者加深理解他阐述的内容,这使得他的经验对你来说容易记忆并应用。其次,通过理解他的例子,你不仅能够掌握Chris阐述的内容,还能够举一反三,回答Chris没有讲到的其他好问题,比如在这本书付梓之后下一个版本的Oracle将会有什么特性这样的问题。   此书对我来说是一本技术与理念并重的参考书,不仅包含了大量完备的可重用的实例,而且包含了一些富有说服力的新观点,让我能分享Chris的观点与激情。我可以用他的观点去说服更多的人做正确的事。   Chris睿智而精力充沛,他站在诸多精英的肩膀上,吸取了Dave Ensor、Lex de Haan、Anjo Kolk、Steven Adams、Jonathan Lewis、Tom Kyte等许多人的智慧,他们为这个领域带来了严谨之风,在我眼中他们都是英雄。现在,我们可以站在Chris 的肩膀上了。   Cary Millsap   Cary Millsap是Method R公司的CEO。Method R是一家致力于提升软件性能的公司。..   Cary Millsap与Jeff Holt在2003年合著了Optimizing Oracle Performance,   这本书使得Cary与Jeff勇夺《Oracle杂志》2004年最佳作者奖。   可以通过http://method-r.com或http://carymillsap.blogspot.com联系Cary。   大约在20年前我开始使用Oracle关系数据库,摸索了大约3年时间我发现问题排查和优化真的是神秘莫测啊。   有一个开发者的查询语句跑得不是很好,因此把它发送给DBA组。我在检查了执行计划、数据样本后,告诉他可以对其中一个表添加一个索引,而使大多数开销消于无形。开发者的反应却是:“这是个小表,不需要索引。”(这种事情发生在使用Oracle RDBMS 6.0.36版本的那个时代,顺便提一下,那时候“短”表意味着不超过四个数据块长。)不管怎样,我还是创建了索引,查询快了30倍——接下来的解释环节当然必不可少了。   性能排查并不需要魔法、魔术或是神话,而是依赖于理解、观察与解释。理查德?费曼曾说过,“理论再完美也没用,也和你多聪明无关。如果理论与实验不符,就是错的。”关于 Oracle 性能有太多的“理论”是错的,早就应该从你的大脑中清除出去了,Christian Antognini 就是帮你做这个事情的人。   在本书的开始,Christian Antognini描述了事物运行机制,该观察什么类型的症状,这些症状代表了什么含义。尤其是,他还鼓励你在观察与分析的时候要有条理并依据相关的细节。只要采纳了这些建议,一旦出现性能问题,你应该能够找出真正的问题,并用最合适的方式解决它。   虽然这本书的每一页都值得仔细阅读,但我还是认为读者会以不同的方式从中受益。有些读者可能通过不时翻阅而获取某些特别的洞察力。比如我多年来一直试图理解等高直方图这样的命名原因,我读到第4章的时侯,Christian的描述让我豁然开朗。 .  有些读者依据某些特性的简短描述,就能理解Oracle实现该特性的缘由,并联系例子理解自己的应用场景。第5章中的“安全视图融合(Secure View Merging)”对我而言就是一例。   还有读者可能会反复阅读某一章节,以便透彻理解他们正在使用的一些特别重要的特性。我相信第9章关于分区的深入讨论会让很多人手不释卷,读而再读。...   这本书很有料,很值得阅读。谢谢你,Christian。   Jonathan Lewis   Jonathan Lewis著有Cost-Based Oracle: Fundamentals,   同样由Apress出版社出版。从他的Blog   http://jonathanlewis.wordpress.com   上能找到更多的实际案例。 媒体评论   本书对我来说是一本技术与理念并重的参考书,不仅包含了大量完备的可重用的实例,而且包含了一些富有说服力的新观点。我可以用他的观点去说服更多的人做正确的事。.   ——Cary Millsap,Oracle公司系统性能集团前副总裁,数据库性能技术大师   关于Oracle性能有太多的“理论”是错的,早就应该从你的大脑中清除出了,Christian Antognini就是帮你做这个事情的人。...   ——Jonathan Lewis,英国Oracle用户组织总监,Oracle数据库技术大师   
2022-02-11 10:09:42 38.87MB Oracle 性能诊断艺术 数据库 优化
1