《程序员的 !" 金典》#
第一本专门为程序员编写的数据库图书
知名 $% 图书作者杨中科的又一扛鼎力作#
#
&'()*+,- 在线购买地址:'.+/0011123'()*4+,-23560789:;9< #
当当网在线购买地址:'.+/00+=5>,3?2>*)@>*)@23560+=5>,3?2*A+BC+=5>,3?D(>EF87:G79H< #
#
第一本专门为程序员编写的数据库图书#
《程序员的 !" 金典》#
l 将子查询、表连接、数据库语法差异等用通俗易懂、诙谐
幽默的语言讲解出来#
l 配合大量真实案例,学了就能用,在短时间内成为数据库
开发高手#
《程序员的 !" 金典》#
第一本专门为程序员编写的数据库图书
l 高度提取不同数据库的共同点,仔细分析不同点,并给出
解决方案,同时学会 I !" J=KJ=、IL !"、M=*3NJ、OPF
数据库不再是梦#
l 国内第一本讲解开窗函数实际应用的图书#
#
轻举技术之Q纲R,张合用之Q目R,锻造 !" 高可用性数据库应用指南从理论到实践,凝聚 !"
主流数据库最前沿的技术要领。#
#
本书特色:主要介绍 !" 的语法规则及在实际开发中的应用,并且对 !" 在 IS !"、
I # !"# J=KJ=、M=*3NJ 和 OPF 中的差异进行了分析;详细讲解数据库对增、删、改、查等
!" 的支持并给出了相应的 !" 应用案例;透彻分析函数、子查询、表连接、不同 OPI 中
的 !" 语法差异、 !" 调优、TU"" 值处理、事务、开窗函数等高级技术;通过对实际案例
开发过程的详细分析,使读者掌握 !" 的综合应用技巧。#
内容提要#
本书主要介绍 !" 以及在实际开发中的应用,并且对 !" 在 IL !"、I !" J=KJ=、M=*3NJ
和 OPF 中的差异性进行了分析。本书分为三部分:第一部分为基础篇,主要讲解数据库对
增删改查等 !" 的支持,给出了这些 !" 的应用案例;第二部分为进阶篇,讲解了函数、
子查询、表联接、不同 OPI 中 !" 语法差异、 !" 调优、TU"" 值处理、事务、开窗函数
等高级技术;第三部分为案例篇,讲解了前两部分的知识的综合运用。此书适用于学习数据
库编程的读者,对于有一定数据库开发经验的读者也有非常大的参考价值。#
#
前言#
市面上讲解数现在据库的书都花了很多篇幅讲解数据库的备份、授权、调优、修复、监
控等内容,这些内容是数据库管理员(OPV)应该掌握的,而对于程序员来说更需要去掌握
的则是 !" 语句的使用。但是市面上专门讲解 !" 语句的书非常少,初学者学习数据库开
发过程中常常被那些写给 OPV 的书弄的晕头转向,无法真正快速的掌握 !" 技术;而且这
些书中讲解的 !" 也常常是针对特定数据库系统的专有实现,无法很容易的在其他数据库
系统中运行,读者需要阅读大量的书和查阅大量的文档才能掌握不同数据库系统的使用。
本书是专门写给程序员的,因此没有讲解备份、授权、调优、修复、监控等开发人员不
关心的内容,直接从 SQL 语句入手让读者快速的掌握数据库开发的技能。“面向开发人员,
讲解对开发人员最有用的知识”是本书的编写宗旨。
IL !"、I !" J=KJ=、M=*3NJ 和 OPF 等都是非常流行的数据库管理系统(OPI ),虽
然在大部分 !" 语法上这些 OPI 实现都是一致的,不 过 在实现细节以及高级语法方面这些
OPI 的实现差异还是非常大的。如果编写能够兼容这些 OPI 的 !" 语句是开发人员经常
需要面对的问题。本书将帮助读者从根本上解决这个问题。#
很多开发人员对于 !" 语句的掌握只限于简单的 W"W&%、UXOV%W 语句,对于稍微复杂
的逻辑经常需要编写程序代码来完成,这不仅无法发挥数据库的优势,而且开发出的系统性
能非常低,而如果能够使用数据库函数、子查询、表联接、开窗函数等高级的 !" 特性则
可以大大简化系统开发的难度,并且提高系统的性能。本书将对这些高级特性进行详细的讲
解。
《程序员的 !" 金典》#
第一本专门为程序员编写的数据库图书
本书第 1、2 章介绍数据库系统的基本知识以及基本操作;第 3 章介绍 Insert、Delete
和 Update 语句的基本应用;第 4 章对 Select 语句进行全面的介绍,对模糊匹配、分组、
限制数据条数、计算字段、组合查询等高级内容进行了重点的讲解;第 ; 章介绍常用的数据
库函数以及它们在主流 OPI 中的实现差异;第 : 章介绍索引与约束等知识点;第 Y、G 章
分别介绍表连接、子查询等高级查询技术;第 H 章对主流 OPI 的语法差异进行分析,并且
给出了解决方案;第 98 章介绍注入漏洞攻击、 !" 调优、事务、自动增长字段、TU"" 值处
理、开窗函数等高级话题;第 99 章以一个案例讲解书中知识点在实际开发中的应用。
在此,我要感谢为这本书的诞生给于我帮助的所有人。首先我要感谢 &51TJ1 开源团
队的朋友们一直以来的无私奉献;感谢 Z()@&'5, 在开发 &51TJ1 !" 过程中的卓越工作,没
有 &51TJ1 !" 也就不会有这本书的问世;还要感谢 W*AS[\ 的蔡世友,他一直以来对开源事
业的奉献是值得我学习的;最 后我要感谢电子工业出版社的田小康经理,他的高效工作使得
本书能够顺利的完成和出版。
如果您对我的书有任何意见和建议,您可以给我发送邮件:*-5,?;F9]9:72356,本书
相关的后续资料将会发布到 &51TJ1 开源团队网站('.+/001112351)J12356< ) 中 。 #
#
第 9 章 ##数据库入门#9#
929##数据库概述#9#
92929##数据库与数据库管理系统#9#
9292F##数据库能做什么#F#
92927##主流数据库管理系统介绍#F#
92F##数据库基础概念#;#
92F29##&*?*N5@#;#
92F2F##表(%*-NJ)#:#
92F27##列(&5N,6))#Y#
92F2^##数据类型(O*?*%S+J)#G#
92F2;##记录(_J35=>)#H#
92F2:##主键(X=(6*=SZJS)#H#
92F2Y##索引($)>JB)#98#
92F2G##表关联#9F#
92F2H##数据库的语言—— !"#97#
92F298##OPV 与程序员#9^#
第 F 章##数据表的创建和管理#9Y#
F29##数据类型#9Y#
F2929##整数类型#9Y#
F292F##数值类型#9H#
F2927##字符相关类型#F9#
F292^##日期时间类型#F7#
F292;##二进制类型#F^#
F2F##通过 !" 语句管理数据表#F;#
F2F29##创建数据表#F;#
F2F2F##定义非空约束#F:#
F2F27##定义默认值#FY#
F2F2^##定义主键#FY#
F2F2;##定义外键#FH#
《程序员的 !" 金典》#
第一本专门为程序员编写的数据库图书
F2F2:##修改已有数据表#78#
F2F2Y##删除数据表#79#
F2F2G##受限操作的变通解决方案#79#
第 7 章##数据的增、删、改#77#
729##数据的插入#7^#
72929##简单的$T W_% 语句#7^#
7292F##简化的$T W_% 语句#7:#
72927##非空约束对数据插入的影响#7:#
7292^##主键对数据插入的影响#7Y#
7292;##外键对数据插入的影响#7G#
72F##数据的更新#7G#
72F29##简单的数据更新#7H#
72F2F##带`aW_W 子句的 UXOV%W 语句#^8#
72F27##非空约束对数据更新的影响#^9#
72F2^##主键对数据更新的影响#^F#
72F2;##外键对数据更新的影响#^F#
727##数据的删除#^7#
72729##简单的数据删除#^7#
7272F##带`aW_W 子句的 OW"W%W 语句#^^#
第 ^ 章##数据的检索#^Y#
^29## W"W&% 基本用法#^G#
^2929##简单的数据检索#^G#
^292F##检索出需要的列#^H#
^2927##列别名#;9#
^292^##按条件过滤#;F#
^292;##数据汇总#;7#
^292:##排序#;:#
^2F##高级数据过滤#;H#
^2F29##通配符过滤#;H#
^2F2F##空值检测#:7#
^2F27##反义运算符#:^#
^2F2^##多值检测#:;#
^2F2;##范围值检测#::#
^2F2:##低效的“`aW_W#9E9”#:G#
^27##数据分组#YF#
^2729##数据分组入门#Y^#
^272F##数据分组与聚合函数#Y:#
^2727##aVb$Tc 语句#YH#
^2^##限制结果集行数#G9#
^2^29##IS !"#G9#
^2^2F##I # !"# J=KJ=#F888#GF#
^2^27##I # !"# J=KJ=#F88;#G7#
^2^2^##M=*3NJ#G^#
^2^2;##OPF#G:#
《程序员的 !" 金典》#
第一本专门为程序员编写的数据库图书
^2^2:##数据库分页#GG#
^2;##抑制数据重复#H8#
^2:##计算字段#H9#
^2:29##常量字段#HF#
^2:2F##字段间的计算#H7#
^2:27##数据处理函数#H;#
^2:2^##字符串的拼接#HY#
^2:2;##计算字段的其他用途#987#
^2Y##不从实体表中取的数据#98;#
^2G##联合结果集#98Y#
^2G29##简单的结果集联合#98G#
^2G2F##联合结果集的原则#998#
^2G27##UT$MT#V""#99F#
^2G2^##联合结果集应用举例#99^#
第 ; 章##函数#99H#
;29##数学函数#9FF#
;2929##求绝对值#9FF#
;292F##求指数#9FF#
;2927##求平方根#9F7#
;292^##求随机数#9F7#
;292;##舍入到最大整数#9F;#
;292:##舍入到最小整数#9F:#
;292Y##四舍五入#9FY#
;292G##求正弦值#9FG#
;292H##求余弦值#9FH#
;29298##求反正弦值#9FH#
;29299##求反余弦值#978#
;2929F##求正切值#978#
;29297##求反正切值#979#
;2929^##求两个变量的反正切#979#
;2929;##求余切#97F#
;2929:##求圆周率π值#97F#
;2929Y##弧度制转换为角度制#977#
;2929G##角度制转换为弧度制#97^#
;2929H##求符号#97^#
;292F8##求整除余数#97;#
;292F9##求自然对数#97:#
;292FF##求以98 为底的对数#97:#
;292F7##求幂#97Y#
;2F##字符串函数#97Y#
;2F29##计算字符串长度#97G#
;2F2F##字符串转换为小写#97G#
;2F27##字符串转换为大写#97H#
;2F2^##截去字符串左侧空格#97H#