SQL入门经典(第4版)
分類: 图书,计算机与互联网,数据库,SQL语言,
品牌: Ryan Stephens
基本信息·出版社:人民邮电出版社
·页码:327 页
·出版日期:2009年
·ISBN:7115204306/9787115204301
·条形码:9787115204301
·包装版本:4版
·装帧:平装
·开本:16
·正文语种:中文
产品信息有问题吗?请帮我们更新产品信息。
内容简介《SQL入门经典(第4版)》的作者都是数据库教学与应用的专家,有着丰富的经验。《SQL入门经典(第4版)》详细介绍了SQL语言的基本语法、基本概念,说明了各种SQL实现与ANSI标准之间的差别。书中包含了大量的范例,直观地说明了如何使用SQL对数据进行处理。每章后面还有针对性很强的测验与练习,能够帮助读者更好地理解和掌握学习的内容。在最后的附录里还有关于安装MySQL的详细介绍、书中用到的关键SQL语句、测验和练习的答案。《SQL入门经典(第4版)》的内容层次清晰,针对性强,非常适合初学者作为入门教材。
编辑推荐《SQL入门经典(第4版)》每章内容针对初学者精心设计,1小时轻松阅读学习,24小时彻底掌握关键知识。每章案例与练习题助你轻松完成常见任务,通过实践提高应用技能,巩固所学知识。
学习如何:
·使用SQL-2003。最新标准的结构化查询语言;
·设计和部署有效、安全的数据库:
·创建高级查询,提取有用信息:
·排序、分组和汇总信息。提供最佳展示;
·调整数据库。提供最优的查询性能;
·了解数据库管理和安全技术。
在《SQL入门经典(第4版)》的24章中,读者可以学习设计和创建数据库以及查询数据并提取有用信息的一些专业技术。《SQL入门经典(第4版)》章与章之间紧密相连,读者可以通过直接的、按步学习的方法。从头开始学——JANSI SQL的核心知识。
事例代码体现了《SQL入门经典(第4版)》作者的专业技术。使用MvSQL编写的作业提供了有关开放数据库的更多实践内容和技术。包括:使用视图、管理事务、数据库管理和扩展SQL。
循序渐进的示例 引导读者完成最常见的任务。
问与答、测验和练习 帮助读者检验知识的掌握情况。
“注意” 提供有趣的信息。
“提示” 提供建议或完成任务的更快捷方式。
“警告” 指出潜在的问题以及帮助读者避开灾难。
“术语表” 清晰地定义并详细地解释了书中出现的新术语。
目录
第一部分SQL概念综述
第1章欢迎来到SQL世界3
1.1SQL定义及历史3
1.1.1什么是SQL4
1.1.2什么是ANSI SQL4
1.1.3新标准:SQL-20034
1.1.4什么是数据库5
1.1.5关系型数据库5
1.1.6客户端/服务器技术6
1.1.7基于Web的数据库系统7
1.1.8主流数据库厂商7
1.2SQL会话8
1.2.1CONNECT8
1.2.2DISCONNECT和EXIT8
1.3SQL命令的类型8
1.3.1定义数据库结构9
1.3.2操作数据9
1.3.3选择数据9
1.3.4数据控制语言9
1.3.5数据管理命令10
1.3.6事务控制命令10
1.4本书使用的数据库10
1.4.1表命名标准11
1.4.2数据一瞥11
1.4.3表的构成12
1.4.4MySQL范例和练习14
1.5小结14
1.6问与答14
1.7实践15
1.7.1测验15
1.7.2练习15
第二部分建立数据库
第2章定义数据结构19
2.1数据是什么19
2.2基本数据类型19
2.2.1定长字符串20
2.2.2变长字符串20
2.2.3大对象类型21
2.2.4数值类型21
2.2.5小数类型22
2.2.6整数22
2.2.7浮点数23
2.2.8日期和时间类型23
2.2.9直义字符串23
2.2.10NULL数据类型24
2.2.11布尔值24
2.2.12自定义类型24
2.2.13域25
2.3小结25
2.4问与答26
2.5实践26
2.5.1测验26
2.5.2练习27
第3章管理数据库对象29
3.1什么是数据库对象29
3.2什么是规划29
3.3表:数据的主要存储方式31
3.3.1列31
3.3.2行32
3.3.3CREATE TABLE语句32
3.3.4命名规范33
3.3.5ALTER TABLE命令33
3.3.6从现有表新建另一个表35
3.3.7删除表36
3.4完整性约束36
3.4.1主键约束36
3.4.2惟一性约束37
3.4.3外键约束38
3.4.4NOT NULL约束38
3.4.5检查约束39
3.4.6去除约束39
3.5小结40
3.6问与答40
3.7实践40
3.7.1测验41
3.7.2练习41
第4章规格化过程42
4.1规格化数据库42
4.1.1原始数据库42
4.1.2数据库逻辑设计43
4.1.3规格形式44
4.1.4命名规范46
4.1.5规格化的优点47
4.1.6规格化的缺点47
4.2去规格化数据库48
4.3小结48
4.4问与答48
4.5实践49
4.5.1测验49
4.5.2练习49
第5章操作数据51
5.1数据操作概述51
5.2用新数据填充表51
5.2.1把数据插入到表52
5.2.2给表里指定列插入数据53
5.2.3从另一个表插入数据53
5.2.4插入NULL值55
5.3更新现有数据55
5.3.1更新一列的数据55
5.3.2更新一条或多记录里的多个字段56
5.4从表里删除数据56
5.5小结57
5.6问与答57
5.7实践58
5.7.1测验58
5.7.2练习59
第6章管理数据库事务60
6.1什么是事务60
6.2控制事务61
6.2.1COMMIT命令61
6.2.2ROLLBACK命令62
6.2.3SAVEPOINT命令63
6.2.4ROLLBACK TO SAVEPOINT命令64
6.2.5RELEASE SAVEPOINT命令65
6.2.6SET TRANSACTION命令65
6.3事务控制与数据库性能65
6.4小结66
6.5问与答66
6.6实践66
6.6.1测验66
6.6.2练习67
第三部分从查询中获得有效的结果
第7章数据库查询71
7.1什么是查询71
7.2SELECT语句71
7.2.1SELECT语句72
7.2.2FROM子句73
7.2.3WHERE子句74
7.2.4ORDER BY子句75
7.2.5大小写敏感性76
7.3简单查询的范例77
7.3.1统计表里的记录数量78
7.3.2从另一个用户表里选择数据78
7.3.3使用字段别名79
7.4小结79
7.5问与答79
7.6实践80
7.6.1测验80
7.6.2练习80
第8章使用操作符对数据进行分类82
8.1什么是SQL里的操作符82
8.2比较操作符82
8.2.1相等83
8.2.2不等于83
8.2.3小于和大于84
8.2.4比较操作符的组合84
8.3逻辑操作符85
8.3.1IS NULL85
8.3.2BETWEEN86
8.3.3IN86
8.3.4LIKE87
8.3.5EXISTS88
8.3.6ALL、SOME和ANY操作符88
8.4连接操作符89
8.4.1AND90
8.4.2OR90
8.5求反操作符92
8.5.1不相等92
8.5.2NOT BETWEEN92
8.5.3NOT IN93
8.5.4NOT LIKE93
8.5.5IS NOT NULL94
8.5.6NOT EXISTS94
8.6算术操作符94
8.6.1加法95
8.6.2减法95
8.6.3乘法95
8.6.4除法96
8.6.5算术操作符的组合96
8.7小结97
8.8问与答97
8.9实践97
8.9.1测验97
8.9.2练习98
第9章汇总查询得到的数据100
9.1什么是汇总函数100
9.1.1COUNT函数101
9.1.2SUM函数103
9.1.3AVG函数103
9.1.4MAX函数104
9.1.5MIN函数105
9.2小结105
9.3问与答106
9.4实践106
9.4.1测验106
9.4.2练习107
第10章数据排序与分组108
10.1为什么要对数据进行分组108
10.2GROUP BY子句109
10.2.1分组函数109
10.2.2对选中的数据进行分组109
10.2.3创建分组和使用汇总函数109
10.2.4以整数代表字段名称112
10.3GROUP BY与ORDER BY112
10.4HAVING子句114
10.5小结115
10.6问与答115
10.7实践115
10.7.1测验115
10.7.2练习116
第11章调整数据的外观117
11.1ANSI字符函数117
11.1.1串接117
11.1.2子串118
11.1.3TRANSLATE118
11.2常用字符函数118
11.2.1串接118
11.2.2TRANSLATE119
11.2.3REPLACE120
11.2.4UPPER120
11.2.5LOWER120
11.2.6SUBSTR121
11.2.7INSTR122
11.2.8LTRIM122
11.2.9RTRIM123
11.2.10DECODE123
11.3其他字符函数124
11.3.1LENGTH124
11.3.2IFNULL(检查NULL值)124
11.3.3COALESCE125
11.3.4LPAD125
11.3.5RPAD126
11.3.6ASCII126
11.4算术函数126
11.5转换函数127
11.5.1字符串转换为数字127
11.5.2数字转换为字符串128
11.6字符函数的组合使用128
11.7小结129
11.8问与答129
11.9实践130
11.9.1测验130
11.9.2练习130
第12章日期和时间132
12.1日期是如何存储的132
12.1.1日期和时间的标准数据类型132
12.1.2DATETIME元素133
12.1.3不同实现的日期类型133
12.2日期函数134
12.2.1当前日期134
12.2.2时区134
12.2.3时间与日期相加135
12.2.4比较日期和时间间隔136
12.2.5其他日期函数137
12.3日期转换137
12.3.1日期描述138
12.3.2日期转换为字符串140
12.3.3字符串转换为日期140
12.4小结141
12.5问与答141
12.6实践141
12.6.1测验141
12.6.2练习141
第四部分建立复杂的数据库查询
第13章在查询里结合表145
13.1从多个表获取数据145
13.2结合的类型146
13.2.1结合条件的位置146
13.2.2等值结合146
13.2.3自然结合147
13.2.4使用表的别名148
13.2.5不等值结合149
13.2.6外部结合150
13.2.7自结合151
13.2.8结合多个主键152
13.3需要考虑的事项153
13.3.1使用基表153
13.3.2笛卡尔积154
13.4小结155
13.5问与答156
13.6实践156
13.6.1测验156
13.6.2练习157
第14章使用子查询定义未确定数据158
14.1什么是子查询158
14.1.1子查询与SELECT语句159
14.1.2子查询与INSERT语句160
14.1.3子查询与UPDATE语句161
14.1.4子查询与DELETE语句162
14.2嵌套的子查询162
14.3关联子查询164
14.4小结164
14.5问与答165
14.6实践165
14.6.1测验165
14.6.2练习166
第15章组合多个查询168
15.1单查询与组合查询168
15.2组合查询操作符169
15.2.1UNION169
15.2.2UNION ALL171
15.2.3INTERSECT172
15.2.4EXCEPT172
15.3组合查询里使用ORDER BY173
15.4组合查询里使用GROUP BY174
15.5获取准确的数据175
15.6小结176
15.7问与答176
15.8实践176
15.8.1测验177
15.8.2练习178
第五部分SQL性能调整
第16章利用索引改善性能181
16.1什么是索引181
16.2索引是如何工作的182
16.3CREATE INDEX命令182
16.4索引的类型183
16.4.1单字段索引183
16.4.2惟一索引183
16.4.3组合索引184
16.4.4隐含索引184
16.5何时考虑使用索引184
16.6何时应该避免使用索引185
16.7删除索引186
16.8小结186
16.9问与答186
16.10实践187
16.10.1测验187
16.10.2练习187
第17章改善数据库性能188
17.1什么是SQL语句调整188
17.2数据库调整与SQL语句调整189
17.3格式化SQL语句189
17.3.1为提高可读性格式化SQL语句189
17.3.2FROM子句里的表191
17.3.3结合条件的次序191
17.3.4最严格条件191
17.4全表扫描192
17.5其他性能考虑193
17.5.1使用LIKE操作符和通配符193
17.5.2避免使用OR操作符194
17.5.3避免使用HAVING子句195
17.5.4避免大规模排序操作195
17.5.5使用存储过程195
17.5.6在批加载时关闭索引195
17.6性能工具196
17.7小结196
17.8问与答196
17.9实践197
17.9.1测验197
17.9.2练习197
第六部分使用SQL管理用户和安全
第18章管理数据库用户201
18.1用户就是原因202
18.1.1用户的类型202
18.1.2谁管理用户202
18.1.3用户在数据库里的位置203
18.1.4不同规划里的用户203
18.2管理过程203
18.2.1创建用户204
18.2.2创建规划205
18.2.3删除规划206
18.2.4调整用户207
18.2.5用户会话207
18.2.6禁止用户访问208
18.3数据库用户使用的工具208
18.4小结208
18.5问与答209
18.6实践209
18.6.1测验209
18.6.2练习209
第19章管理数据库安全211
19.1什么是数据库安全211
19.2什么是权限212
19.2.1系统权限212
19.2.2对象权限213
19.2.3谁负责授予和撤消权限214
19.3控制用户访问214
19.3.1GRANT命令215
19.3.2REVOKE命令216
19.3.3控制对单独字段的访问216
19.3.4数据库账户PUBLIC216
19.3.5权限组217
19.4通过角色控制权限217
19.4.1CREATE ROLE语句218
19.4.2DROP ROLE语句218
19.4.3SET ROLE语句218
19.5小结218
19.6问与答219
19.7实践219
19.7.1测验219
19.7.2练习220
第七部分摘要数据结构
第20章创建和使用视图及异名223
20.1什么是视图223
20.1.1使用视图来简化数据访问224
20.1.2使用视图作为一种安全形式224
20.1.3使用视图维护摘要数据225
20.2创建视图225
20.2.1从一个表创建视图225
20.2.2从多个表创建视图227
20.2.3从视图创建视图227
20.3WITH CHECK OPTION228
20.4通过视图更新数据229
20.4.1在视图里插入记录229
20.4.2从视图里删除记录229
20.5从视图创建表229
20.6视图与ORDER BY子句230
20.7删除视图230
20.8什么是异名231
20.8.1创建异名231
20.8.2删除异名232
20.9小结232
20.10问与答232
20.11实践233
20.11.1测验233
20.11.2练习233
第21章使用系统目录234
21.1什么是系统目录234
21.2如何创建系统目录235
21.3系统目录里包含什么内容235
21.3.1用户数据236
21.3.2安全信息236
21.3.3数据库设计信息236
21.3.4性能统计236
21.4不同实现里的系统目录表格237
21.5查询系统目录238
21.6更新系统目录对象239
21.7小结240
21.8问与答240
21.9实践241
21.9.1测验241
21.9.2练习241
第八部分在实际工作中应用SQL知识
第22章高级SQL主题245
22.1光标245
22.1.1打开光标246
22.1.2从光标获取数据246
22.1.3关闭光标247
22.2存储过程和函数247
22.3触发器249
22.3.1CREATE TRIGGER语句249
22.3.2DROP TRIGGER语句250
22.3.3FOR EACH ROW语句251
22.4动态SQL251
22.5调用级接口251
22.6使用SQL生成SQL252
22.7直接SQL与嵌入SQL252
22.8窗口表格函数253
22.9使用XML253
22.10小结253
22.11问与答254
22.12实践254
22.12.1测验254
22.12.2练习255
第23章SQL扩展到企业、互联网和内部网256
23.1SQL与企业256
23.1.1后台程序256
23.1.2前台程序257
23.2访问远程数据库258
23.2.1ODBC258
23.2.2JDBC258
23.2.3厂商连接产品259
23.2.4通过Web接口访问远程数据库259
23.3SQL与互联网260
23.3.1让数据可以被全世界的顾客使用260
23.3.2向雇员和授权顾客提供数据260
23.3.3使用SQL的前台Web工具260
23.4SQL与内部网260
23.5小结261
23.6问与答261
23.7实践261
23.7.1测验262
23.7.2练习262
第24章标准SQL的扩展263
24.1各种实现263
24.1.1不同实现之间的区别263
24.1.2遵循ANSI SQL264
24.1.3SQL的扩展265
24.2扩展范例265
24.2.1Transact-SQL266
24.2.2PL/SQL266
24.2.3MySQL267
24.3交互SQL语句267
24.4小结268
24.5问与答268
24.6实践269
24.6.1测验269
24.6.2练习269
第九部分附录
附录A常用SQL命令273
A.1SQL语句273
A.2SQL子句276
附录B使用MySQL进行练习278
B.1Windows安装指令278
B.2Linux安装指令279
附录C测验和练习的答案280
附录D本书范例的CREATE TABLE语句314
D.1EMPLOYEE_TBL314
D.2EMPLOYEE_PAY_TBL314
D.3CUSTOMER_TBL314
D.4ORDERS_TBL315
D.5PRODUCTS_TBL315
附录E书中范例的INSERT语句316
E.1EMPLOYEE_TBL316
E.2EMPLOYEE_PAY_TBL316
E.3CUSTOMER_TBL317
E.4ORDERS_TBL318
E.5PRODUCTS_TBL318
附录F额外练习320
术语表325
……[看更多目录]
序言欢迎来到关系型数据库和SQL的世界!本书是为那些自发地想通过学习结构化查询语言——SQL——来更好地掌握关系型数据库的人而编写的,主要是那些在使用SQL实现数据库管理方面没有或仅有极少经验的人。同时,有一定关系型数据库使用经验,但想学习如何在数据库里检索、解决数据库问题、建立数据库结构、操作数据库里的数据等知识的人也适合阅读本书。对于经常使用SQL处理关系型数据库事务的人来说,就不必阅读本书了。本书的目标
本书的目标人群是没有或只有极少SQL使用经验,或使用过关系型数据库但其经验仅局限于SQL的人。因此,本书是一本教材,其中提供的知识与范例都是从最基础开始的。本书并不是一本完整的SQL参考书,但其中包含了完整的SQL命令集表,可以充当工具书的作用。本版增加的内容
本版包含与前三个版本同样的内容与格式。我们彻查了整本书,寻找可以改进的地方。我们还根据新的SQL,标准(SQL 2003)增加了新的概念和命令,使本书跟上SQL的发展变化,能够更好地为当今的读者服务。增加的最重要部分是在实战练习中使用了MySQL,这种开源数据库让本书的读者都能够亲自实践练习中的内容。
阅读本书的前提条件
也许有人要问:需要什么条件才能让这本书对我有所帮助呢?从理论上来说,读者需要购买这本书,用适当的时间来学习其中的内容,研究范例,完成练习。如果能够把每章的内容都应用于实际的关系型数据库系统,那将大有好处。具体使用何种关系型数据库并不重要,因为SQt,是关系型数据库的标准语言。可以使用的关系型数据库包括Oracle、Sybase、InformiX、Microsoft SQL Server、Microsoft Access、MySQL和dBASE。
文摘插图:
第一部分SQL概念综述
第1章欢迎来到SQL世界
欢迎来到SQL的世界,体验当今世界庞大的不断发展的数据库技术。通过阅读本书,我们可以获得很多的知识,而这些是在当今关系型数据库和数据管理领域生存所必需的。由于首先必须要介绍SQL的背景知识和一些预备知识,本章的主要内容都是文本,这显得有些单调,但这些貌似无聊的内容却是体会本书后续精彩内容的基础。
本章的重点包括:
SQL历史简介
介绍数据库管理系统
一些基本术语和概念
介绍本书所使用的数据库
1.1 SQL定义及历史
任何事务都涉及数据,人们需要使用某种有组织的方法或机制来管理数据。这种机制被称为数据库管理系纺(DBMS)。数据库管理系统已经产生多年了,其中大多数源自于大型机上的平面文件系统。随着技术的发展,在不断增长的商业需要、不断增加的共用数据和互联网的推动下,数据库管理系统的使用已经偏离了其原始方向。
信息管理的现代浪潮主要是由关系型数据库系统(RDBMS)实现的,后者是从传统DBMS派生出来的。
现代数据库与客户端/服务器或Web技术相结合在当今是很常见的模式,公司使用这些方式来管理数据,从而在相应的市场保持竞争力。很多公司的趋势是从客户端/服务器模式转移到Web模式,从而避免用户在访问重要数据时受到地点的限制。下面几个小节将讨论SQL和关系型数据库,后者是当今最通用的DBMS实现。很好地理解关系型数据库,以及如何在当今信息技术世界利用SQL来管理数据,对于理解SQL语言是十分重要的。