出版社:人民邮电出版社
出版日期:2013-5-1
ISBN:9787115313980
作者:福达 (Ben Forta)
页数:239页
章节摘录
版权页: (3)在Orders表添加一行,它与顾客ID相关联; (4)检索Orders表中赋予的新订单ID; (5)为订购的每个物品在OrderItems表中添加一行,通过检索出来的ID把它与Orders表关联(并且通过产品Ⅲ与Products表关联)。 现在假设由于某种数据库故障(如超出磁盘空间、安全限制、表锁等),这个过程无法完成。数据库中的数据会出现什么情况? 如果故障发生在添加顾客之后,添加Orders表之前,则不会有什么问题。某些顾客没有订单是完全合法的。重新执行此过程时,所插入的顾客记录将被检索和使用。可以有效地从出故障的地方开始执行此过程。 但是,如果故障发生在插入Orders行之后,添加OrderItems行之前,怎么办?现在,数据库中有一个空订单。 更糟的是,如果系统在添加OrderItems行之时出现故障,怎么办?结果是数据库中存在不完整的订单,而你还不知道。 如何解决这种问题?这就需要使用事务处理了。事务处理是一种机制,用来管理必须成批执行的SQL操作,保证数据库不包含不完整的操作结果。利用事务处理,可以保证一组操作不会中途停止,它们要么完全执行,要么完全不执行(除非明确指示)。如果没有错误发生,整组语句提交给(写到)数据库表;如果发生错误,则进行回退(撤销),将数据库恢复到某个已知且安全的状态。 再看这个例子,这次我们说明这一过程是如何工作的: (1)检查数据库中是否存在相应的顾客,如果不存在,添加他; (2)提交顾客信息; (4)在Orders表中添加一行; (5)如果向Orders表添加行时出现故障,回退; (6)检索Orders表中赋予的新订单ID; (7)对于订购的每项物品,添加新行到OrderItems表; (8)如果向OrderItems添加行时出现故障,回退所有添加的OrderItems行和Orders行。 在使用事务处理时,有几个反复出现的关键词。下面是关于事务处理需要知道的几个术语: 事务(transaction)指一组SQL语句; 回退(rollback)指撤销指定SQL语句的过程; 提交(commit)指将未存储的SQL语句结果写入数据库表; 保留点(savepoint)指事务处理中设置的临时占位符(placeholder),可以对它发布回退(与回退整个事务处理不同)。
媒体关注与评论
“书是传道授业解惑的工具,最重要的是能讲明白知识点,而不是篇幅有多厚……学校图书馆里的这本书,封皮都被翻烂了,受欢迎程度可见一斑。”——当当网读者对本书第3版的评论“本书通过实际代码介绍最基础概念,短小精悍,是快速入手的绝佳参考。” ——亚马逊英文网站读者评论
内容概要
Ben Forta ,Adobe
公司开发者关系部总监,世界知名的技术作家,在计算机产品开发、支持、培训和营销等方面拥有20多年的丰富经验。多年来,他撰写了SQL、MySQL、正则表达式、JSP、WAP和Windows开发等方面的十多部技术图书,其中不少已被翻译为多种语言在世界各地出版发行并成为畅销经典。读者可以通过他的个人网站forta.com了解更多信息。
书籍目录
目 录
第1课 了解SQL 1
1.1 数据库基础 1
1.2 什么是SQL 6
1.3 动手实践 7
1.4 小结 8
第2课 检索数据 9
2.1 SELECT语句 9
2.2 检索单个列 10
2.3 检索多个列 12
2.4 检索所有列 13
2.5 检索不同的值 14
2.6 限制结果 15
2.7 使用注释 18
2.8 小结 20
第3课 排序检索数据 21
3.1 排序数据 21
3.2 按多个列排序 23
3.3 按列位置排序 24
3.4 指定排序方向 25
3.5 小结 28
第4课 过滤数据 29
4.1 使用WHERE子句 29
4.2 WHERE子句操作符 31
4.3 小结 36
第5课 高级数据过滤 37
5.1 组合WHERE子句 37
5.2 IN操作符 41
5.3 NOT操作符 43
5.4 小结 45
第6课 用通配符进行过滤 46
6.1 LIKE操作符 46
6.2 使用通配符的技巧 53
6.3 小结 53
第7课 创建计算字段 54
7.1 计算字段 54
7.2 拼接字段 55
7.3 执行算术计算 61
7.4 小结 63
第8课 使用数据处理函数 64
8.1 函数 64
8.2 使用函数 65
8.3 小结 73
第9课 汇总数据 74
9.1 聚集函数 74
9.2 聚集不同值 81
9.3 组合聚集函数 83
9.4 小结 83
第10课 分组数据 84
10.1 数据分组 84
10.2 创建分组 85
10.3 过滤分组 87
10.4 分组和排序 90
10.5 SELECT子句顺序 92
10.6 小结 92
第11课 使用子查询 93
11.1 子查询 93
11.2 利用子查询进行过滤 93
11.3 作为计算字段使用子查询 98
11.4 小结 100
第12课 联结表 101
12.1 联结 101
12.2 创建联结 104
12.3 小结 111
第13课 创建高级联结 112
13.1 使用表别名 112
13.2 使用不同类型的联结 113
13.3 使用带聚集函数的联结 119
13.4 使用联结和联结条件 121
13.5 小结 121
第14课 组合查询 122
14.1 组合查询 122
14.2 创建组合查询 123
14.3 小结 129
第15课 插入数据 130
15.1 数据插入 130
15.2 从一个表复制到另一个表 137
15.3 小结 138
第16课 更新和删除数据 139
16.1 更新数据 139
16.2 删除数据 141
16.3 更新和删除的指导原则 143
16.4 小结 144
第17课 创建和操纵表 145
17.1 创建表 145
17.2 更新表 150
17.3 删除表 153
17.4 重命名表 153
17.5 小结 154
第18课 使用视图 155
18.1 视图 155
18.2 创建视图 158
18.3 小结 165
第19课 使用存储过程 166
19.1 存储过程 166
19.2 为什么要使用存储过程 167
19.3 执行存储过程 169
19.4 创建存储过程 170
19.5 小结 174
第20课 管理事务处理 175
20.1 事务处理 175
20.2 控制事务处理 177
20.3 小结 182
第21课 使用游标 183
21.1 游标 183
21.2 使用游标 184
21.3 小结 189
第22课 高级SQL特性 190
22.1 约束 190
22.2 索引 197
22.3 触发器 199
22.4 数据库安全 201
22.5 小结 202
附录A 样例表脚本 203
附录B 流行的应用程序 210
附录C SQL语句的语法 223
附录D SQL数据类型 228
附录E SQL保留字 234
常用SQL语句速查 238
索引 240
编辑推荐
SQL经典畅销书,内容丰富,简洁实用 麻省理工学院、伊利诺伊大学等众多大学的参考教材
作者简介
SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能。
本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰富,文字简洁明快,针对Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各种主流数据库提供了大量简明的实例。与其他同类图书不同,它没有过多阐述数据库基础理论,而是专门针对一线软件开发人员,直接从SQL SELECT开始,讲述实际工作环境中最常用和最必需的SQL知识,实用性极强。通过本书,读者能够从没有多少SQL经验的新手,迅速编写出世界级的SQL!
本书是麻省理工学院、伊利诺伊大学等众多大学的参考教材。除了作为教程之外,独特的编排方式还使本书成为方便的快速查询手册。
作者为本书专门开设了网站,提供下载、勘误和答疑:
http://forums.forta.com/threads.cfm?forumid=A1031720-3048-80A9-EF986F59D2959184