第1章 关系型数据库和SQL简介 1
1.1 SQL简介 1
1.1.1 SQL概述 1
1.1.2 SQL的功能与特性 2
1.1.3 SQL的分类 3
1.2 SQL的扩展 3
1.2.1 T-SQL 3
1.2.2 MySQL 7
1.2.3 MySQL与标准SQL的差别 9
1.2.4 PL/SQL 9
1.3 数据库的发展史 12
1.3.1 数据库模型 12
1.3.2 关系型数据库 12
1.4 常用的SQL数据库 13
1.4.1 Microsoft SQL Server 13
1.4.2 Oracle 14
1.4.3 MySQL 15
1.5 数据设计 16
1.5.1 数据库设计的目的和意义 16
1.5.2 数据库设计的基本步骤 16
1.5.3 天方论坛系统数据库Tfbbs的设计 17
1.6 练习题 22
1.6.1 选择 22
1.6.2 填空 23
1.6.3 简答 23
第2章 SQL基础 24
2.1 SQL数据类型 24
2.1.1 SQL数据类型讲解 24
2.1.2 T-SQL中的数据类型 26
2.1.3 MySQL中的数据类型 31
2.1.4 PL/SQL中的数据类型 34
2.2 SQL常量和表达式 35
2.2.1 SQL常量 35
2.2.2 表达式 37
2.3 SQL内置函数 39
2.3.1 SQL内置函数详解 39
2.3.2 T-SQL中的内置函数 41
2.3.3 MySQL中的内置函数 46
2.3.4 PL/SQL中的函数 48
2.4 SQL语句 50
2.4.1 SQL语句概述 50
2.4.2 SQL语句分类 51
2.5 练习题 52
2.5.1 选择 52
2.5.2 填空 53
2.5.3 简答 53
第3章 数据库的创建和管理 54
3.1 创建数据库 54
3.1.1 创建数据库语法详解 54
3.1.2 在3种数据库服务器中创建数据库的实例 59
3.2 管理数据库 61
3.2.1 修改数据库语法 61
3.2.2 扩充数据库容量实例 65
3.2.3 压缩数据库容量实例 66
3.3 删除数据库 67
3.3.1 删除数据库语法 67
3.3.2 删除数据库的实例 68
3.4 练习题 70
3.4.1 选择 70
3.4.2 填空 71
3.4.3 简答 71
3.4.4 上机 71
第4章 创建和管理表 72
4.1 创建表 72
4.1.1 创建表语法 72
4.1.2 创建表实例 78
4.2 修改数据库表 84
4.2.1 修改表语法 85
4.2.2 修改表名称实例 88
4.2.3 添加新列实例 90
4.2.4 修改已有的列长度 93
4.2.5 修改已有列的数据类型 96
4.2.6 删除表中已有列的实例 99
4.3 删除数据库表 102
4.3.1 删除表语法 102
4.3.2 删除表实例 103
4.4 练习题 105
4.4.1 选择 105
4.4.2 填空 106
4.4.3 简答 106
4.4.4 上机 107
第5章 操作SQL数据 110
5.1 插入SQL数据 110
5.1.1 使用默认值 110
5.1.2 使用INSERT...VALUES语句 110
5.1.3 使用INSERT...SELECT语句 111
5.1.4 INSERT语句语法 112
5.1.5 INSERT语句实例 118
5.2 修改SQL数据 123
5.2.1 UPDATE语句语法 123
5.2.2 UPDATE语句实例 127
5.3 删除SQL数据 130
5.3.1 DELETE语句语法 131
5.3.2 DELETE语句实例 133
5.4 练习题 138
5.4.1 选择 138
5.4.2 填空 139
5.4.3 简答 139
5.4.4 上机 139
第6章 表的简单查询 141
6.1 SELECT语句 141
6.1.1 SELECT语句概述 141
6.1.2 SELECT语句语法 142
6.2 使用SELECT子句 146
6.2.1 选择所有的列 146
6.2.2 选择所需的列 148
6.2.3 别名的使用 150
6.3 使用FROM子句 150
6.3.1 从表和视图中选择 150
6.3.2 在一个FROM子句中使用别名 150
6.4 使用TOP子句 152
6.4.1 TOP语句概述 152
6.4.2 TOP语句实例 153
6.5 使用WHERE子句 153
6.5.1 在WHERE子句中使用比较运算符 154
6.5.2 在WHERE子句中使用逻辑运算符 157
6.6 分组查询 160
6.6.1 GROUP BY子句 160
6.6.2 HAVING子句 162
6.7 模糊查询 162
6.7.1 使用LIKE语句 162
6.7.2 IN子句 165
6.7.3 BETWEEN子句 166
6.7.4 IS NULL运算符 168
6.7.5 等号、IN、LIKE三者的比较 170
6.8 练习题 170
6.8.1 选择 170
6.8.2 填空 171
6.8.3 简答 171
6.8.4 上机 171
第7章 表的高级查询 172
7.1 多个表的连接查询 172
7.1.1 内连接 173
7.1.2 外连接 177
7.1.3 交叉连接 180
7.2 集合查询 182
7.2.1 UNION连接运算符 183
7.2.2 INTERSECT连接运算符 186
7.2.3 MINUS连接运算符 187
7.3 子查询 188
7.3.1 使用IN的子查询 189
7.3.2 用ANY或ALL修改的比较运算符 191
7.3.3 使用EXISTS的子查询 193
7.3.4 使用NOTEXISTS的子查询 194
7.3.5 在INSERT语句中使用子查询 196
7.3.6 在UPDATE语句中使用子查询 198
7.3.7 在DELETE语句中使用子查询 200
7.4 DISTINCT和COMPUTE BY 201
7.4.1 DISTINCT 201
7.4.2 COMPUTE和COMPUTE BY 203
7.5 练习题 204
7.5.1 选择 204
7.5.2 填空 204
7.5.3 简答 205
7.5.4 上机 205
第8章 视图 206
8.1 视图概述 206
8.2 视图的优点和缺点 207
8.2.1 视图的优点 207
8.2.2 视图的缺点 208
8.3 创建视图 208
8.3.1 创建视图的语法 208
8.3.2 创建简单视图 212
8.3.3 创建列的别名 215
8.3.4 使用子查询的视图 217
8.4 修改视图 221
8.4.1 修改视图的语法 221
8.4.2 修改视图的实例 222
8.5 删除视图 224
8.5.1 删除视图的语法 224
8.5.2 删除视图的实例 225
8.6 通过视图管理数据 227
8.6.1 通过视图插入数据 228
8.6.2 通过视图更新数据 231
8.6.3 通过视图删除数据 234
8.7 练习题 236
8.7.1 选择 236
8.7.2 填空 237
8.7.3 简答 237
8.7.4 上机 237
第9章 数据完整性 238
9.1 了解数据完整性 238
9.1.1 数据完整性的定义 238
9.1.2 数据完整性类型 238
9.1.3 数据完整性意义 239
9.2 约束 240
9.2.1 对约束的一些操作 240
9.2.2 几种约束简介 240
9.2.3 PRIMARY KEY约束 243
9.2.4 FOREIGN KEY约束 246
9.2.5 UNIQUE约束 248
9.2.6 NOTNULL约束 251
9.2.7 DEFAULT约束 253
9.3 规则 255
9.4 练习题 256
9.4.1 选择 256
9.4.2 填空 256
9.4.3 简答 256
9.4.4 上机 257
第10章 索引 258
10.1 索引简介 258
10.1.1 索引的优点 258
10.1.2 索引的缺点 259
10.1.3 索引的分类 260
10.1.4 索引的特性 260
10.2 创建索引 261
10.2.1 创建索引的语法 261
10.2.2 创建唯一索引的实例 268
10.2.3 创建组合索引的实例 270
10.3 删除索引 271
10.3.1 删除索引的语法 271
10.3.2 删除索引的实例 273
10.4 练习题 275
10.4.1 选择 275
10.4.2 填空 275
10.4.3 简答 276
10.4.4 上机 276
第11章 存储过程 277
11.1 存储过程概述 277
11.1.1 存储过程简介 277
11.1.2 使用存储过程的优缺点 278
11.2 创建和执行存储过程 278
11.2.1 创建存储过程的语法 278
11.2.2 创建存储过程的实例 282
11.2.3 执行存储过程 283
11.3 存储过程中使用参数 285
11.3.1 使用默认值参数 285
11.3.2 使用带OUTPUT的返回参数 286
11.3.3 RETURN语句 289
11.4 修改存储过程 289
11.4.1 修改存储过程的语法 290
11.4.2 修改存储过程的实例 292
11.5 删除存储过程 294
11.5.1 删除存储过程的语法 294
11.5.2 删除存储过程实例 294
11.6 练习题 296
11.6.1 选择 296
11.6.2 填空 296
11.6.3 简答 296
11.6.4 上机 297
第12章 触发器 298
12.1 触发器概述 298
12.1.1 触发器的优点 298
12.1.2 触发器的组成部分 299
12.1.3 触发器的功能 300
12.2 创建触发器 300
12.2.1 创建触发器的语法 301
12.2.2 创建触发器的实例 304
12.3 修改触发器 306
12.3.1 修改触发器的语法 306
12.3.2 修改触发器的实例 308
12.4 删除触发器 309
12.4.1 删除触发器的语法 309
12.4.2 删除触发器的实例 310
12.5 Inserted表和Deleted表 311
12.6 使用INSERT触发器 312
12.7 使用UPDATE触发器 315
12.8 使用DELETE触发器 318
12.9 练习题 320
12.9.1 选择 320
12.9.2 填空 321
12.9.3 简答 321
12.9.4 上机 321
第13章 游标 322
13.1 游标概述 322
13.2 声明游标 324
13.2.1 声明游标的语法 324
13.2.2 声明游标的实例 326
13.3 打开和关闭游标 327
13.3.1 打开游标 327
13.3.2 关闭游标 328
13.4 从游标中提取记录 329
13.4.1 FETCH语句 329
13.4.2 使用游标提取数据的实例 330
13.5 练习题 332
13.5.1 选择 332
13.5.2 填空 333
13.5.3 简答 333
13.5.4 上机 333
第14章 事务和锁 334
14.1 事务的概念 334
14.2 事务的特性 335
14.3 事务的分类 335
14.4 开始事务 336
14.4.1 开始事务语法 336
14.4.2 开始事务的实例 337
14.5 设置事务保存点 338
14.5.1 设置事务保存点的语法区别 338
14.5.2 设置事务保存点的实例 339
14.6 提交事务 340
14.6.1 提交事务的语法 340
14.6.2 提交事务的实例 341
14.7 回滚事务 342
14.7.1 回滚事务的语法 342
14.7.2 回滚事务的实例 343
14.8 事务的并发控制 344
14.9 事务隔离和隔离级别 345
14.10 锁 345
14.10.1 锁的类型 346
14.10.2 死锁 347
14.11 练习题 348
14.11.1 选择 348
14.11.2 填空 348
14.11.3 简答 348
14.11.4 上机 349
第15章 SQL安全 350
15.1 SQL安全概述 350
15.1.1 SQL Server的安全性 350
15.1.2 MySQL的安全性 353
15.2 用户 354
15.2.1 创建SQL用户语法 355
15.2.2 创建SQL用户实例 356
15.2.3 删除SQL服务器用户 358
15.3 角色 359
15.3.1 角色的优点 359
15.3.2 创建数据库角色 360
15.3.3 创建数据库角色实例 361
15.3.4 删除数据库角色 362
15.4 权限 364
15.4.1 权限的授予语法 364
15.4.2 权限授予的实例 368
15.4.3 权限的撤销语法 370
15.4.4 权限的撤销实例 372
15.5 练习题 374
15.5.1 选择 374
15.5.2 填空 374
15.5.3 简答 375
15.5.4 上机 375