编辑推荐
《SQL入门经典(第5版)》通过阅读《SQL入门经典(第5版)》,读者将学会如何使用SQL来创建高效的数据库、高效地提取数据,以及如何管理从数据库性能到数据库安全的各项工作。《SQL入门经典(第5版)》采用直观、循序渐进的方法,引导读者通过各种练习掌握实际操作技巧。读者将学习从基础知识到高级技术在内的所有SQL相关内容——包括视图、事务、Web数据发布,以及Oracle和MicrosoftSQLServer对SQL的扩展。《SQL入门经典(第5版)》每章内容都建立在已学的知识之上,即使读者没有任何SQL知识,也可以通过《SQL入门经典(第5版)》,走向成功的坚实道路。
循序渐进的示例引导读者完成常见的SQL任务。问与答、测验和练习帮助读者检验知识的掌握情况。“注意”、“提示”和“警告”指出捷径和解决方案。
全球销量逾百万册的系列图书;
连续十余年打造的经典品牌;
直观、循序渐进的学习教程;
秉承ReadLess.DoMore(精读多练)的教学理念;
以示例引导读者完成常见的任务;
每章内容针对初学者精心设计,1小时轻松阅读学习,24小时彻底掌握关键知识。
每章案例与练习题助你轻松完成常见任务,通过实践提高应用技能,巩固所学知识。
学习如何:
·理解SQL的定义、工作方式,以及作用:
·定义高效的数据库结构和对象:
·将原始数据库“规格化”为逻辑表:
·使用DML编辑关系型数据和表;
·管理数据库事务;
·编写有效的、高性能的查询;
·对数据进行分类、汇总、排序、分组和调整;
·使用日期和时间:
·在查询中结合表,使用子查询,组合多个查询;
·掌握强大的查询优化技巧;
·管理数据库及其用户;
·实施有效的数据库安全措施;
·使用视图、同义词和系统目录;
·SQL在企业和网络中的扩展;
·掌握Oracle和MicrosoftSQLServer对ANSISQL的重要扩展。内容简介
《SQL入门经典(第5版)》的作者都是数据库教学与应用的专家,有着丰富的经验。《SQL入门经典(第5版)》详细介绍了SQL语言的基本语法、基本概念,说明了各种SQL实现与ANSI标准之间的差别。书中包含了大量的范例,直观地说明了如何使用SQL对数据进行处理。每章后面还有针对性很强的测验与练习,能够帮助读者更好地理解和掌握学习的内容。在后的附录里还有关于安装MySQL的详细介绍、书中用到的关键SQL语句、测验和练习的答案。
《SQL入门经典(第5版)》的内容层次清晰,针对性强,非常适合初学者作为入门教材。作者简介
作者:(美国)斯蒂芬森(RyanStephens)(美国)普劳(RonPlew)(美国)琼斯(ArieD.Jones)译者:井中月郝记生目录
第一部分SQL概念综述
第1章欢迎来到SQL世界
1.1SQL定义及历史
1.1.1什么是SQL
1.1.2什么是ANSISQL
1.1.3新标准:SQL-2008
1.1.4什么是数据库
1.1.5关系型数据库
1.1.6客户端/服务器技术
1.1.7基于Web的数据库系统
1.1.8主流数据库厂商
1.2SQL会话
1.2.1CONNECT
1.2.2DISCONNECT和EXIT
1.3SQL命令的类型
1.3.1定义数据库结构
1.3.2操作数据
1.3.3选择数据
1.3.4数据控制语言
1.3.5数据管理命令
1.3.6事务控制命令
1.4《SQL入门经典(第5版)》使用的数据库
1.4.1表命名标准
1.4.2数据一瞥
1.4.3表的构成
1.4.4范例和练习
1.5小结
1.6问与答
1.7实践
1.7.1测验
1.7.2练习
第二部分建立数据库
第2章定义数据结构
2.1数据是什么
2.2基本数据类型
2.2.1定长字符串
2.2.2变长字符串
2.2.3大对象类型
2.2.4数值类型
2.2.5小数类型
2.2.6整数
2.2.7浮点数
2.2.8日期和时间类型
2.2.9直义字符串
2.2.10NULL数据类型
2.2.11布尔值
2.2.12自定义类型
2.2.13域
2.3小结
2.4问与答
2.5实践
2.5.1测验
2.5.2练习
第3章管理数据库对象
3.1什么是数据库对象
3.2什么是规划
3.3表:数据的主要存储方式
3.3.1列
3.3.2行
3.3.3CREATETABLE语句
3.3.4命名规范
3.3.5ALTERTABLE命令
3.3.6从现有表新建另一个表
3.3.7删除表
3.4完整性约束
3.4.1主键约束
3.4.2唯一性约束
3.4.3外键约束
3.4.4NOTNULL约束
3.4.5检查约束
3.4.6去除约束
3.5小结
3.6问与答
3.7实践
3.7.1测验
3.7.2练习
第4章规格化过程
4.1规格化数据库
4.1.1原始数据库
4.1.2数据库逻辑设计
4.1.3规格形式
4.1.4命名规范
4.1.5规格化的优点
4.1.6规格化的缺点
4.2去规格化数据库
4.3小结
4.4问与答
4.5实践
4.5.1测验
4.5.2练习
第5章操作数据
5.1数据操作概述
5.2用新数据填充表
5.2.1把数据插入到表
5.2.2给表里指定列插入数据
5.2.3从另一个表插入数据
5.2.4插入NULL值
5.3更新现有数据
5.3.1更新一列的数据
5.3.2更新一条或多记录里的多个字段
5.4从表里删除数据
5.5小结
5.6问与答
5.7实践
5.7.1测验
5.7.2练习
第6章管理数据库事务
6.1什么是事务
6.2控制事务
6.2.1COMMIT命令
6.2.2ROLLBACK命令
6.2.3SAVEPOINT命令
6.2.4ROLLBACKTOSAVEPOINT命令
6.2.5RELEASESAVEPOINT命令
6.2.6SETTRANSACTIN命令
6.3事务控制与数据库性能
6.4小结
6.5问与答
6.6实践
6.6.1测验
6.6.2练习
第三部分从查询中获得有效的结果
第7章数据库查询
7.1什么是查询
7.2SELECT语句
7.2.1SELECT语句
7.2.2FROM子句
7.2.3WHERE子句
7.2.4ORDERBY子句
7.2.5大小写敏感性
7.3简单查询的范例
7.3.1统计表里的记录数量
7.3.2从另一个用户表里选择数据
7.3.3使用字段别名
7.4小结
7.5问与答
7.6实践
7.6.1测验
7.6.2练习
第8章使用操作符对数据进行分类
8.1什么是SQL里的操作符
8.2比较操作符
8.2.1相等
8.2.2不等于
8.2.3小于和大于
8.2.4比较操作符的组合
8.3逻辑操作符
8.3.1ISNULL
8.3.2BETWEEN
8.3.3IN
8.3.4LIKE
8.3.5EXISTS
8.3.6ALL、SOME和ANY操作符
8.4连接操作符
8.4.1AND
8.4.2OR
8.5求反操作符
8.5.1不相等
8.5.2NOTBETWEEN
8.5.3NOTIN
8.5.4NOTLIKE
8.5.5ISNOTNULL
8.5.6NOTEXISTS
8.6算术操作符
8.6.1加法
8.6.2减法
8.6.3乘法
8.6.4除法
8.6.5算术操作符的组合
8.7小结
8.8问与答
8.9实践
8.9.1测验
8.9.2练习
第9章汇总查询得到的数据
9.1什么是汇总函数
9.1.1COUNT函数
9.1.2SUM函数
9.1.3AVG函数
9.1.4MAX函数
9.1.5MIN函数
9.2小结
9.3问与答
9.4实践
9.4.1测验
9.4.2练习
第10章数据排序与分组
10.1为什么要对数据进行分组
10.2GROUPBY子句
10.2.1分组函数
10.2.2对选中的数据进行分组
10.2.3创建分组和使用汇总函数
10.2.4以整数代表字段名称
10.3GROUPBY与ORDERBY
10.4CUBE和ROLLUP语句
10.5HAVING子句
10.6小结
10.7问与答
10.8实践
10.8.1测验
10.8.2练习
第11章调整数据的外观
11.1ANSI字符函数
11.2常用字符函数
11.2.1串接函数
11.2.2TRANSLATE函数
11.2.3REPLACE
11.2.4UPPER
11.2.5LOWER
11.2.6SUBSTR
11.2.7INSTR
11.2.8LTRIM
11.2.9RTRIM
11.2.10DECODE
11.3其他字符函数
11.3.1LENGTH
11.3.2IFNULL(检查NULL值)
11.3.3COALESCE
11.3.4LPAD
11.3.5RPAD
11.3.6ASCII
11.4算术函数
11.5转换函数
11.5.1字符串转换为数字
11.5.2数字转换为字符串
11.6字符函数的组合使用
11.7小结
11.8问与答
11.9实践
11.9.1测验
11.9.2练习
第12章日期和时间
12.1日期是如何存储的
12.1.1日期和时间的标准数据类型
12.1.2DATETIME元素
12.1.3不同实现的日期类型
12.2日期函数
12.2.1当前日期
12.2.2时区
12.2.3时间与日期相加
12.2.4其他日期函数
12.3日期转换
12.3.1日期描述
12.3.2日期转换为字符串
12.3.3字符串转换为日期
12.4小结
12.5问与答
12.6实践
12.6.1测验
12.6.2练习
第四部分建立复杂的数据库查询
第13章在查询里结合表
13.1从多个表获取数据
13.2结合的类型
13.2.1结合条件的位置
13.2.2等值结合
13.2.3使用表的别名
13.2.4不等值结合
13.2.5外部结合
13.2.6自结合
13.2.7结合多个主键
13.3需要考虑的事项
13.3.1使用基表
13.3.2笛卡尔积
13.4小结
13.5问与答
13.6实践
13.6.1测验
13.6.2练习
第14章使用子查询定义未确定数据
14.1什么是子查询
14.1.1子查询与SELECT语句
14.1.2子查询与INSERT语句
14.1.3子查询与UPDATE语句
14.1.4子查询与DELETE语句
14.2嵌套的子查询
14.3关联子查询
14.4子查询的效率
14.5小结
14.6问与答
14.7实践
14.7.1测验
14.7.2练习
第15章组合多个查询
15.1单查询与组合查询
15.2组合查询操作符
15.2.1UNION
15.2.2UNIONALL
15.2.3INTERSECT
15.2.4EXCEPT
15.3组合查询里使用ORDERBY
15.4组合查询里使用GROUPBY
15.5获取准确的数据
15.6小结
15.7问与答
15.8实践
15.8.1测验
15.8.2练习
第五部分SQL性能调整
第16章利用索引改善性能
16.1什么是索引
16.2索引是如何工作的
16.3CREATEINDEX命令
16.4索引的类型
16.4.1单字段索引
16.4.2唯一索引
16.4.3组合索引
16.4.4隐含索引
16.5何时考虑使用索引
16.6何时应该避免使用索引
16.7修改索引
16.8删除索引
16.9小结
16.10问与答
16.11实践
16.11.1测验
16.11.2练习
第17章改善数据库性能
17.1什么是SQL语句调整
17.2数据库调整与SQL语句调整
17.3格式化SQL语句
17.3.1为提高可读性格式化SQL语句
17.3.2FROM子句里的表
17.3.3结合条件的次序
17.3.4最严格条件
17.4全表扫描
17.5其他性能考虑
17.5.1使用LIKE操作符和通配符
17.5.2避免使用OR操作符
17.5.3避免使用HAVING子句
17.5.4避免大规模排序操作
17.5.5使用存储过程
17.5.6在批加载时关闭索引
17.6基于成本的优化
17.7性能工具
17.8小结
17.9问与答
17.10实践
17.10.1测验
17.10.2练习
第六部分使用SQL管理用户和安全
第18章管理数据库用户
18.1数据库的用户管理
18.1.1用户的类型
18.1.2谁管理用户
18.1.3用户在数据库里的位置
18.1.4不同规划里的用户
18.2管理过程
18.2.1创建用户
18.2.2创建规划
18.2.3删除规划
18.2.4调整用户
18.2.5用户会话
18.2.6禁止用户访问
18.3数据库用户使用的工具
18.4小结
18.5问与答
18.6实践
18.6.1测验
18.6.2练习
第19章管理数据库安全
19.1什么是数据库安全
19.2什么是权限
19.2.1系统权限
19.2.2对象权限
19.2.3谁负责授予和撤销权限
19.3控制用户访问
19.3.1GRANT命令
19.3.2REVOKE命令
19.3.3控制对单独字段的访问
19.3.4数据库账户PUBLIC
19.3.5权限组
19.4通过角色控制权限
19.4.1CREATEROLE语句
19.4.2DROPROLE语句
19.4.3SETROLE语句
19.5小结
19.6问与答
19.7实践
19.7.1测验
19.7.2练习
第七部分摘要数据结构
第20章创建和使用视图及异名
20.1什么是视图
20.1.1使用视图来简化数据访问
20.1.2使用视图作为一种安全形式
20.1.3使用视图维护摘要数据
20.2创建视图
20.2.1从一个表创建视图
20.2.2从多个表创建视图
20.2.3从视图创建视图
20.3WITHCHECKOPTION
20.4从视图创建表
20.5视图与ORDERBY子句
20.6通过视图更新数据
20.7删除视图
20.8嵌套视图对性能的影响
20.9什么是异名
20.9.1创建异名
20.9.2删除异名
20.10小结
20.11问与答
20.12实践
20.12.1测验
20.12.2练习
第21章使用系统目录
21.1什么是系统目录
21.2如何创建系统目录
21.3系统目录里包含什么内容
21.3.1用户数据
21.3.2安全信息
21.3.3数据库设计信息
21.3.4性能统计
21.4不同实现里的系统目录表格
21.5查询系统目录
21.6更新系统目录对象
21.7小结
21.8问与答
21.9实践
21.9.1测验
21.9.2练习
第八部分在实际工作中应用SQL知识
第22章高级SQL主题
22.1光标
22.1.1打开光标
22.1.2从光标获取数据
22.1.3关闭光标
22.2存储过程和函数
22.3触发器
22.3.1CREATETRIGGER语句
22.3.2DROPTRIGGER语句
22.3.3FOREACHROW语句
22.4动态SQL
22.5调用级接口
22.6使用SQL生成SQL
22.7直接SQL与嵌入SQL
22.8窗口表格函数
22.9使用XML
22.10小结
22.11问与答
22.12实践
22.12.1测验
22.12.2练习
第23章SQL扩展到企业、互联网和内部网
23.1SQL与企业
23.1.1后台程序
23.1.2前台程序
23.2访问远程数据库
23.2.1ODBC
23.2.2JDBC
23.2.3OLEDB
23.2.4厂商连接产品
23.2.5通过Web接口访问远程数据库
23.3SQL与互联网
23.3.1让数据可以被全世界的顾客使用
23.3.2向雇员和授权顾客提供数据
23.4SQL与内部网
23.5小结
23.6问与答
23.7实践
23.7.1测验
23.7.2练习
第24章标准SQL的扩展
24.1各种实现
24.1.1不同实现之间的区别
24.1.2遵循ANSISQL
24.1.3SQL的扩展
24.2扩展范例
24.2.1Transact-SQL
24.2.2PL/SQL
24.2.3MySQL
24.3交互SQL语句
24.4小结
24.5问与答
24.6实践
24.6.1测验
24.6.2练习
第九部分附录
附录A常用SQL命令
A.1SQL语句
A.2SQL子句
附录B使用数据库进行练习
B.1在Windows操作系统中安装MySQL的指令
B.2在Windows操作系统中安装Oracle的指令
B.3在Windows操作系统中安装MicrosoftSQLServer的指令
附录C测验和练习的答案
附录D《SQL入门经典(第5版)》范例的CREATETABLE语句
D.1MySQL
D.2Oracle和SQLServer
附录E书中范例所涉数据的INSERT语句
E.1MySQL和SQLServer
E.1.1EMPLOYEE_TBL
E.1.2EMPLOYEE_PAY_TBL
E.1.3CUSTOMER_TBL
E.1.4ORDERS_TBL
E.1.5PRODUCTS_TBL
E.2Oracle
E.2.1EMPLOYEE_TBL
E.2.2EMPLOYEE_PAY_TBL
E.2.3CUSTOMER_TBL
E.2.4ORDERS_TBL
E.2.5PRODUCTS_TBL
附录F额外练习
术语表