1.1 SQL历史简介 1
第1章 SQL概述 1
1.2 数据库历史简介 2
1.3 SQL语句的结构 4
1.4 SQL的功能与特性 6
1.5 常用的SQL数据库 7
1.6 开放型数据库连接(ODBC) 8
1.7 上机实验 8
1.8 思考练习 10
1.8.1 填空题 10
1.8.2 选择题 11
1.8.3 问答题 11
2.1 表名和列名 12
2.1.1 表名 12
第2章 SQL基础 12
2.1.2 列名 13
2.2 常量 14
2.2.1 数字常量 14
2.2.2 字符串常量 14
2.2.3 时间和日期常量 15
2.2.4 符号常量 15
2.3 数据类型 16
2.3.1 数字数据类型 16
2.3.2 字符串数据类型 17
2.3.3 日期时间数据类型 17
2.3.4 特殊数据类型 18
2.4 表达式 19
2.5 内置函数 20
2.6 丢失数据(NULL值) 21
2.7 SQL语句 22
2.8 上机实验 23
2.9 思考练习 25
2.9.1 填空题 25
2.9.2 选择题 25
2.9.3 问答题 25
第3章 创建和维护数据库 26
3.1 数据定义语言 26
3.2 创建数据库 26
3.3 创建表 28
3.4 别名和属性 30
3.5 索引 31
3.6 管理数据库和对象 38
3.6.1 修改数据库 38
3.6.2 修改表 41
3.6.4 删除表 44
3.6.3 删除数据库 44
3.6.5 删除索引 46
3.7 上机实验 47
3.8 思考练习 54
3.8.1 填空题 54
3.8.2 选择题 54
3.8.3 问答题 54
第4章 数据处理语句 55
4.1 数据处理语句简介 55
4.2 添加新记录 55
4.2.1 使用INSERT...VALUES语句添加记录 56
4.2.2 使用INSERT...SELECT语句添加记录 59
4.2.3 表间数据复制 61
4.3.1 指定更新的列和新值 62
4.3 修改记录 62
4.3.2 指定更新的条件(嵌套更新) 65
4.4 删除数据 66
4.4.1 删除记录 66
4.4.2 整表删除记录 68
4.5 上机实验 69
4.6 思考练习 72
4.6.1 填空题 72
4.6.2 选择题 72
4.6.3 问答题 72
第5章 数据检索 73
5.1 SELECT语句概述 73
5.2 SELECT子句 74
5.2.1 选择所有的列 75
5.2.2 选择所需的列 76
5.2.3 选择某个列中的相异值 78
5.2.4 别名的使用 79
5.2.5 使用数字和表达式 81
5.2.6 使用函数进行查询 84
5.3 FROM子句 90
5.4 过滤数据 91
5.4.1 比较运算符 91
5.4.2 逻辑运算符 93
5.4.3 IN子句 98
5.4.4 BETWEEN子句 100
5.4.5 LIKE子句 102
5.4.6 等号、IN、LIKE三者的比较 108
5.4.7 空值的处理 109
5.5 ORDER BY子句 110
5.5.1 升序排序和降序排序 112
5.5.2 使用表达式排序 113
5.5.3 多级排序 114
5.6 GROUP BY和HAVING子句 115
5.6.1 GROUP BY子句 115
5.6.2 多次分组 116
5.6.3 HAVING子句 118
5.7 上机实验 119
5.8 思考练习 123
5.8.1 填空题 123
5.8.2 选择题 123
5.8.3 问答题 123
第6章 多表连接查询 124
6.1 传统的连接语法 124
6.2 SQL连接语法 126
6.3 如何处理连接 129
6.4 内连接 131
6.4.1 等值连接 132
6.4.2 不等连接 133
6.4.3 自然连接 134
6.5 外连接 135
6.5.1 左外连接 135
6.5.2 右外连接 136
6.5.3 全外连接 137
6.6 自连接 138
6.7 交叉连接 140
6.8 集合查询 141
6.8.1 UNOIN运算 141
6.8.2 INTERSECT运算 147
6.8.3 MINUS运算 148
6.9 上机实验 149
6.10.1 填空题 153
6.10.2 选择题 153
6.10.3 问答题 153
6.10 思考练习 153
第7章 子查询 154
7.1 子查询概述 154
7.2 子查询与连接 157
7.3 子查询的类型 159
7.3.1 相关子查询 159
7.3.2 无关子查询 161
7.4 单行子查询 163
7.4.1 WHERE子句中的单行子查询 164
7.4.2 SELECT子句中的单行子查询 165
7.4.3 HAVING子句中的单行子查询 169
7.6 多行子查询 171
7.5 多列子查询 171
7.7 嵌套子查询 182
7.8 上机实验 186
7.9 思考练习 189
7.9.1 填空题 189
7.9.2 选择题 189
7.9.3 问答题 189
第8章 数据完整性 190
8.1 完整性的概念 190
8.2 规则 191
8.3 check约束 193
8.4 unique约束 196
8.5 not null约束 199
8.6 primary key约束 201
8.7 默认值DEFAULT 203
8.8 上机实验 204
8.9 思考练习 206
8.9.1 填空题 206
8.9.2 选择题 207
8.9.3 问答题 207
第9章 事务处理 208
9.1 什么是事务 208
9.2 事务模式 210
9.3 事务的COMMIT和ROLLBACK 210
9.4 事务隔离级别 211
9.5 开始事务 212
9.6 使用事务保存点 214
9.7 终止事务 216
9.7.1 提交事务 216
9.7.2 回滚(撤销)事务 218
9.8 锁定 219
9.8.1 锁定模式 219
9.8.2 处理死锁 220
9.9 上机实验 221
9.10 思考练习 223
9.10.1 填空题 223
9.10.2 选择题 223
9.10.3 问答题 224
第10章 视图 225
10.1 视图概述 225
10.2 视图的处理过程 226
10.3 视图的优点和缺点 226
10.4 创建视图 228
10.4.1 创建简单视图 228
10.4.2 创建列的别名 232
10.4.3 使用连接的视图 236
10.4.4 使用子查询的视图 239
10.5 修改视图 240
10.6 删除视图 242
10.7 通过视图管理数据 243
10.7.1 通过视图插入数据 243
10.7.2 通过视图更新数据 247
10.7.3 通过视图删除数据 249
10.8 查询视图信息 250
10.9 上机实验 251
10.10 思考练习 254
10.10.1 填空题 254
10.10.2 选择题 254
10.10.3 问答题 254
11.1 了解SQL触发器 255
第11章 使用SQL触发器 255
11.2 创建SQL触发器 256
11.3 创建Insert触发器 261
11.4 创建Update触发器 262
11.5 创建Delete触发器 263
11.6 嵌套触发器和递归触发器 264
11.7 上机实验 265
11.8 思考练习 268
11.8.1 填空题 268
11.8.2 选择题 269
11.8.3 问答题 269
第12章 使用SQL游标 270
12.1 游标概述 270
12.2 声明游标 271
12.3 打开和关闭游标 276
12.4 检索游标返回的数据(提取数据) 277
12.5 使用定位UPDATE和DELETE语句 280
12.6 上机实验 282
12.7 思考练习 284
12.7.1 填空题 284
12.7.2 选择题 284
12.7.3 问答题 284
第13章 SQL的安全性 285
13.1 SQL安全概述 285
13.2 使用GRANT和REVOKE 288
13.2.1 授予权限或角色 288
13.2.2 撤销权限 297
13.3 视图与SQL安全 300
13.4 上机实验 302
13.5.2 选择题 303
13.5.3 问答题 303
13.5 思考练习 303
13.5.1 填空题 303
第14章 优化SQL语句以提高性能 304
14.1 数据库性能 304
14.2 提高SQL语句的可读性 308
14.3 优化索引 309
14.4 查询优化 309
14.5 动态SQL 313
14.6 上机实验 316
14.7 思考练习 318
14.7.1 填空题 318
14.7.2 选择题 318
14.7.3 问答题 318