第1章MySQL入门5 g D F- u& l: `/ [0 Z6 r* @
1.1MySQL的用途
/ u, s$ ]4 ^# [( p1 ]$ d& Q1.2示例数据库
9 m. E( K+ ^ C/ p+ _' W8 j6 w1.2.1美史联盟项目
# z6 M3 O$ y3 {4 r6 z5 t1.2.2成绩考评项目# U7 O: u2 a$ h5 O1 i# f
1.2.3如何运用示例数据库$ V5 p P0 R' U4 R. s
1.3基本数据库术语
) \. m U$ N+ U k& T k" z q1.3.1结构术语
( U- }9 p& _6 Q6 w% e1.3.2查询语言术语. C; I3 m8 Y9 X
1.3.3MySQL的体系结构术语- W. [, t; n5 M$ ^; v* x7 y
1.4MySQL教程
$ a4 h1 i$ }5 s1.4.1获取示例数据库发行包( ?" `2 N4 \. n, r# E0 ?- ~
1.4.2基本配置要求7 ]1 I5 \$ Z2 j1 O/ B; x
1.4.3建立和断开MySQL服务器连接# ?1 T2 Z8 Q, H/ z3 A
1.4.4执行SQL语句
7 B. v5 `- }; \; r9 `1.4.5创建数据库, F& F: v" Y) V% G' T) u' `' ~
1.4.6创建表
* T' d- g4 l; p' Y" [2 g. Z1.4.7添加新行 d" X$ e" \0 x( h% g( ?) @) ^3 Q/ |, c
1.4.8重置sampdb数据库: b3 Q! t" x V" ~; }7 S) O
1.4.9检索信息 S- `; M& ]0 m9 W, p
1.4.10删除或更新已有行
5 b/ u/ a; m# b) e# M+ B1.5mysql交互技巧4 v- B/ I7 }! E1 H' P
1.5.1简化连接过程! [9 `; I' p* E' E9 q3 Z
1.5.2在调用命令时减少打字输入
/ O) b+ c( R4 Z% o1.6何去何从
/ }% D6 S: f& N% H/ \第2章使用SQL管理数据
) i) E" D2 P. X2.1服务器的SQL模式, a7 `3 \5 O* V6 x6 L
2.2MySQL的标识符语法和命名规则
8 i" V+ b( Z0 @2 q2.3SQL语句的大小写规则# k5 e& i! ?6 ]" ~2 @
2.4字符集支持
- Y. L9 O3 m1 J' j2.4.1指定字符集
, w# L2 z7 Y0 f( |6 {& c4 H9 I) x/ a6 f" }7 z2.4.2确定可用字符集和当前设置
1 Q* V1 t' |4 K2 {2.4.3Unicode支持4 q1 F. k5 l4 N+ S0 [# j
2.5数据库的选择、创建、删除和更改
( o T; A4 _$ U% Z: s6 m. v2.5.1选择数据库6 S. X( d, y# Q @
2.5.2创建数据库
2 J3 X7 z# e) t$ t( x& C2.5.3删除数据库
* e* C. ^5 i* h0 T b# @6 H2 r2 _2.5.4更改数据库: B4 q/ m6 |7 i& U9 L9 x0 X( {/ Q7 ?
2.6表的创建、删除、索引和更改
7 x3 }7 n8 s v2.6.1存储引擎的特性
7 _$ A2 q1 d& u) [2.6.2创建表
0 Q! G8 U$ t4 |) J2.6.3删除表3 z) V$ E& B: l& f2 b
2.6.4索引表. Q0 d( ^! u$ ?, o/ V4 e( c! o6 t* c
2.6.5更改表结构
- t0 b% ?- N4 W$ w3 v2.7获取数据库元数据
8 {: Y% z2 X( L! G0 q4 i2 e2.7.1使用SHOW语句获取元数据
7 D. s) v; n$ f2 v t' T2.7.2借助INFORMATION_SCHEMA获取元数据- }4 j) O2 N3 n- ]' G! n
2.7.3从命令行获取元数据/ p5 l& ~2 T) W& V. B! }% e. D( o
2.8使用连接实现多表检索: v" U- T+ p' Y1 V; ~; ]9 f0 i
2.8.1内连接
1 u3 e8 B( b2 p$ c2.8.2对被连接表里的列引用进行限定3 X8 M; V" H# Z' E
2.8.3左(外)连接和右(外)连接
8 Q. Q: f& z% g6 y2.9使用子查询实现多表检索
" J7 G6 ^( h1 n2.9.1带关系比较运算符的子查询% ]- Z" ~) B7 v4 k+ v
2.9.2IN和NOTIN子查询, y; s- T' L2 l' d" L8 w
2.9.3ALL、ANY和SOME子查询# B& Q) z9 _. J+ {5 V, `$ n [
2.9.4EXISTS和NOTEXISTS子查询) `& ]( O7 s' B8 a
2.9.5相关子查询
3 }- `+ {$ k8 d8 |" `, D5 Q1 B( ^2.9.6FROM子句里的子查询
' q/ J ~% ?; F6 v% s2.9.7将子查询改写为连接6 I" G8 G+ R% I$ O
2.10使用UNION实现多表检索3 d$ @; l+ p+ _9 x1 D: |- h/ D
2.11多表删除和更新8 m% b' k0 r/ c* x |1 l" I
2.12事务处理. _; j: Z3 y/ g3 ^5 L) z1 ^
2.12.1利用事务保证语句安全执行
+ ]% h5 }9 E- L2.12.2使用事务保存点 x2 [! I! _% ^! i
2.12.3事务隔离3 v1 l3 g, F i
2.13外键和引用完整性
8 W/ L9 v5 T, N2.14使用FULLTEXT搜索: O1 f7 ^# A; M1 S
2.14.1自然语言FULLTEXT搜索1 Y/ o' p8 S7 }: |6 X J! C6 j! |
2.14.2布尔模式的全文搜索
# ^0 g! L+ R& Z4 g$ F# y5 `2.14.3查询扩展全文搜索- ]0 X) [5 l& w. \
2.14.4配置全文搜索引擎
: A% S7 @) ?9 w4 V& o. g! T第3章数据类型% ]3 b8 C4 m! [% ~8 @- M* P. q
3.1数据值类别
4 i- L: ~% W) `3.1.1数值
, U0 B4 _" M+ p& P' `: a* Q8 N3.1.2字符串值
- ?9 J. |# f# y* ]8 R3.1.3时态(日期/时间)值* t: u: e' [9 m. x" a1 |& r* _
3.1.4空间值+ Z& M/ m4 N4 ?5 f
3.1.5布尔值; N J* j+ h" x
3.1.6NULL值. V" t' Y4 \$ v: c* a9 F2 t1 g
3.2MySQL数据类型( r2 K# u! j' e( C0 Y
3.2.1数据类型概述: l7 `. g; `8 }# V% F' h
3.2.2表定义里的特殊列类型- q- W4 j8 C. O. G3 L
3.2.3指定列的默认值
( P, a0 |& R% L* f3.2.4数字数据类型
8 W6 r( Q6 A% i7 }3.2.5字符串数据类型. e4 \. ?6 x, W3 {9 F
3.2.6时态(日期/时间)数据类型* ~3 {4 N" u" a
3.3MySQL如何处理无效数据值
( A$ g ^5 o/ y' N. ^- j3.4处理序列
4 Y" K5 w6 v$ K: |8 O- o3.4.1通用的AUTO_INCREMENT属性- y( M: k/ ~6 N* O) O
3.4.2存储引擎特有的AUTO_INCREMENT属性$ K( P/ W! ?$ d+ L
3.4.3使用AUTO_INCREMENT列需要考虑的问题
" [# R, H3 e! L# X$ F3.4.4AUTO_INCREMENT列的使用提示/ ?* {! z/ `. O. @) l6 Y
3.4.5在无AUTO_INCREMENT的情况下生成序列
. O' [0 X+ S& Z* {0 @3.5表达式计算和类型转换. _( Z- n! D4 y) M+ r
3.5.1编写表达式
. H# ~ t5 p5 n/ h3.5.2类型转换8 @1 s0 s0 h* {3 j O2 }
3.6选择数据类型, g9 P* T; r5 `) j5 u
3.6.1列要存放什么类型的值
$ j5 s0 }6 ^4 Q7 a A1 r5 w3.6.2所有值是否都在某个特定的区间内
* u* S( ]( t& \: q5 n: A) c, Q
第4章视图和存储程序
0 Q( {' |2 D1 f* o- V4.1使用视图- C* T9 _& o7 w2 E
4.2使用存储程序, m0 }0 A: ~" E' v" _# K) M3 B
4.2.1复合语句和语句分隔符6 |# S8 U: g5 ^+ I
4.2.2存储函数和存储过程
0 X& d' A2 \5 I, z) N4.2.3触发器; B8 u0 e) Q( g* Y
4.2.4事件/ g& Y7 B$ f$ A0 o& t
4.3视图和存储程序的安全性
% d- y& O( l( i" i/ x/ R) M0 J- w
第5章查询优化
1 h0 h7 W) j7 ]& e/ Q [8 u& k7 \5.1使用索引# B+ [- q$ l* z7 X7 l" t* @. _+ @
5.1.1索引的优点1 a6 X& c5 H- F/ x
5.1.2索引的代价; R3 M; m" W4 M. ^ Y/ S
5.1.3挑选索引
- K' l8 w9 h }: |: @5.2MySQL查询优化程序
, }1 A$ V4 R- w: M3 r6 ~5.2.1查询优化程序的工作原理
6 @( E# b \3 y1 \; w* G& ~5.2.2使用EXPLAIN检查优化程序的操作
3 l! r3 W% S8 ^' e5 t0 |5 r$ j5.3选择利于高效查询的数据类型
* p( X6 j4 V* t9 h2 ?! F7 P! F% w5.4选择利于高效查询的表存储格式 i5 R( l/ X' R4 ~0 X n- I
5.5高效加载数据! K G& ^, \, E5 k: Q r
5.6调度、锁定和并发
. {$ K! h2 v% X
第6章MySQL程序设计入门4 |6 r* z( \: g1 e# J; h
6.1为何要自己编写MySQL程序5 H6 j: ?* h) K/ w% Z; v
6.2MySQL提供的API
9 @: l9 d- s/ k8 u3 Q" n6.2.1C语言API
; g+ J8 A: }) i) a8 J! F6.2.2Perl语言DBIAPI' Q( S5 n4 P5 ~: z/ {1 i3 ~
6.2.3PHP语言API/ P$ q# ], t9 a
6.3选择API) ?5 k% x/ b/ i R: e, ]
6.3.1执行环境* H2 ]0 {4 ^5 P ?6 P- L
6.3.2性能
0 D! _- K" r5 D( @) k5 @7 ^; L Z6.3.3开发时间1 s% B9 ?8 [; {- p( J* g" o
6.3.4可移植性
5 `7 I- O1 L. I7 y3 ^" z第7章用C语言编写MySQL程序
! C: ~4 k$ i8 Z7 H6 [6 e7.1编译和链接客户端程序! ^" G0 d! e; F+ x" j2 c
7.2连接服务器( m, b( @3 O# |
7.3出错处理和命令选项处理
& c( ?' _$ w, C5 a0 E& ^# r$ E7.3.1出错检查5 u4 Y8 V. [" M9 G3 M
7.3.2实时获取连接参数' t" E& R. v0 B3 x0 g" K
7.3.3把选项处理整合进客户端程序
" Y! n8 e; f) O7.4处理SQL语句" I+ _! J' c" G2 \7 E
7.4.1处理那些修改行的语句
k! W. T# _7 v& {4 i7.4.2处理那些返回结果集的语句
3 I' O4 ?: F* {) o7.4.3通用的语句处理器) ]: n; ]3 `* ^1 @
7.4.4另一种语句处理方法; n) U+ P0 W1 a: B* @9 L/ {2 C
7.4.5mysql_store_result()与mysql_use_result()的对比
# s6 O% r2 u+ F: a7.4.6使用结果集元数据
9 \, p5 B9 G4 ?# y9 z+ K( M7.4.7对特殊字符和二进制数据进行编码/ k6 x( ? k, t
7.5交互式语句执行程序
# Q/ D) S1 `7 G" q# Y8 d8 m7.6编写支持SSL的客户端程序
* V" e3 a" v1 p; s7.7一次执行多条语句9 N- J7 E5 E ~9 r* i7 |# X
7.8使用服务器端预处理语句
$ t& }- C2 m1 S* T* L7.9使用预处理CALL支持
; c8 `4 K& i5 Z( { n! y& h第8章用PerlDBI编写MySQL程序
. x6 o6 S9 {3 g" K# B! X+ {) b8.1Perl脚本的特点
' v/ I: S s5 A" P' L8.2PerlDBI概述
; s& q* D3 ~: o- K+ \ K4 d8.2.1DBI数据类型
! M# W0 M& u- ^" Q8.2.2一个简单的DBI脚本; q" s5 j' z. T
8.2.3出错处理; E L# u& w6 @6 x1 q3 J: @9 d
8.2.4处理那些修改行的语句
% e# e! Y; O9 u1 c* X8.2.5处理那些返回结果集的语句
/ V$ a3 e; w. b3 V! v8.2.6在语句串里引用特殊字符
+ j5 c/ H1 ]4 w! X+ E& s8.2.7占位符与预处理语句( @3 ~- O5 F5 s0 a. l+ `) I
8.2.8把查询结果绑定到脚本变量8 A! m3 T! a- d$ e& Q0 `/ O
8.2.9指定连接参数/ h, ]! S; ^5 i; h" l
8.2.10调试1 N; n k- `$ F7 _
8.2.11使用结果集元数据- s0 i7 | [: a
8.2.12执行事务
$ o$ e6 c; G* T8.3DBI脚本实践# g9 O/ r- \. z- G9 e* m' h
8.3.1生成美史联盟成员名录
* K0 D6 F# E+ k+ S1 a3 Z8.3.2发送成员资格更新通知
# c( B3 g% |+ @/ T6 _8.3.3编辑美史联盟成员条目
% ]' q4 u9 D4 w. T5 K+ n8.3.4寻找志趣相投的联盟成员6 S! z& g6 j1 ~; o
8.3.5把美史联盟成员名录放到网上
* O3 B2 `+ G: R+ |$ ~7 q2 Z n8.4使用DBI来开发Web应用程序
% w& N: }/ B) \; L7 |# \+ W8.4.1配置Apache服务器来处理CGI脚本' U: _ F: ^+ y8 N8 D8 O. B, `# f
8.4.2CGI.pm模块简介 java8.com9 J: g( B1 `) b2 l2 Z
8.4.3从Web脚本连接MySQL服务器6 G5 |* L; }: f) h1 D
8.4.4基于Web的数据库浏览器
; P, \( X( G8 R6 d7 A1 x8.4.5成绩考评项目:分数浏览器
+ s$ D+ D# B. |" V% k! a. V* B- f8.4.6美史联盟:搜索志趣相投的成员
' |* o: e0 g' X+ r0 d
第9章用PHP语言编写MySQL程序
% C2 h: Z7 \7 e% H& d! z9.1PHP概述
6 |; q( M# g5 T3 S0 H* h9.1.1一个简单的PHP脚本' g2 s K$ K* a" n1 r9 {% P9 C
9.1.2利用PHP库文件实现代码封装+ |) @3 p" q7 C8 w/ U
9.1.3简单的数据检索页面) u" Z4 p' n4 K/ s$ f6 y
9.1.4处理语句结果
4 n9 c$ E$ C. S- `9.1.5测试查询结果里的NULL值- y5 P2 y2 F' |5 c
9.1.6使用预处理语句
6 h2 S! @' M, Q/ C4 `9.1.7利用占位符来处理数据引号问题1 T' ~) a; t0 V$ ]1 C+ [: r8 l
9.1.8出错处理
N3 S" W. k' k5 @9.2PHP脚本实战
5 U$ U: {# p9 l$ |9.2.1一个在线录入分数的应用程序
/ Q$ h+ T3 r/ y/ E7 n- t1 V" E9.2.2创建交互式的在线测验! ~; `5 `- t, m% M2 I) m
9.2.3在线编辑美史联盟成员信息
! b$ y7 n, u& \4 R% k) X; V* t第10章MySQL管理简介
, r: e4 o: Q: ]! z& \2 s10.1MySQL组件
- j" j; D+ Q9 {$ V10.2MySQL的常规管理4 N* J, R/ O0 B* s
……
' O5 U' |- P3 C9 Y6 n6 i. \第11章MySQL数据目录( \( I5 k8 C( m# _2 C
第12章MySQL的基本管理- z% X+ ~' y: d* y
第13章安全性与访问控制, W% R' B6 l. C5 W3 X- w. W/ U
第14章数据库维护、备份和复制 @! H6 I+ E$ ?4 y* Q& B* ]- N& m
附录A本书所需要的各类软件! I: S" F5 ~* w
附录B数据类型参考- `, H$ p U! z( }/ E
附录C操作符与函数参考 ]) N, q3 Y" J" R" G7 `
附录D系统变量、状态变量和用户变量参考
2 V; \0 K% g0 J! ?4 u& O$ O附录ESQL语法参考& J3 U4 G/ _+ V( X v7 L
附录FMySQL程序参考