第1章MySQL入门% K( Y+ y# F0 `' w
1.1MySQL的用途
0 [7 M8 Q7 T; A/ S1.2示例数据库! J" O- Y* L/ ?
1.2.1美史联盟项目% g7 v( e! d, ^# r9 `# a' U0 R
1.2.2成绩考评项目
2 j! {! H3 x. d1 s9 X. M% h0 Z1.2.3如何运用示例数据库
: ]) g9 _; `. b, \2 K- l5 {1.3基本数据库术语* t x1 [! u( J! W$ t' E( d
1.3.1结构术语
& A) N4 z& p" u9 k @( H1 a" [3 e1.3.2查询语言术语) E. Y7 e5 {: t2 |
1.3.3MySQL的体系结构术语
2 L0 B7 ^; R# U% ?1.4MySQL教程
' }6 b* S# C, V$ F! d5 z/ @1.4.1获取示例数据库发行包
1 ]2 q m8 I! p1 A1.4.2基本配置要求
: X, w/ e; {# J1 n" b" i- y k1.4.3建立和断开MySQL服务器连接
; `1 l8 [- l; c+ {+ Y1.4.4执行SQL语句
4 a g7 V- M, Z- n1.4.5创建数据库
$ e) W' I& z5 e( k7 M ~& P1.4.6创建表
3 x# q; M" J3 F! P- k8 }; N& A1.4.7添加新行, i; Z& ~/ L; C# d: |# z2 N
1.4.8重置sampdb数据库
3 O7 W7 S4 {: {& e: T" ^1.4.9检索信息
" k( i9 d: ^' b4 f0 L1.4.10删除或更新已有行
0 b* O9 t, }9 W6 `) S1.5mysql交互技巧
# E0 ]4 p0 A( f9 E1 \9 @9 G T1.5.1简化连接过程5 P( g" Q8 g g o5 z' w
1.5.2在调用命令时减少打字输入9 S# I+ E: h7 w0 c( H7 I
1.6何去何从
4 e1 I# B$ x1 C% O" f7 A1 t
第2章使用SQL管理数据
7 z8 H" M+ Z% \2 ^% l+ o2.1服务器的SQL模式
. U. J2 d" D. O0 q& }8 ?2.2MySQL的标识符语法和命名规则
7 V9 z' w8 x; G+ o# y2 @2.3SQL语句的大小写规则
6 l9 K5 O0 h* }4 o4 C' M2.4字符集支持
: R6 @2 G" ]7 T: |6 d2.4.1指定字符集3 U+ E3 K: r! W4 x! y" C
2.4.2确定可用字符集和当前设置! s' T! ]3 w; r5 l
2.4.3Unicode支持( K3 f- m, I! F( G3 v, w
2.5数据库的选择、创建、删除和更改8 v% y' q# y. i* W7 J
2.5.1选择数据库
1 i. F7 ~" G3 u0 E+ M' b* D! g2.5.2创建数据库
r8 \7 D7 W+ Z" C$ _2.5.3删除数据库
$ u0 u) h9 k) l5 [; g2.5.4更改数据库
& B% Z$ Y3 _: h& z4 h& f! m2.6表的创建、删除、索引和更改' @" a8 j- D4 b- t) }
2.6.1存储引擎的特性) [# }/ z8 M0 T& e0 _0 B$ z
2.6.2创建表5 k# m7 l2 U7 f/ [. n; E+ v0 e: y, |" w
2.6.3删除表# Z( q$ x* ]: I
2.6.4索引表
# b- b3 l( |2 \. u2.6.5更改表结构
6 r; W1 |% R0 n; d, X9 u% E; K2.7获取数据库元数据
( w% N: j4 O3 ~) b( \1 c& @2.7.1使用SHOW语句获取元数据4 Q( U" s1 [6 L& s& M( _- ?
2.7.2借助INFORMATION_SCHEMA获取元数据1 u& _; \7 D& k% z) @& v) n* s
2.7.3从命令行获取元数据
9 h, V! U5 h* ]/ L! Z2.8使用连接实现多表检索
2 q, r! Y; {9 y n2.8.1内连接
; N4 l/ L; Q8 i0 p) i2 X. v2.8.2对被连接表里的列引用进行限定# k3 |! ]4 J# \& _+ ~
2.8.3左(外)连接和右(外)连接( e/ `& a8 V8 \! a4 ~+ M) c* f( R
2.9使用子查询实现多表检索0 _; I; o$ g" A9 I5 c1 S
2.9.1带关系比较运算符的子查询! F' q3 I+ H; l4 ~* A+ @: M" S
2.9.2IN和NOTIN子查询: }5 _) w; J) Q0 r! M
2.9.3ALL、ANY和SOME子查询
) m- y$ W6 }+ J8 |! ]& k' u2.9.4EXISTS和NOTEXISTS子查询
2 w4 a6 f' E: I. L+ u2.9.5相关子查询
' g8 F' O6 L: O; d! v" T2.9.6FROM子句里的子查询
. H( O# A2 t3 s8 Y$ A, U2.9.7将子查询改写为连接7 j, b* ]/ O' D2 ~ S8 ]
2.10使用UNION实现多表检索0 g( g; S; h' m0 P, F! F7 k3 N
2.11多表删除和更新
' m5 s3 @5 q8 B/ s; `# R2.12事务处理
5 T' I# ^+ Q& T, L2 s6 h* J! w2.12.1利用事务保证语句安全执行5 h" u1 n- E+ F
2.12.2使用事务保存点6 k0 [6 n: y, q8 n- v( H; E
2.12.3事务隔离+ a9 `) c- `( T8 R1 {
2.13外键和引用完整性; w9 R4 W* o$ N5 Y$ Z n5 E$ Q
2.14使用FULLTEXT搜索
/ r9 q1 l. C4 p4 v' n, Q2.14.1自然语言FULLTEXT搜索9 N. _% I2 C2 k- C3 c
2.14.2布尔模式的全文搜索
! S" u4 w+ E! U1 N0 y2.14.3查询扩展全文搜索3 J1 w7 y: g. W( T$ b3 K
2.14.4配置全文搜索引擎
( q- H, L" y9 C1 Q, C' h第3章数据类型
) l: m L2 x+ u! D" h3.1数据值类别
+ x: X0 s$ P; v% C' i, W3.1.1数值$ k1 l% F' d8 R$ V: H- g- f& Q$ S
3.1.2字符串值
- G5 l6 n, k- j u3.1.3时态(日期/时间)值' G. A5 R5 X; [& N/ Y$ `* `
3.1.4空间值# N' K1 u, g9 N( n0 L, U0 \
3.1.5布尔值
4 B& Q0 t3 i- k0 ^3.1.6NULL值
" B$ E* S3 a' w) |% O) _3.2MySQL数据类型
# V: r) s: D6 r0 n6 L$ P% M! R( F1 C3.2.1数据类型概述
7 a1 P% h! A. q; K: V' a- h3 V; A3.2.2表定义里的特殊列类型
/ H% w: W% F# \2 [$ r& ^3.2.3指定列的默认值- ?% d+ w% _$ d4 H- q) X9 Z
3.2.4数字数据类型
3 Z% k* k L' \! j; _3.2.5字符串数据类型 N2 S$ E* B/ n9 r
3.2.6时态(日期/时间)数据类型
& j0 N; o, J5 N1 A0 q3.3MySQL如何处理无效数据值
0 q+ E6 P/ q. B/ ^3.4处理序列
* p3 ~5 \0 C( w' ]" c: s1 G3.4.1通用的AUTO_INCREMENT属性
3 N" G! t% H8 J3 n3.4.2存储引擎特有的AUTO_INCREMENT属性
+ x9 v2 x+ r& R& c1 F- S3.4.3使用AUTO_INCREMENT列需要考虑的问题
8 H0 [5 e* Y- l( k* |3.4.4AUTO_INCREMENT列的使用提示* h+ V( e, {4 t* W* R: Z
3.4.5在无AUTO_INCREMENT的情况下生成序列
( K$ S- G3 L% r3.5表达式计算和类型转换
. H4 D) O4 \* q8 R8 n3.5.1编写表达式
: x1 _$ H) G4 p! o: w3.5.2类型转换
& F) F L) g9 T# t, j; r5 t3.6选择数据类型
6 Y$ y4 e8 e( D1 C8 z L3.6.1列要存放什么类型的值* f! I" g7 z! P0 u) j B& w, }6 H& T
3.6.2所有值是否都在某个特定的区间内
. `5 H) n! i6 M! b) F
第4章视图和存储程序) ?+ I7 O. S# O
4.1使用视图+ C2 I5 n Z! e P. ?- m+ k- H/ q: e
4.2使用存储程序
2 P* B: y/ ]6 k/ m6 J5 Q" X4.2.1复合语句和语句分隔符, v z! C @% l( Q& {4 C& |/ D
4.2.2存储函数和存储过程
! d. r; O" b# p" M" u1 @( v4.2.3触发器 N, H# Z9 b6 e1 N% o" d
4.2.4事件
1 X: R6 s0 M L% f7 R4.3视图和存储程序的安全性
0 t. R' T1 c% ~, g+ j第5章查询优化 r' N) K& ]5 t. y/ d+ b+ R* {
5.1使用索引
: y) R2 V# C/ D5.1.1索引的优点- n* ~: }9 F" X7 D+ g0 b# [: U
5.1.2索引的代价
: w; @2 x& k6 F$ s- C5.1.3挑选索引
! G- y. m4 i d( c2 q5.2MySQL查询优化程序9 P* ~- Z1 j& |6 `, ^! G# U% S
5.2.1查询优化程序的工作原理% T* M+ O3 C+ S* H
5.2.2使用EXPLAIN检查优化程序的操作: e' `; i* {1 w4 Z* v: g- ]4 v
5.3选择利于高效查询的数据类型
4 P% g1 p, O, o9 g9 ~( ]' D! ~5.4选择利于高效查询的表存储格式
# R- g* _' q6 I- t+ i7 P5.5高效加载数据
. y6 O$ H' u( V# I F/ u5.6调度、锁定和并发
. z/ Y/ u+ U- `9 ?/ r/ Q! ?! d第6章MySQL程序设计入门
) \9 R* |- g8 y- {$ Y: b6 j$ Q6.1为何要自己编写MySQL程序
$ m, [# |- E9 ^. |# ~- ^- F* n6.2MySQL提供的API
; a7 t9 \9 e( Q6.2.1C语言API
+ i3 t. M+ e/ w$ N- `4 K( I" t& d- \6.2.2Perl语言DBIAPI
. f! J& ^/ X6 N6.2.3PHP语言API' H1 s3 @2 Y& P* E: ~, H |
6.3选择API, V6 ?+ P) |% a1 R
6.3.1执行环境+ Z8 [1 j5 s) m, I
6.3.2性能
) h8 h. i' q$ r' s6.3.3开发时间
6 y- ^1 S7 E/ z$ _/ O# ~6.3.4可移植性
) T" f* P; E; Y5 c9 a h
第7章用C语言编写MySQL程序
0 P! r, Y t9 l3 z7.1编译和链接客户端程序
& s0 h- b1 i8 ~) ?2 @7.2连接服务器) `1 o G- `% T Q
7.3出错处理和命令选项处理
; K6 w0 Y9 N( q& k1 V, V6 a7.3.1出错检查& K8 p$ V- P7 `. x d7 Z
7.3.2实时获取连接参数; j. ~3 A6 T! p2 o" R
7.3.3把选项处理整合进客户端程序
3 W2 Y" ^0 O4 P! y6 q: x$ b7.4处理SQL语句
" r6 O9 a- V6 l* a7 i% H; n. V' ~7.4.1处理那些修改行的语句, u/ t; H7 X& V9 n I9 A
7.4.2处理那些返回结果集的语句
" [$ H1 P; g! t2 d. |9 }4 s X4 W7.4.3通用的语句处理器6 ~0 ^# J) v' X1 _
7.4.4另一种语句处理方法: B# p; ^) b( M, }) D# u7 Q; @$ R$ V
7.4.5mysql_store_result()与mysql_use_result()的对比
. }% \# Q, w. x0 M( G7.4.6使用结果集元数据 l5 ^1 H8 w; P+ ~7 z
7.4.7对特殊字符和二进制数据进行编码
1 z! i. z% ^( u) S( f7.5交互式语句执行程序
$ u0 C3 m3 w6 h" N7.6编写支持SSL的客户端程序
/ B3 z+ e0 u5 {% K7.7一次执行多条语句6 O$ E9 U6 }5 G2 v
7.8使用服务器端预处理语句
1 u2 u7 U8 r! M3 `! a2 X" h" r7.9使用预处理CALL支持
4 _& W1 s* q" p: Q$ K. s' b0 v: C
第8章用PerlDBI编写MySQL程序! a# B0 n+ ~- p% z; X
8.1Perl脚本的特点# Y* n! j* K0 g/ \( A
8.2PerlDBI概述9 g: h% c9 L6 m% ?
8.2.1DBI数据类型/ ?* i0 s) V6 Y! T& i2 }+ B! w
8.2.2一个简单的DBI脚本. V1 ?& R1 o9 Y9 D$ e& g0 p9 n
8.2.3出错处理
9 T# J! `# ^1 ? Y9 ]8.2.4处理那些修改行的语句- G3 U) I! P: E, n- W6 c
8.2.5处理那些返回结果集的语句
# x" |- O8 W% ^ J8 G/ x6 j8.2.6在语句串里引用特殊字符( |( w. v& l* Q6 v$ w
8.2.7占位符与预处理语句
K7 a1 Q, l& j6 z* j7 i& P8.2.8把查询结果绑定到脚本变量* H5 }4 X% o- O( |6 y8 C9 n; U
8.2.9指定连接参数
% S t+ t0 m# [7 l+ s8.2.10调试
3 ]1 _* t9 E3 j9 v% D8.2.11使用结果集元数据6 W7 A3 D! m0 z) S; S- c& N
8.2.12执行事务& p& {) c( z7 `1 s
8.3DBI脚本实践
% J: d2 |0 `$ e& I8.3.1生成美史联盟成员名录
" H) j0 O1 {( N" F: k8.3.2发送成员资格更新通知
1 m1 ]) H" a5 ]9 ^ V6 U8.3.3编辑美史联盟成员条目
& ]; O0 U E- U# b& }) h! n) t8.3.4寻找志趣相投的联盟成员" n4 ~/ Q, m" S
8.3.5把美史联盟成员名录放到网上
1 `" q' w H6 ~7 c4 g8.4使用DBI来开发Web应用程序
' X) J$ [- f1 H( S f8 Y; g8.4.1配置Apache服务器来处理CGI脚本
. K5 ^9 J6 e9 f2 H E8.4.2CGI.pm模块简介 java8.com7 c- H6 [ y, j8 K
8.4.3从Web脚本连接MySQL服务器
8 R( W, M7 W) F C+ S/ `* M6 H8 y8.4.4基于Web的数据库浏览器 A+ p' ?: ]3 x. V
8.4.5成绩考评项目:分数浏览器5 F8 R3 X" E# a7 x! ~
8.4.6美史联盟:搜索志趣相投的成员
: n) I; _7 X6 c+ s: u2 V, S4 a4 F第9章用PHP语言编写MySQL程序9 f0 g$ _$ d) w1 \/ X! Y
9.1PHP概述
) Z- _9 ]# D+ R: c7 t9.1.1一个简单的PHP脚本
& V+ m) c' k+ e# v9.1.2利用PHP库文件实现代码封装 h0 p6 N, L! d
9.1.3简单的数据检索页面! d1 E( n1 x& P4 V
9.1.4处理语句结果
4 s3 c; P9 I: d8 _" k1 Z' D/ R9.1.5测试查询结果里的NULL值0 M' ^* N& ^6 p1 `9 S1 l
9.1.6使用预处理语句
6 `% X$ r" Y. n# G! ]9.1.7利用占位符来处理数据引号问题
; E4 u# y: W# @8 A4 W9.1.8出错处理
% f' f7 E" U2 y, B' S! Z4 w9.2PHP脚本实战0 K0 U7 G4 H) n3 h2 S% ^
9.2.1一个在线录入分数的应用程序. |+ n, J- {$ u6 V
9.2.2创建交互式的在线测验
, p7 P4 f* }4 c) I( i3 U* m. r9.2.3在线编辑美史联盟成员信息
0 `" B4 V8 G4 {; W
第10章MySQL管理简介! T8 p8 t. ^* ~6 L' W/ \
10.1MySQL组件
( X3 J+ V) E+ \' [& k; Q10.2MySQL的常规管理
" G' D: p% B4 g) `……8 d* Y h- W4 X
第11章MySQL数据目录1 L: C( T+ u% ?# d
第12章MySQL的基本管理
) X4 {- Q, R6 J第13章安全性与访问控制
5 f4 x4 J7 R& G) |4 A: t第14章数据库维护、备份和复制
& q- R- S& G/ E附录A本书所需要的各类软件
+ c0 C% K# Q. r# ~7 q- Z6 c附录B数据类型参考
, J- ~/ b) h: L% J% J1 ^3 E! `* \附录C操作符与函数参考
" [3 p: T; A: O: j附录D系统变量、状态变量和用户变量参考
% w& g' @* e& U) a! c9 U- B附录ESQL语法参考
2 @2 P% L1 G. S* Z6 a) J3 W附录FMySQL程序参考