第 1章 KimTay和StayWell数据库简介 1
1.1 简介 1
1.2 什么是数据库 1
1.3 KimTay数据库 2
1.4 StayWell数据库 8
1.5 本章总结 12
1.6 案例练习 13
第 2章 数据库设计基础知识 15
2.1 简介 15
2.2 数据库的概念 16
2.2.1 关系数据库 16
2.2.2 实体、属性和联系 17
2.3 功能依赖关系 21
2.4 主键 24
2.5 数据库的设计 26
2.5.1 设计方法 26
2.5.2 数据库的设计需求 27
2.5.3 数据库设计过程示例 28
2.6 规范化 35
2.6.1 第 一范式 36
2.6.2 第二范式 37
2.6.3 第三范式 41
2.7 数据库的结构设计图 46
2.8 本章总结 48
2.9 复习题 50
2.10 案例练习 51
第3章 创建表 54
3.1 简介 54
3.2 创建和运行SQL命令 55
3.2.1 使用MySQL Workbench 55
3.2.2 输入指令 58
3.3 创建数据库 61
更改默认数据库 63
3.4 创建表 64
3.4.1 修正SQL指令中的错误 69
3.4.2 删除表 70
3.4.3 使用数据类型 71
3.5 使用空值 72
3.6 在表中添加行 73
3.6.1 INSERT指令 73
3.6.2 插入包含空值的行 77
3.7 查看表中的数据 78
3.8 修正表中的错误 80
3.9 保存SQL指令 83
3.10 创建剩余的数据库表 87
3.11 对表进行描述 92
3.12 本章总结 95
3.13 复习题 96
3.14 案例练习 97
第4章 单表查询 101
4.1 简介 101
4.2 创建简单查询 101
4.2.1 提取特定列和所有行 102
4.2.2 提取所有列和所有行 103
4.2.3 使用WHERE子句 104
4.2.4 使用复合条件 106
4.2.5 使用BETWEEN操作符 109
4.2.6 使用计算列 111
4.2.7 使用LIKE操作符 113
4.2.8 使用IN操作符 115
4.3 排序 116
4.3.1 使用ORDER BY子句 116
4.3.2 其他排序选项 117
4.4 使用函数 118
4.4.1 使用COUNT函数 118
4.4.2 使用SUM函数 119
4.4.3 使用AVG、MAX和MIN函数 119
4.4.4 使用DISTINCT操作符 121
4.5 嵌套的查询 123
子查询 125
4.6 分组 127
4.6.1 使用GROUP BY子句 127
4.6.2 使用HAVING子句 129
4.6.3 比较HAVING子句和WHERE子句 130
4.7 空值 132
4.8 总结SQL查询的子句和操作符 133
4.9 本章总结 134
4.10 复习题 135
4.11 案例练习 136
第5章 多表查询 139
5.1 简介 139
5.2 对多个表进行查询 139
连接两个表 140
5.3 连接、IN和EXISTS的比较 143
5.3.1 使用IN操作符 144
5.3.2 使用EXISTS操作符 145
5.3.3 在子查询中使用子查询 146
5.3.4 综合案例 148
5.3.5 使用别名 150
5.3.6 把表与自身相连接 151
5.3.7 根据主键列使用自身连接 153
5.3.8 连接几个表 154
5.4 集合操作 157
5.5 ALL和ANY操作符 162
5.6 特殊操作 165
5.6.1 内部连接 165
5.6.2 外部连接 167
5.6.3 乘积 168
5.7 本章总结 169
5.8 复习题 171
5.9 案例练习 172
第6章 更新数据 175
6.1 简介 175
6.2 使用一个现有的表创建一个新表 175
6.3 修改一个表的现有数据 177
6.4 向一个现有的表添加行 180
6.5 自动提交、提交和回滚 182
6.6 事务 184
6.7 修改和删除现有的行 185
执行回滚 187
6.8 把一个值修改为空值 188
6.9 修改表的结构 190
进行复杂的修改 197
6.10 删除表 197
6.11 本章总结 198
6.12 复习题 199
6.13 案例练习 199
第7章 数据库管理 203
7.1 简介 203
7.2 创建和使用视图 203
7.3 使用视图更新数据 212
7.3.1 更新行列子集视图 212
7.3.2 更新涉及连接的视图 214
7.3.3 更新涉及统计数据的视图 218
7.4 删除视图 218
7.5 安全 219
7.6 索引 222
7.6.1 创建索引 225
7.6.2 删除索引 226
7.6.3 创建唯一性索引 227
7.7 系统目录 228
系统目录的更新 231
7.8 SQL的完整性约束 232
7.9 本章总结 235
7.10 复习题 237
7.11 案例练习 238
第8章 函数、存储过程、触发器 242
8.1 简介 242
8.2 在编程环境中使用SQL 242
8.3 使用函数 244
8.3.1 字符函数 244
8.3.2 数值函数 245
8.3.3 对日期进行操作 246
8.4 连接列 251
8.5 在MySQL中使用存储过程 255
提取单行和单列 256
8.6 错误处理 259
8.7 使用更新存储过程 262
8.7.1 使用更新存储过程修改数据 262
8.7.2 使用更新存储过程删除数据 264
8.8 使用存储过程选择多行 265
8.8.1 使用游标 265
8.8.2 打开游标 266
8.8.3 从游标提取行 267
8.8.4 关闭游标 268
8.8.5 使用游标编写一个完整的存储过程 269
8.8.6 使用更复杂的游标 270
8.8.7 游标的优点 272
8.9 在Oracle中使用PL/SQL 272
8.9.1 PL/SQL的错误处理 274
8.9.2 在PL/SQL中使用游标编写一个完整的存储过程 276
8.10 在SQL Server中使用T-SQL 277
8.10.1 在T-SQL中提取单行和单列 277
8.10.2 在T-SQL中使用存储过程修改数据 277
8.10.3 在T-SQL中使用存储过程删除数据 278
8.10.4 在T-SQL中使用游标 278
8.10.5 在T-SQL中使用更复杂的游标 279
8.11 使用触发器 280
8.12 本章总结 286
8.13 复习题 288
8.14 案例练习 289
附录A SQL参考 293
A.1 别名 293
A.2 ALTER TABLE指令 293
A.3 列或表达式列表(SELECT子句) 294
A.3.1 计算列 294
A.3.2 DISTINCT操作符 294
A.3.3 函数 295
A.4 COMMIT指令 295
A.5 条件 296
A.5.1 简单条件 296
A.5.2 复合条件 296
A.5.3 BETWEEN条件 296
A.5.4 LIKE条件 297
A.5.5 IN条件 297
A.5.6 EXISTS条件 297
A.5.7 ALL和ANY条件 298
A.6 CREATE INDEX指令 298
A.7 CREATE TABLE指令 298
A.8 CREATE VIEW指令 299
A.9 数据类型 300
A.10 删除行 300
A.11 DESCRIBE 301
A.12 DROP INDEX指令 301
A.13 DROP TABLE指令 301
A.14 DROP VIEW指令 302
A.15 GRANT指令 302
A.16 INSERT INTO(查询)指令 303
A.17 INSERT INTO(值)指令 303
A.18 表的完整性 304
A.19 REVOKE指令 304
A.20 ROLLBACK指令 305
A.21 SELECT指令 305
A.22 子查询 306
A.23 UNION、INTERSECT、MINUS子句 307
A.24 UPDATE指令 308
附录B SQL参考使用指南 309
附录C 编写查询指令的10条戒律 312
展开