第1章 背景知识
2 U& Y/ V/ {+ E \1.1 数据库简介
" G+ v6 g+ E' S) {5 j. V' I' p1.1.1 非关系数据库 * Y8 m: C! G* Z$ H) [3 F
1.1.2 关系模型 $ a, m# j' c: @
1.1.3 一些术语 " x. r9 g4 `* V+ B% a9 Z
1.2 什么是SQL ! {" P& a% Z* u2 U {9 H& o
1.2.1 SQL语句的分类 0 _2 u: h. ] F0 K! k
1.2.2 SQL:非过程化语句
/ W1 h9 Q6 j- T: |9 t1.2.3 SQL示例
, Z4 V" X0 L: F: G1.3 什么是MySQL
, p. w/ @( d6 i" p& A8 u# U1.4 内容前瞻
$ E4 z' T4 z3 A第2章 创建和使用数据库 " k: V3 x: g* c$ l: S/ J' r3 L4 U8 J
2.1 创建MySQL数据库
/ H5 d8 S3 _9 d9 }' k5 \# j2.2 使用mysql命令行工具
9 j1 j4 j' W7 j- ~: S |. c2.3 MySQL数据类型 2 y$ ]2 H& P! |& t$ e
2.3.1 字符型数据 1 @3 d. u+ I' u, e
2.3.2 数值型数据 % C9 u4 i- F+ u! L) a8 G
2.3.3 时间数据 1 M2 C+ o n! |7 n
2.4 表的创建
% }' O# E7 S2 Q5 x# `0 @; `' ^2 r
java8.com: q' } J6 j- K
2.4.1 第1步:设计
8 e8 h3 N# `; ]2.4.2 第2步:精化
4 b" b) g0 z' O6 ~" m2.4.3 第3步:构建SQL方案语句 ) W; S7 H( a9 [; q! ]+ J
2.5 操作与修改表
6 L: s" J* m$ q: w. J& z2.5.1 插入数据 ( c5 k2 c- T& H! v9 e
2.5.2 更新数据 1 J# u7 U! V: O, L. j+ S
2.5.3 删除数据
) N% F! c& o7 I2.6 导致错误的语句 4 b+ Z6 Y( {! x8 Z M3 q& k, r
2.6.1 主键不唯一 , n& @3 c: o7 L' d, b" m: L6 p
2.6.2 不存在的外键 % M7 e. W1 ]* w6 ~# F8 _
2.6.3 列值不合法
# U4 t- T) C0 @6 P/ a" u5 t- \2.6.4 无效的日期转换 $ a7 h0 m5 [/ U0 [. J
2.7 Bank方案
4 Q; D, H$ k0 l8 o6 ?第3章 查询入门
: m# i" k+ @' [2 f# f3.1 查询机制 - E* A& }' ~4 H
3.2 查询语句
4 B) _4 R% ?8 z' f4 Z& c3.3 select子句
* x5 }8 w" E) h3 P3.3.1 列的别名
. B' F3 e8 O; m( j; A3.3.2 去除重复的行
4 S1 }- i. u$ K T. S% R3.4 from子句
/ o% ?: I2 {, C9 f/ x- S+ _' g3.4.1 表的概念 0 p- J0 n& W3 J
3.4.2 表连接 1 b7 I/ N. B- R
3.4.3 定义表别名 & p, q: M! X9 Y6 g
3.5 where子句 . r+ `) V5 M0 x4 P, k
3.6 group by和having子句
7 V2 ^4 }# o0 P/ b% h3 o3.7 order by子句
. t, o0 U" p* b7 ?3.7.1 升序或降序排序 & C7 {% p J, V& _- ~$ |9 E
3.7.2 根据表达式排序
- Z) e8 `6 {0 U' F3.7.3 根据数字占位符排序 }. v# i6 r! Y; y3 o9 X
3.8 小测验
. Z( h" n. P" P$ @7 ^# `第4章 过滤
; ~" ]% \, s) S" [' H" o4.1 条件评估
! F& k S1 l8 h4.1.1 使用圆括号 + ]' d- k* Z/ c
4.1.2 使用not操作符 . q/ Y) g1 z8 Y1 _7 Y
4.2 构建条件
, x0 ]9 Z9 V3 W4 D4.3 条件类型 * \& E& ~# _1 ]8 c* } r0 @( `
4.3.1 相等条件
$ V& _5 R" k, w4.3.2 范围条件
( v6 v* u. N) H5 k+ q4.3.3 成员条件
$ v, D- j& R5 H! W* @4.3.4 匹配条件
( |0 |3 x* G8 C, W' D" d5 A4.4 null: 4个字母的关键字
- _1 I: c& h6 |1 d5 H) V4.5 小测验 , Q2 N4 S9 x5 T! j7 ]
第5章 多表查询 ! g# g. u, W3 h0 {) n1 K' K
5.1 什么是连接 2 l: i, _+ E3 [
5.1.1 笛卡儿积
' y8 ~2 D' ?+ Y A5.1.2 内连接 4 H4 K* P' U5 J) m
5.1.3 ANSI连接语法
/ f+ c5 S9 }8 w- B) N5.2 连接3个或更多的表
9 M0 k' f; e& p7 m- L/ \) P5.2.1 将子查询结果作为查询表
7 M5 e8 h( n! G5.2.2 连续两次使用同一个表 ( q1 Q2 E' X1 g4 c
5.3 自连接 6 V( J2 P: B) L8 Z
5.4 相等连接和不等连接
8 n C& w1 m6 {1 w' y$ x) }7 N5.5 连接条件和过滤条件
' ^& r! K+ \4 P) w: X. s! w( ]5.6 小测验 , B1 S3 x9 S) w2 P1 j/ }( q3 b' l
第6章 使用集合
' Q; o6 f# {, h/ [ [6.1 集合理论基础 : V$ @3 Z3 _* M
6.2 集合理论实践 9 _ l s# W. S ^. }
6.3 集合操作符
. I2 l, o$ t! ^: V- J6.3.1 union操作符 : r. v; R G- H5 t V
6.3.2 intersect操作符
% H4 Z2 f+ M- M& Q B( y6.3.3 except操作符 5 Z6 G* b+ `" ?
6.4 集合操作规则
" M( I( |" Q2 Z9 p! ]$ \5 b) R) n6.4.1 对复合查询结果排序
3 F% Y+ e# J. D6.4.2 集合操作符优先级 ! }# l8 t2 A- }! G
6.5 小测验
; P% B# T6 ^2 B第7章 数据生成、转换和操作 $ b8 j( f, ~2 Q: f; j
7.1 使用字符串数据
6 Y$ C% ]1 `$ q. x# c0 N7 ]6 X7.1.1 生成字符串 , k( z% Q. L( l2 M0 L1 b
7.1.2 操作字符串
* Q; F5 G' [3 C& [; r1 y3 c7.2 使用数值数据 + O# L8 S5 U! C
7.2.1 执行算术函数
: e* A" R/ I$ {; g b7.2.2 控制数字精度 ! U" c+ o- P* U0 F
7.2.3 处理有符号数
6 s: W2 F ~; q- L4 {* a, W7.3 使用时间数据
* D& N. L+ q$ {! p; @) b' ^7.3.1 处理时区 ( x9 N/ B, ] e, u& f
7.3.2 生成时间数据 ! G; j7 n4 M; w
7.3.3 操作时间数据 ! ~. E/ x5 e( F: j6 ^8 I% ~
7.4 转换函数
( R2 v2 k" X+ V9 ]& Y" Q2 h7.5 小测验
. h. R$ w9 Z, ?9 Y' t第8章 分组与聚集 : G5 u( M' x4 }7 Q6 }, U
8.1 分组概念
% e/ s9 z+ h' p& L8.2 聚集函数
* H$ j6 |: _3 c3 y% T% ?% W8.2.1 隐式或显式分组
8 [& B* Z ^/ P% c C# W7 I8.2.2 对独立值计数
$ B( q4 x2 J: T/ G X: _- C; b, x) _8.2.3 使用表达式 & z. q6 t% n$ y% B
8.2.4 如何处理null值
( `( f/ H6 z$ @& W: b8.3 产生分组
9 `, c& w1 ^9 S# t2 D8.3.1 对单列的分组 ! S& o- |: c& o1 r5 o7 H* [
8.3.2 对多列的分组 4 B& u6 }$ O, V# ~; x
8.3.3 利用表达式分组
; ^- m3 I. A+ y7 b# B' j8.3.4 产生合计数 , B3 f6 ? O" G: v
8.4 分组过滤条件 ; f+ @* s6 u/ X5 j3 Z5 \
8.5 小测验
$ f5 i/ j2 ^, a6 B. z8 {4 ]第9章 子查询 ) o f5 O" B5 E; _5 }
9.1 什么是子查询 . T( N# K2 r3 _& \; j
9.2 子查询类型 / M" G4 t& X# a. e7 J
9.3 非关联子查询 / `9 H4 s# E0 `1 A+ ]: p' p
9.3.1 多行单列子查询 0 z2 f7 R. W) n' c' w
9.3.2 多列子查询
7 B. i( Z5 x, z( l+ a& K& D9.4 关联子查询
% q5 m: P) @# g9.4.1 exists 运算符
8 c# \* E) d h3 x7 D9.4.2 关联子查询操作数据 7 ]4 ~. O; v. F; r% V% s+ M2 ^
9.5 何时使用子查询 5 }, p) {3 w0 w
9.5.1 子查询作为数据源 9 W$ w1 j s+ ~ N! b% w: D; p
9.5.2 过滤条件中的子查询 2 w' y* a1 C0 n
9.5.3 子查询作为表达式生成器 9 ] V# d% ]# ?. {0 q
9.6 子查询总结
" i! t7 ~' v4 a1 F9.7 小测验
/ h- x4 W3 @% g! B9 v第10章 再谈连接 . I# u+ T+ h- P
10.1 外连接 1 D- p3 Z, O5 [- ~7 a9 W
10.1.1 左外连接与右外连接 6 l* W' `7 C+ g1 O* n% Q" B+ d( w$ E
10.1.2 三路外连接 ( ~3 ?; u2 j* @" H% s: t) d
10.1.3 自外连接 : L: {( P% t5 N/ P; |4 Z$ X5 `& P" r
10.2 交叉连接
# z2 C- A0 g- g. i4 w! p10.3 自然连接 * w8 d' A# b+ W9 ?! e
10.4 小测验 2 l/ O5 V( b7 E: q1 F$ q4 V* N A
第11章 条件逻辑 - b9 j4 _, R' ~) a- \
11.1 什么是条件逻辑 3 j$ E& \, s. m$ D9 J) J2 S
11.2 case 表达式 3 v' K# I! T" f
11.2.1 查找型case表达式 . Q/ m- a+ `5 R
11.2.2 简单case表达式
) a( I& _* B! w6 e3 z11.3 case表达式范例
/ Z) x# j% P; Z+ Z& V) X& O! ]11.3.1 结果集变换
' H% o6 A d) x! f* B2 m11.3.2 选择性聚合
$ R5 t( n I4 c, T* F! }: M( G11.3.3 存在性检查 9 r/ L2 ~3 ^, P9 W
11.3.4 除零错误
* X5 F! V2 a& c2 M, V8 F k: u11.3.5 有条件更新 ! d. s& o: g8 S3 N1 n0 o
11.3.6 null值处理
+ r7 B; l) j- u11.4 小测验
! F/ P' V, K! G3 \1 Y第12章 事务 7 H4 ~# _! X, [/ ?
12.1 多用户数据库 n1 ~6 T i$ c2 p+ D8 {
12.1.1 锁
# T8 `8 N3 d5 t* @" e4 q. _! N12.1.2 锁的粒度 & B) b7 {3 P: Y1 c4 Y- K
12.2 什么是事务
! l; W( S# G& z7 e& ~! j, Z12.2.1 启动事务 5 ]8 t+ h- e6 o! ~
12.2.2 结束事务 # _% l$ v# ^8 p' P& {& u* r' M
12.2.3 事务保存点 5 G% A/ O7 G/ r8 s; C% B5 p
12.3 小测验 & ~7 D2 g3 c W* @6 h& Z
第13章 索引和约束
) @0 \" o6 |4 N7 |3 y6 A( d13.1 索引
+ M q: x2 o, t13.1.1 创建索引 1 w% ^1 g/ D( F ]
13.1.2 索引类型
5 ^$ X( L( o2 a3 Q. m6 K1 B13.1.3 如何使用索引
4 e. B8 {! R" q; [2 @3 P1 O13.1.4 索引的不足
$ Y1 `& A! n" M* `13.2 约束
) a! S9 S9 o3 P3 {# E1 B* S13.2.1 创建约束 7 K* M: x* K; d. [' T2 W
13.2.2 约束与索引 . R5 ]/ U) M; X. w2 x
13.2.3 级联约束
, E" B; H- X: D9 \& c+ E13.3 小测验
" q8 J) w7 i. M+ c4 O$ o9 k第14章 视图
$ \$ e( L4 Q9 l R7 G14.1 什么是视图
. ^- i/ p d* h14.2 为什么使用视图
6 t5 I, ` l7 K, w8 T6 a8 Y+ {14.2.1 数据安全 8 b% \% Y" z2 a
14.2.2 数据聚合 7 v/ P4 y' d& W9 A% e
14.2.3 隐藏复杂性
% l' @+ i! ]/ b9 ] r' Q0 ^14.2.4 连接分区数据
# |3 Q) J5 p) Q8 a14.3 可更新的视图 5 n3 A) P2 d, P
14.3.1 更新简单视图
# s$ a6 e- J2 Y/ E14.3.2 更新复杂视图
- L9 t0 |, k, P" x14.4 小测验 1 j, o' j& m2 D
第15章 元数据
) \/ }. }8 Q {) r4 C. p6 n15.1 关于数据的数据
2 U) r' ^3 N" i' X' r( E; W' F15.2 信息模式 6 w, N; e' f. Y4 v* W- z
15.3 使用元数据 7 c* B' ?7 @$ {, d8 ~8 e
15.3.1 模式生成脚本 " b F$ f# Q6 r. w: g
15.3.2 部署验证 : `; w. L# ~; L* w4 J6 V. B4 v2 A- G
15.3.3 生成动态SQL ( N( g3 c. [3 C) C6 A3 x
15.4 小测验
% B& b6 J5 O+ P) |" k p2 [附录A 示例数据库的ER图
9 D3 x; R4 }* Y K2 ]附录B MySQL对SQL语言的扩展
2 n( U/ n( B0 \9 u$ ?B.1 扩展select语句 ; Q8 K1 S& O5 U
B.1.1 limit子句
" ^, l6 K! G4 E4 U5 |7 x2 s4 f4 ~B.1.2 into outfile子句 # o' @- g/ I$ C! `
B.2 组合insert/update语句
/ y5 i3 ]" \( P8 D" {& XB.3 按排序更新和删除
: l7 c, v0 v5 u0 PB.4 多表更新与删除
; |+ ?! K7 ?+ a* ^- h' h! \6 b附录C 练习答案
2 E" z: C8 s8 B* ?8 U" h/ V6 Y
6 T2 G! \ \% l8 f7 |0 p! I R1 D