本书基于2.6.22内核,对USB子系统的大部分源代码逐行进行分析,系统地阐释了Linux内核中USB子系统是如何运转的,子系统内部的各个模块之间是如何互相协作、配合的。本次改版修改了第1版中出现的错误,增加了一个附录,主要内容是关于Linux内核的学习方法,是作者的经验总结,值得一读。 本书使用幽默诙谐的笔调对Linux内核中的USB子系统源代码进行了分析,形象且详尽地介绍了USB在Linux中的实现。本书从U盘、Hub、USB Core到主机控制器覆盖了USB实现的方方面面,被一些网友誉为USB开发的“圣经”。 对于Linux初学者,可以通过本书掌握学习内核、浏览内核代码的方法;对于Linux驱动开发者,可以通过本书对设备模型有形象深刻的理解;对于USB开发者,可以通过本书全面理解USB在一个操作系统中的实现;对于Linux内核开发者,也可以通过本书学习到很多Linux高手开发和维护一个完整子系统时的编程思想。
2022-10-26 08:13:32 46.68MB Linux USB
1
JESD79-4C:DDR4 SDRAM Standard(DDR4标准)-最新完整版-带详细标签(265页) 全网带最详细书签版。。。完整英文电子版 JEDEC JESD79-4C ,带最详细书签。本文档定义了 DDR4 标准,包括特性、功能、交流和直流特性、封装和球/信号分配。 本规范的目的是为具有一个或两个通道的符合 JEDEC 标准的每通道 16 位 SDRAM 设备定义一组最低要求。 LPDDR4 双通道器件密度范围为 4 Gb 至 32 Gb,单通道密度范围为 2 Gb 至 16 Gb。 本文档使用以下标准创建:DDR2 (JESD79-2)、DDR3 (JESD79-3)、DDR4 (JESD79-4)、LPDDR (JESD209)、LPDDR2(JESD209-2) 和 LPDDR3 (JESD209-3) .
2022-10-18 14:09:20 8.05MB DDR4 SDRAM 嵌入式 JESD79
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
本书是《编程卓越之道》系列书的第二卷,将探讨怎样用高级语言(而非汇编语言)编程得到高效率机器代码。在书中,您可以学到如何分析编译器的输出,以便检验代码的所作所为,从而得到高质量的机器码;了解编译器为常见控制结构生成的典型机器指令,以便在编写高级语言程序时选用恰当的语句;掌握编译器将各种常量和变量类型转换成机器数据的方法,以便于使用这些数据写出又快又短的程序。 书中的理论超出了特定的编程语言和CPU架构,以各种处理器平台进行开发的高级语言程序员都能从中汲取到卓越编程的营养。 编程卓越之道 第二卷 目录 第1章 以底层语言思考,用高级语言编程 第2章 要不要学汇编语言 第3章 高级语言程序员应具备的80x86汇编知识 第4章 高级语言程序员应具备的PowerPC汇编知识 第5章 编译器的操作与代码生成 第6章 分析编译器输出的工具 第7章 常量与高级语言 第8章 变量 第9章 数组 第10章 字符串 第11章 指针 第12章 记录、联合和类 第13章 算术与逻辑表达式 第14章 控制结构与程序判定 第15章 迭代控制结构 第16章 函数与过程 软件工程学 附录 80x86和PowerPC处理器家族的概要对比 网上附录 索引
2022-10-12 17:12:54 12.35MB 编程卓越之道 编程 开发
1
这是一本C语言的权威参考手册,对C语言的基本概念和运行函数库提供了完整的描述,并强调了以正确性、可移性和可维护性为基本出发点的良好编程风格。本书是C语言的详尽参考手册,分为两部分:第一部分讨论了C语言的所有语言特征,包括词法、预处理机制、声明、类型、表达式、语句以及函数等基本语言特征;第二部分讨论了C语言的标准库,针对它们不同的功能分别进行详细介绍。为了帮助读者解相关概念,本书在讨论C语言及标准库的细节时,提供了许多实例和解释。第一部分的各章还提供了练习题和主要练习的解答,这些练习可帮助读者加深理解C语言的基本功能和特性。 本书可以作为高等院校计算机专业C语言课程的教材和参考书,也可供程序开发人员参考。 第一部分 C语言 1 第1章 概述 2 1.1 C语言的演变 2 1.1.1 传统C 2 1.1.2 标准C(1989) 2 1.1.3 标准C(1995) 3 1.1.4 标准C(1999) 3 1.1.5 标准C++ 4 1.1.6 本书内容 4 1.2 应该使用哪种C语言 4 1.3 C编程概述 5 1.4 一致性 6 1.5 语法约定 7 第2章 词法元素 8 2.1 字符集 8 2.1.1 执行字符集 9 2.1.2 空白字符和行终止符 9 2.1.3 字符编码 10 2.1.4 三字符组 10 2.1.5 多字节字符和宽字符 11 2.2 注释 13 2.3 标记 14 2.4 操作符和分隔符 15 2.5 标识符 15 2.6 关键字 17 2.7 常量 18 2.7.1 整数常量 18 2.7.2 浮点数常量 22 2.7.3 字符常量 23 2.7.4 字符串常量 25 2.7.5 转义字符 27 2.7.6 字符转义码 28 2.7.7 数值转义码 29 2.8 C++兼容性 29 2.8.1 字符集 30 2.8.2 注释 30 2.8.3 操作符 30 2.8.4 标识符和关键字 30 2.8.5 字符常量 30 2.9 关于字符集、指令集和编码 30 2.10 练习 32 第3章 C预处理器 34 3.1 预处理器命令 34 3.2 预处理器词法约定 35 3.3 定义和替换 36 3.3.1 类似对象的宏定义 36 3.3.2 定义带参数的宏 37 3.3.3 宏表达式的重新扫描 39 3.3.4 预定义的宏 40 3.3.5 取消宏定义和重新定义宏 42 3.3.6 宏展开的优先级错误 42 3.3.7 宏参数的副作用 43 3.3.8 把标记转换为字符串 43 3.3.9 宏展开中的标记合并 44 3.3.10 宏的可变参数列表 45 3.3.11 其他问题 46 3.4 文件包含 46 3.5 条件编译 48 3.5.1 #if、#else和#endif命令 48 3.5.2 #elif命令 49 3.5.3 #ifdef和#ifndef命令 50 3.5.4 条件命令中的常量表达式 51 3.5.5 defined操作符 52 3.6 显式的行号 52 3.7 pragma指令 53 3.7.1 标准pragma命令 53 3.7.2 标准pragma指令的位置 54 3.7.3 _Pragma操作符 54 3.8 错误指令 54 3.9 C++兼容性 55 3.10 练习 55 第4章 声明 57 4.1 声明的组织形式 57 4.2 术语 58 4.2.1 作用域 58 4.2.2 可见性 59 4.2.3 前向引用 59 4.2.4 名称的重载 60 4.2.5 重复声明 61 4.2.6 重复可见性 62 4.2.7 范围 62 4.2.8 初始值 63 4.2.9 外部名称 64 4.2.10 编译时名称 65 4.3 存储类别和函数指定符 65 4.3.1 默认存储类别指定符 66 4.3.2 存储类别指定符的例子 66 4.3.3 函数指定符 67 4.4 类型指定符和限定符 67 4.4.1 默认类型指定符 68 4.4.2 缺失的声明器 69 4.4.3 类型限定符 70 4.4.4 const 70 4.4.5 volatile和序列点 72 4.4.6 restrict 74 4.5 声明器 75 4.5.1 简单声明器 75 4.5.2 指针声明器 76 4.5.3 数组声明器 77 4.5.4 函数声明器 78 4.5.5 声明器的组合 80 4.6 初始化值 81 4.6.1 整数 82 4.6.2 浮点数 83 4.6.3 指针 83 4.6.4 数组 84 4.6.5 枚举 86 4.6.6 结构 86 4.6.7 联合 87 4.6.8 省略花括号 88 4.6.9 指定成员的初始化值 88 4.7 隐式声明 89 4.8 外部名称 90 4.8.1 初始化值模型 90 4.8.2 省略的存储类别模型 90 4.8.3 公共模型 90 4.8.4 混合公共模型 91 4.8.5 总结和建议 91 4.8.6 未引用的外部声明 92 4.9 C++兼容性 92 4.9.1 作用域 92 4.9.2 标签和typedef名称 92 4.9.3 用于类型的存储类别指定符 93 4.9.4 const类型限定符 93 4.9.5 初始化值 93 4.9.6 隐式声明 93 4.9.7 定义和引用声明 94 4.9.8 函数链接 94 4.9.9 无参函数 94 4.10 练习 94 第5章 类型 97 5.1 整数类型 98 5.1.1 有符号整数类型 98 5.1.2 无符号整数类型 101 5.1.3 字符类型 102 5.1.4 扩展整数类型 104 5.1.5 布尔类型 104 5.2 浮点类型 104 5.3 指针类型 108 5.3.1 通用指针 109 5.3.2 null指针和非法指针 109 5.3.3 使用指针的一些警告 110 5.4 数组类型 111 5.4.1 数组和指针 111 5.4.2 多维数组 112 5.4.3 数组边界 112 5.4.4 操作 113 5.4.5 可变长度的数组 113 5.5 枚举类型 115 5.6 结构类型 117 5.6.1 结构类型引用 119 5.6.2 结构上的操作 120 5.6.3 成员 120 5.6.4 结构成员的布局 122 5.6.5 位段 122 5.6.6 移植性问题 124 5.6.7 结构的大小 125 5.6.8 灵活数组成员 126 5.7 联合类型 127 5.7.1 联合成员的布局 127 5.7.2 联合的大小 128 5.7.3 使用联合类型 129 5.7.4 (其他)使用联合类型 130 5.8 函数类型 131 5.9 void类型 133 5.10 typedef名称 133 5.10.1 用于函数类型的typedef名称 135 5.10.2 重定义typedef名称 135 5.10.3 编译器的说明 136 5.11 类型兼容性 136 5.11.1 等价的类型 136 5.11.2 枚举兼容性 137 5.11.3 数组兼容性 138 5.11.4 函数兼容性 138 5.11.5 结构和联合兼容性 139 5.11.6 指针兼容性 139 5.11.7 源文件之间的兼容性 139 5.12 类型名称和抽象声明器 139 5.13 C++兼容性 141 5.13.1 枚举类型 141 5.13.2 typedef名称 141 5.13.3 类型兼容性 141 5.14 练习 141 第6章 转换和表示形式 144 6.1 表示形式 144 6.1.1 存储单位和数据长度 144 6.1.2 字节顺序 145 6.1.3 对齐限制 146 6.1.4 指针的长度 147 6.1.5 地址模型的效果 147 6.1.6 类型表示形式 149 6.2 转换 150 6.2.1 表示形式的变化 150 6.2.2 细微的转换 150 6.2.3 转换为整数类型 150 6.2.4 转换为浮点类型 152 6.2.5 转换为结构和联合类型 152 6.2.6 转换为枚举类型 152 6.2.7 转换为指针类型 152 6.2.8 转换为数组和函数类型 153 6.2.9 转换为void类型 153 6.3 寻常转换 154 6.3.1 类型转换 154 6.3.2 赋值转换 154 6.3.3 寻常单目转换 155 6.3.4 寻常双目转换 157 6.3.5 默认的函数实参转换 158 6.3.6 其他函数转换 159 6.4 C++兼容性 159 6.5 练习 159 第7章 表达式 161 7.1 对象、左值和指示符 161 7.2 表达式和优先级 162 7.2.1 操作符的优先级和结合性 162 7.2.2 溢出和其他算术异常 163 7.3 基本表达式 164 7.3.1 名称 164 7.3.2 字面值 165 7.3.3 带括号的表达式 165 7.4 后缀表达式 166 7.4.1 下标表达式 166 7.4.2 成员选择 168 7.4.3 函数调用 169 7.4.4 后缀增值和减值操作符 171 7.4.5 复合字面值 172 7.5 单目表达式 173 7.5.1 类型转换 174 7.5.2 sizeof操作符 174 7.5.3 单目负号和正号 176 7.5.4 逻辑反 176 7.5.5 位反 177 7.5.6 取地址操作符 177 7.5.7 间接访问 178 7.5.8 前缀增值和减值操作符 179 7.6 双目操作符表达式 180 7.6.1 乘除操作符 180 7.6.2 加减操作符 182 7.6.3 移位操作符 183 7.6.4 关系操作符 185 7.6.5 相等操作符 186 7.6.6 位操作符 188 7.6.7 整数集合的例子 189 7.7 逻辑操作符表达式 192 7.8 条件表达式 194 7.9 赋值表达式 195 7.9.1 简单赋值 196 7.9.2 复合赋值 197 7.10 线性表达式 197 7.11 常量表达式 198 7.11.1 预处理器常量表达式 199 7.11.2 整型常量表达式 200 7.11.3 初始化值常量表达式 200 7.12 求值的顺序 201 7.13 被丢弃的值 202 7.14 内存访问的优化 203 7.15 C++兼容性 204 7.16 练习 204 第8章 语句 206 8.1 语句的基本语法规则 206 8.2 表达式语句 207 8.3 标签语句 207 8.4 复合语句 208 8.5 条件语句 210 8.5.1 多路条件语句 210 8.5.2 悬疑的else问题 211 8.6 迭代式语句 212 8.6.1 while语句 212 8.6.2 do语句 213 8.6.3 for语句 214 8.6.4 使用for语句 215 8.6.5 多个控制变量 217 8.7 switch语句 218 8.8 break和continue语句 220 8.9 return语句 222 8.10 goto语句 223 8.11 空语句 224 8.12 C++兼容性 224 8.12.1 复合语句 224 8.12.2 循环中的声明 224 8.13 练习 225 第9章 函数 226 9.1 函数定义 226 9.2 函数原型 228 9.2.1 原型出现在什么时候 230 9.2.2 混合使用原型和非原型声明 230 9.2.3 合理地使用原型 231 9.2.4 原型和调用约定 231 9.2.5 标准C和传统C的兼容性 233 9.3 形式参数声明 233 9.4 形参类型的调整 235 9.5 参数传递约定 236 9.6 形参的一致 237 9.7 函数的返回类型 238 9.8 返回类型的一致 239 9.9 main函数 239 9.10 内联函数 240 9.11 C++兼容性 242 9.11.1 原型 242 9.11.2 形参和返回类型中的类型声明 242 9.11.3 返回类型的一致 242 9.11.4 main 242 9.11.5 内联 243 9.12 练习 243 第二部分 C函数库 245 第10章 函数库简介 246 10.1 标准C工具 246 10.2 C++兼容性 247 10.3 库头文件和名称 249 10.3.1 assert.h 249 10.3.2 complex.h 249 10.3.3 ctype.h 249 10.3.4 errno.h 249 10.3.5 fenv.h 249 10.3.6 float.h 250 10.3.7 inttypes.h 250 10.3.8 iso64.h 250 10.3.9 limits.h 250 10.3.10 locale.h 250 10.3.11 math.h 251 10.3.12 setjmp.h 252 10.3.13 signal.h 252 10.3.14 stdarg.h 252 10.3.15 stdbool.h 252 10.3.16 stddef.h 252 10.3.17 stdint.h 252 10.3.18 stdio.h 252 10.3.19 stdlib.h 253 10.3.20 string.h 253 10.3.21 tgmath.h 253 10.3.22 time.h 254 10.3.23 wchar.h 254 10.3.24 wctype.h 254 第11章 标准语言附加 255 11.1 NULL、ptrdiff_t、size_t、offsetof 255 11.2 EDOM、ERANGE、EILSEQ、errno、strerror、perror 256 11.3 bool、false、true 257 11.4 va_list、va_start、va_arg、va_end 258 11.5 标准C的操作符宏 261 第12章 字符处理 262 12.1 isalnum、isalpha、iscntrl、iswalnum、iswalpha、iswcntrl 262 12.2 iscsym、iscsymf 264 12.3 isdigit、isodigit、isxdigit、iswdigit、iswxdigit 264 12.4 isgraph、isprint、ispunct、iswgraph、iswprint、iswpunct 265 12.5 islower、isupper、iswlower、iswupper 266 12.6 isblank、isspace、iswhite、iswspace 266 12.7 toascii 267 12.8 toint 267 12.9 tolower、toupper、towlower、towupper 267 12.10 wctype_t、wctype、iswctype 268 12.11 wctrans_t、wctrans 269 第13章 字符串处理 270 13.1 strcat、strncat、wcscat、wcsncat 270 13.2 strcmp、strncmp、wcscmp、wcsncmp 271 13.3 strcpy、strncpy、wcscpy、cscncpy 272 13.4 strlen、wcslen 273 13.5 strchr、strrchr、wcschr、wcsrchr 273 13.6 strspn、strcspn、strpbrk、strrpbrk、wcsspn、wcscspn、wcspbrk 274 13.7 strstr、strtok、wcsstr、wcstok 275 13.8 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull 276 13.9 atof、atoi、atol、atoll 277 13.10 strcoll、strxfrm、wcscoll、wcsxfrm 277 第14章 内存函数 279 14.1 memchr、wmemchr 279 14.2 memcmp、wmemcmp 279 14.3 memcpy、memccpy、memmove、wmemcpy、wmemmove 280 14.4 memset、wmemset 281 第15章 输入/输出工具 282 15.1 FILE、EOF、wchar_t、WEOF 283 15.2 fopen、fclose、fflush、freopen、fwide 284 15.2.1 文件模式 285 15.2.2 文件的定向 286 15.3 setbuf、setvbuf 287 15.4 stdin、stdout、stderr 287 15.5 fseek、ftell、rewind、fgetpos、fsetpos 288 15.5.1 fseek和ftell 287 15.5.2 fgetpos和fsetpos 290 15.6 fgetc、fgetwc、getc、getwc、getchar、getwchar、ungetc、ungetwc 290 15.7 fgets、fgetws、gets 291 15.8 fscanf、fwscanf、scanf、wscanf、sscanf、swscanf 292 15.8.1 控制字符串 293 15.8.2 转换规范 293 15.9 fputc、fputwc、putc、putwc、putchar、putwchar 298 15.10 fputs、fputws、puts 299 15.11 fprintf、printf、sprintf、snprintf、fwprintf、wprintf、swprintf 299 15.11.1 输出格式 300 15.11.2 转换规范 301 15.11.3 转换标志 301 15.11.4 最小字段宽度 302 15.11.5 精度 303 15.11.6 长度规范 303 15.11.7 转换操作 304 15.12 v[x]printf、v[x]scanf 311 15.13 fread、fwrite 312 15.14 feof、ferror、clearerr 313 15.15 remove、rename 314 15.16 tmpfile、tmpnam、mktemp 314 第16章 基本工具 316 16.1 malloc、calloc、mlalloc、clalloc、free、cfree 316 16.2 rand、srand、RAND_MAX 318 16.3 atof、atoi、atol、atoll 319 16.4 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull 319 16.5 abort、atexit、exit、_Exit、EXIT_FAILURE、EXIT_SUCCESS 321 16.6 getenv 322 16.7 system 323 16.8 bsearch、qsort 323 16.9 abs、labs、llabs、div、ldiv、lldiv 325 16.10 mblen、mbtowc、wctomb 326 16.10.1 编码和转换状态 327 16.10.2 长度函数 327 16.10.3 转换为宽字符 327 16.10.4 宽字符转换为多字节字符 328 16.11 mbstowcs、wcstombs 328 16.11.1 转换为宽字符串 328 16.11.2 从宽字符串转换为多字节字符 329 第17章 数学函数 331 17.1 abs、lbas、llabs、div、ldiv、lldiv 331 17.2 fabs 332 17.3 ceil、floor、lrint、llrint、lround、llround、nearbyint、round、rint、trunc 332 17.4 fmod、remainder、remquo 333 17.5 frexp、ldexp、modf、scalbn 334 17.6 exp、exp2、expm1、ilogb、log、log10、log1p、log2、logb 334 17.7 cbrt、fma、hypot、pow、sqrt 335 17.8 rand、srand、RAND_MAX 336 17.9 cos、sin、tan、cosh、sinh、tanh 336 17.10 acos、asin、atan、atan2、acosh、asinh、atanh 337 17.11 fdim、fmax、fmin 338 17.12 类型通用的宏 338 17.13 erf、erfc、lgamma、tgamma 341 17.14 fpclassify、isfinite、isinf、isnan、isnormal、signbit 342 17.15 copysign、nan、nextafter、nexttoward 343 17.16 isgreater、isgreaterequal、isless、islessequal、islessgreater、isunordered 343 第18章 时间和日期函数 345 18.1 clock、clock_t、CLOCKS_PER_SEC、times 345 18.2 time、time_t 346 18.3 asctime、ctime 346 18.4 gmtime、localtime、mktime 347 18.5 difftime 348 18.6 strtime、wcsftime 349 第19章 控制函数 352 19.1 assert、NDEBUG 352 19.2 system、exec 352 19.3 exit、abort 353 19.4 setjmp、longjmp、jmp_buf 353 19.5 atexit 354 19.6 signal、raise、gsignal、ssignal、psignal 354 19.7 sleep、alarm 356 第20章 区域 357 20.1 setlocale 357 20.2 localeconv 358 第21章 扩展整数类型 361 21.1 基本规则 361 21.1.1 类型的种类 361 21.1.2 要么都定义,要么都不定义 361 21.1.3 MIN和MAX限制 361 21.1.4 PRI...和SCN...格式字符串宏 362 21.2 固定长度的整数类型 363 21.3 具有最小宽度的最小长度类型 364 21.4 具有最小宽度的快速类型 364 21.5 指针长度和最大长度整数类型 365 21.6 ptrdiff_t、size_t、wchar_t、wint_t和sig_atomic_t的范围 366 21.7 imaxabs、imaxdiv、imaxdiv_t 366 21.8 strtoimax、strtouimax 367 21.9 wcstoimax、wcstoumax 367 第22章 浮点环境 368 22.1 介绍 368 22.2 浮点环境 369 22.3 浮点异常 369 22.4 浮点四舍五入模式 370 22.5 浮点表达式收缩 371 第23章 复数运算 372 23.1 复数函数库约定 372 23.2 complex、_Complex_I、imaginary、_Imaginary_I、I 372 23.3 CX_LIMITED_RANGE 372 23.4 cacos、casin、catan、ccos、csin、ctan 373 23.5 cacosh、casinh、catanh、ccosh、csinh、ctanh 374 23.6 cexp、clog、cabs、cpow、csqrt 374 23.7 carg、cimag、creal、conj、cproj 375 第24章 宽字符和多字节字符工具 377 24.1 基本类型和宏 377 24.2 宽字符和多字节字符之间的转换 377 24.3 宽字符串和多字节字符串之间的转换 379 24.4 转换为算术类型 380 24.5 输入和输出函数 380 24.6 字符串函数 381 24.7 日期和时间转换 382 24.8 宽字符分类和映射函数 382 附录A ASCII字符集 383 附录B 语法 384 附录C 练习答案 396
2022-09-12 08:38:07 39.44MB C语言 参考手册
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
【大家如果觉得书籍不错,请购买纸质书籍支持作者】《Zabbix企业级分布式监控系统》从运维(OPS)角度对Zabbix的各项功能进行了详细介绍,以自动化运维视角为出发点,对Zabbix的安装配置、自动化功能、监控告警、性能调优、Zabbix API、Zabbix协议、RPM安装包定制,结合saltstack实现自动化配置管理等内容进行了全方位的深入剖析。《Zabbix企业级分布式监控系统》分为初级内容、中级内容、高级内容和附录部分,分别由浅入深地讲解Zabbix监控系统这个开源软件。从最简单的安装配置,到复杂的高级使用,详细讲解了数据库分表、高可用、性能调优、架构设计,以及大量的监控案例,对即将构建Zabbix监控系统,或者已经在使用Zabbix的用户具有非常高的参考价值。《Zabbix企业级分布式监控系统》适合想了解、学习和规划构建监控系统的人员阅读,可以作为学习Zabbix的工具书,也适合有一定基础,想更深入学习Zabbix的读者,通过大量的案例,让读者真正理解Zabbix。
2022-08-20 20:47:25 65.86MB Zabbix 监控
1