第1章MySQL入门* q. I, O. C; Q& ], Y
1.1MySQL的用途
' R! U# P" V0 a% j- e1.2示例数据库" T5 i" r2 J5 J/ _
1.2.1美史联盟项目
; i% V% g5 V+ l- { m8 Q1.2.2成绩考评项目/ y; f) t; k$ O6 f" }8 ^
1.2.3如何运用示例数据库
/ I6 L' s9 A5 L5 ]2 Z2 Q1.3基本数据库术语
5 n/ `/ N7 f& k! U1.3.1结构术语9 ~+ g5 e# V' M- n7 e
1.3.2查询语言术语
' ~2 m9 H- b6 a* ^1.3.3MySQL的体系结构术语
) N( X( L& p0 |. H0 _% K7 Y+ F1.4MySQL教程
) P+ H0 P8 ?- g* |2 v4 {! k# d0 |1.4.1获取示例数据库发行包
4 a0 W1 l# h6 l/ i- E+ o1.4.2基本配置要求
9 D- ?3 k' m" w/ U( s! W' M1.4.3建立和断开MySQL服务器连接) N# d! I- b0 r p
1.4.4执行SQL语句
$ |* B- r# b I# L1.4.5创建数据库
" Z! Z- R% A" A1 P% Z; c& {1.4.6创建表9 ]/ q! S, [* w- s1 D2 q0 w
1.4.7添加新行# @6 H- I1 O: i) W* D
1.4.8重置sampdb数据库# K. @0 ?/ S5 s6 h2 x0 D: T
1.4.9检索信息
8 g! m) V4 c, H+ @9 ?6 o `. h1.4.10删除或更新已有行
4 @1 t* S$ G: c% r; I* a9 S% c8 ?1.5mysql交互技巧
: a, a6 R& u$ O; h3 ~) t1.5.1简化连接过程; S: t' @) |) c6 Z
1.5.2在调用命令时减少打字输入$ R: S" p4 ^! F) p- i
1.6何去何从
; U+ x# R* }( ^2 { }" G
第2章使用SQL管理数据
! c& H5 w$ x+ q. H3 ~( i( E3 {2.1服务器的SQL模式. ]3 a, T1 u& ?+ \* m; x3 e
2.2MySQL的标识符语法和命名规则
" u* H- {% t9 w2.3SQL语句的大小写规则) A+ j; `7 ? Q f/ u) r
2.4字符集支持, x1 [' k1 ]1 O/ {) s
2.4.1指定字符集
$ C" Y- O( n0 a" D- X7 v1 O2.4.2确定可用字符集和当前设置
6 \ D! _( X" }% _2.4.3Unicode支持3 {) P. R8 h% i0 O" C
2.5数据库的选择、创建、删除和更改4 X' R4 ^, V/ b% r5 ]7 g
2.5.1选择数据库* Z4 z1 r' J& k7 Q [* ~
2.5.2创建数据库. X% |! B3 ?; X$ D1 l2 n
2.5.3删除数据库
: r" L! a: g9 d/ \2 o2.5.4更改数据库# a) B+ V p% U- E7 T, c
2.6表的创建、删除、索引和更改6 U' g9 ~5 _/ X1 ]
2.6.1存储引擎的特性# ]9 A% @' A8 p, v X3 c9 P
2.6.2创建表' s$ C2 c2 |1 y4 C& ~( g# T. O+ E( q
2.6.3删除表
7 P3 E0 R8 q$ x- R9 {6 s+ y2.6.4索引表
) b0 u; x' m8 ?2.6.5更改表结构
1 J+ O& ]: X0 t! ?2.7获取数据库元数据
- x. Z) P9 a" w/ c* m! j& d4 C# y2.7.1使用SHOW语句获取元数据
2 x) T0 N- {2 L# a2.7.2借助INFORMATION_SCHEMA获取元数据# b& _& H" B7 S( U& `5 H
2.7.3从命令行获取元数据
2 U0 I; b1 B; o4 y. Q& ] x2.8使用连接实现多表检索3 C# v( O; a8 Q- d
2.8.1内连接
* |- t _5 ], X3 K) R2.8.2对被连接表里的列引用进行限定; C* ~" ]; u( {
2.8.3左(外)连接和右(外)连接* N% Q; X. d2 @; L4 c
2.9使用子查询实现多表检索8 K a, A1 E! K6 A) R& S1 o
2.9.1带关系比较运算符的子查询
$ S9 @& k: E- c5 v0 m: I2.9.2IN和NOTIN子查询
- P/ m. [( ^( R f! f5 s1 G2.9.3ALL、ANY和SOME子查询; Q& k5 w" j& S9 q- o7 }: T( G
2.9.4EXISTS和NOTEXISTS子查询
5 }! T% a" L' L$ m; z3 C- q* e, N2.9.5相关子查询
+ q! I/ @/ V5 c9 y5 W D# K# D# P7 c2.9.6FROM子句里的子查询
! a. j0 r) g$ T- r* H2.9.7将子查询改写为连接
8 F6 c1 o2 M9 o0 O. \2 `7 C3 L2.10使用UNION实现多表检索
8 G( u3 X% P* D2.11多表删除和更新
; i! N3 X3 x: e6 S# \- n2 M2.12事务处理
* c( n- J' q0 I: }7 m2.12.1利用事务保证语句安全执行. V& P& P2 R2 D7 S! I2 v
2.12.2使用事务保存点) e2 S2 X x4 A/ m1 E9 A& t+ D
2.12.3事务隔离
+ i% D- W4 a: D& p2.13外键和引用完整性3 T1 j6 p; R; `" D0 K
2.14使用FULLTEXT搜索
$ Q. S- b9 w j5 b; F2.14.1自然语言FULLTEXT搜索4 ~1 p! m5 \+ ]& ?
2.14.2布尔模式的全文搜索; r K) `% i1 `- ?7 H/ s0 i3 M. D
2.14.3查询扩展全文搜索5 T; g* l) k* t2 E
2.14.4配置全文搜索引擎
4 b$ m1 N( L) Y% z* s/ ]3 c第3章数据类型: r" @3 m, t6 S% c& m+ d
3.1数据值类别/ e$ L6 z N' ~8 `4 Y3 J! Z
3.1.1数值, M. u8 e" A: e$ V3 U; z j
3.1.2字符串值
" c3 A8 t9 J- e+ x) L3.1.3时态(日期/时间)值
! P% q, e4 u. K# H6 q$ ^3.1.4空间值
$ h y* h; }, l j3.1.5布尔值* y: W5 N6 X! s
3.1.6NULL值
7 O, ]# A: l ]+ \) p6 \3.2MySQL数据类型
$ l- q# f# q2 L& B3.2.1数据类型概述
" F+ E. ^2 P3 d2 S5 \1 G E3.2.2表定义里的特殊列类型# A; P D, z5 @( M) t0 \3 u7 L
3.2.3指定列的默认值+ ^" T p& W2 l8 B# P
3.2.4数字数据类型% c. _2 N) p$ _" R3 U: y
3.2.5字符串数据类型
+ O7 Q3 F' T( N4 n/ V4 z$ Q- j3.2.6时态(日期/时间)数据类型
5 w; K3 Q7 }$ o i# K& I3.3MySQL如何处理无效数据值% v1 n$ v% p: R5 b1 Q
3.4处理序列
) O& N" |& z2 d# ^3.4.1通用的AUTO_INCREMENT属性
& n; x& S. x+ \3.4.2存储引擎特有的AUTO_INCREMENT属性
$ N5 H) w3 K' D- X" |3.4.3使用AUTO_INCREMENT列需要考虑的问题
9 M* }: N% w4 r5 r/ S: L6 @3.4.4AUTO_INCREMENT列的使用提示
9 d4 W4 O l! e, L8 M4 G. W/ M! [ L3.4.5在无AUTO_INCREMENT的情况下生成序列
5 m# ~0 |, O; f ?3.5表达式计算和类型转换3 D, w7 d- T; ]8 T0 W- ?$ [
3.5.1编写表达式
9 k. Z6 q& t6 @ k, o3.5.2类型转换
, h* X. k7 z1 |2 g: n3 f3.6选择数据类型3 q8 b. D9 x4 X( F; j% R
3.6.1列要存放什么类型的值7 W( N' M* z2 T
3.6.2所有值是否都在某个特定的区间内
$ @: b6 Z7 I0 ~1 C z; V. H0 C第4章视图和存储程序) C# ~6 t& c0 w; f! ]# x& I
4.1使用视图$ ]9 q3 ~! e; R4 e8 V$ R
4.2使用存储程序" S! w: @" [! T
4.2.1复合语句和语句分隔符
% M! Z( y* L: \2 h$ g5 ]- }8 P4.2.2存储函数和存储过程- g0 c& W- [0 c6 j, _: _! P
4.2.3触发器
2 r |4 }% a! R* ]+ @. |/ O% } x4.2.4事件
X D: ~8 L1 a/ Z- w4.3视图和存储程序的安全性
! x. d7 X3 P8 s; Y C第5章查询优化% d9 j$ I: @4 u) X& [
5.1使用索引* y/ h* b( i% o7 S3 t6 s( W
5.1.1索引的优点/ H# V; k8 K1 A6 P8 N; x1 g! {& i
5.1.2索引的代价
2 y6 H1 ]( g- l. |- m! Z5.1.3挑选索引4 p* P* Q# e' k1 _, H
5.2MySQL查询优化程序
& S. X# v* m0 y8 E5.2.1查询优化程序的工作原理
2 p% N; s1 ^4 A' c6 t+ C5.2.2使用EXPLAIN检查优化程序的操作
* s% `' M8 f: {. x; l/ D- k5.3选择利于高效查询的数据类型( p5 o. N, N0 n
5.4选择利于高效查询的表存储格式
* {3 I1 L0 t/ [- y0 ?) n9 i5.5高效加载数据 c7 F* A& ?! m- f2 s% i, [
5.6调度、锁定和并发
6 A; r/ V/ A9 b+ n1 L; l) o( \- x: K
第6章MySQL程序设计入门6 c' G$ {1 N1 s9 U* ~7 n$ M
6.1为何要自己编写MySQL程序
- @2 o+ v* A& B2 W" _6.2MySQL提供的API4 G8 ]1 C" ?5 U5 Y& `
6.2.1C语言API. y# c7 @# w# f9 i' {
6.2.2Perl语言DBIAPI
% x q' n/ f8 X) O( o8 \6.2.3PHP语言API
; K- ]+ N: _* e/ I( `. |& u9 T: H0 L6.3选择API
. W0 u9 I: j/ a2 w/ t6.3.1执行环境) r0 n3 S1 @/ v% K) ?# p
6.3.2性能! l* q) U" Z V [; o" {3 |0 }' J
6.3.3开发时间/ o$ G5 T3 Y7 C, `1 ]+ c
6.3.4可移植性
5 g- W( B$ `$ d, @, `
第7章用C语言编写MySQL程序
' F: {3 y6 J0 e$ }+ i7 c7.1编译和链接客户端程序
( B6 ~; f. a& }8 O7.2连接服务器) A0 {, l0 P7 j9 L5 Q( y
7.3出错处理和命令选项处理' v5 T/ `, r; h
7.3.1出错检查& e$ g6 s. b9 M
7.3.2实时获取连接参数
( d* G. s$ e8 S: c4 i& S7.3.3把选项处理整合进客户端程序
0 W: o2 l1 h7 w- ^# v6 |9 u* t7.4处理SQL语句 n# U0 A) d/ A1 p
7.4.1处理那些修改行的语句5 w. o, C/ s) \- `" ]% ^
7.4.2处理那些返回结果集的语句
. p# `2 N. q8 O) H0 y7.4.3通用的语句处理器
1 k' p6 @2 F+ P7.4.4另一种语句处理方法
) g+ X6 ^& D, c0 R0 b7.4.5mysql_store_result()与mysql_use_result()的对比
% O7 s% d) J! \) p4 q7.4.6使用结果集元数据% N2 N$ X* t. N7 L0 K# T6 g
7.4.7对特殊字符和二进制数据进行编码
- I4 Z( [, I, N5 h7.5交互式语句执行程序
4 @6 p- P/ _4 i! m8 H# ?7.6编写支持SSL的客户端程序
/ ~# T4 l7 i! A" T$ m1 @: w* N& j3 }7.7一次执行多条语句" W) X4 {% r$ C5 f8 n* \/ G
7.8使用服务器端预处理语句% i/ j# W9 f3 o7 s2 p
7.9使用预处理CALL支持
$ ]6 ]% k( b& _9 _0 Q第8章用PerlDBI编写MySQL程序" c9 X- E$ ]( _) ]; k4 z3 t7 u2 d
8.1Perl脚本的特点
0 J/ `1 V, |2 U/ \- x8 i" y8.2PerlDBI概述! S0 P0 W$ K( ^8 e* @3 h
8.2.1DBI数据类型 u) P& @ A0 U/ K1 f
8.2.2一个简单的DBI脚本
: t4 q% O: S( j8.2.3出错处理
: s) w6 E: S" X: N4 h8.2.4处理那些修改行的语句
0 l ^2 J* e+ a8 u6 ?8.2.5处理那些返回结果集的语句
0 F# Y/ }8 o$ H" o; Z: f$ P( e8.2.6在语句串里引用特殊字符3 t! [( C( l8 ?/ E9 `& y/ d
8.2.7占位符与预处理语句
. D0 Y# `# t. w8.2.8把查询结果绑定到脚本变量9 a l% V7 d# f: H; k
8.2.9指定连接参数" D7 D( u$ l X1 f4 {5 x
8.2.10调试
0 ^4 s; ]) i" W* m$ c! f0 w8.2.11使用结果集元数据2 Z6 y8 P, X7 d- z& F2 c4 z
8.2.12执行事务( G! s1 B; a1 P
8.3DBI脚本实践
0 u; r$ \1 L9 j3 z# G( f8.3.1生成美史联盟成员名录
- o: H, x7 A* a2 w- N1 j7 K8.3.2发送成员资格更新通知
7 a3 A: A4 o) c4 q( O8.3.3编辑美史联盟成员条目
+ J8 O8 J! t5 X) z7 b8.3.4寻找志趣相投的联盟成员
: H- B) ?+ {/ L: J! p8.3.5把美史联盟成员名录放到网上2 O. m( Y: J7 s, @0 u1 K- u0 O
8.4使用DBI来开发Web应用程序
; `' `9 o7 E# x8 b! ~. U4 [4 F8.4.1配置Apache服务器来处理CGI脚本
: Q {1 R1 ]9 D- {& @) n# E7 O8.4.2CGI.pm模块简介 java8.com
$ ~$ C) F) w( ~2 I2 G$ z8.4.3从Web脚本连接MySQL服务器
( I2 a4 Z$ w3 K) g2 P1 u8.4.4基于Web的数据库浏览器3 ^2 U! o5 n- r: _2 P% Q
8.4.5成绩考评项目:分数浏览器) M4 q4 z' O. i& G( v7 r
8.4.6美史联盟:搜索志趣相投的成员
1 y( K) {+ z, b第9章用PHP语言编写MySQL程序# [. L! j* ?2 _1 E( M
9.1PHP概述, K! Q* o* I; n5 v$ T7 z# u7 v( Z
9.1.1一个简单的PHP脚本& V& d7 l5 d* [
9.1.2利用PHP库文件实现代码封装; j6 e$ t/ {' F' J0 k
9.1.3简单的数据检索页面
4 `9 _' u; l4 [9 [9.1.4处理语句结果7 p2 E8 o; M% u, l" H" \1 b7 W
9.1.5测试查询结果里的NULL值2 _4 X/ K$ \* e0 M7 G
9.1.6使用预处理语句0 U% N2 d% t7 y5 K' d" m
9.1.7利用占位符来处理数据引号问题
9 A2 r! X4 _" s9.1.8出错处理* l- a8 H9 t2 ^* T' I
9.2PHP脚本实战( g$ g3 g2 d' n7 y
9.2.1一个在线录入分数的应用程序2 B3 |; J1 C+ P7 Z8 M. Z7 y
9.2.2创建交互式的在线测验
7 d& A8 I5 e5 y$ l. g4 N9.2.3在线编辑美史联盟成员信息
/ l6 k A7 Q8 }8 M S( n第10章MySQL管理简介& K) d( Z+ K/ }& N( ?! ^& d
10.1MySQL组件5 @5 v2 p& y2 V, v
10.2MySQL的常规管理; f0 k# p$ n5 Q
……
" s* m4 N ?; V0 z$ L: _第11章MySQL数据目录
/ u8 T* C4 |+ i9 ^第12章MySQL的基本管理$ J& ~ R/ m) A* \; h5 t% S
第13章安全性与访问控制7 u/ c3 |7 Q/ ~8 V" l- C1 B
第14章数据库维护、备份和复制
4 i) x0 k2 g# K+ l) k/ D附录A本书所需要的各类软件
0 q' e6 T4 ?5 ?3 w: s6 q9 u附录B数据类型参考
3 ~* m: f% N2 N5 F5 Z$ `# H附录C操作符与函数参考/ ]2 W/ Z( ?0 U% X0 F9 ]' x
附录D系统变量、状态变量和用户变量参考
B/ l' Q& \0 ?+ w附录ESQL语法参考
' j$ X2 [" n2 L' t/ q" K附录FMySQL程序参考