目录 1
第1章 关系数据库及SQL导论 1
1.1 数据库术语 2
1.1.1 数据 2
1.1.2 数据库及数据库管理系统 3
1.1.3 数据库系统 4
1.1.4 关系数据库及关系数据库管理系统 5
1.2 关系数据库设计概述 7
1.2.1 数据库设计过程 7
1.2.2 关系数据库规范化 8
1.3 关系表 9
1.3.1 实体模型 10
1.3.2 关系类型 11
1.4 关系操作 12
1.4.1 投影操作 12
1.4.2 选择操作 13
1.4.3 连接操作 13
1.5 SQL简介 14
1.5.1 SQL语法的分类 14
1.5.2 SQL语言的功能 15
1.5.4 SQL语言的执行类型 16
1.5.3 SQL语言的种类及结构 16
1.6 思考与练习 17
第2章 SQL环境 19
2.1 了解SQL环境 20
2.2 了解SQL目录 21
2.2.1 模式 22
2.2.2 模式对象 22
2.2.3 在SQL环境中命名对象 23
2.3.1 数据库概念 24
2.3 Oracle中的数据库和模式 24
2.3.2 数据库 25
2.3.3 模式 27
2.4 SQL Server中的数据库对象 29
2.4.1 表 30
2.4.2 视图 31
2.4.3 存储过程 31
2.4.4 触发器 32
2.4.5 其他数据库对象 32
2.5.1 复习题 33
2.5 思考与练习 33
2.5.2 上机练习 34
第3章 数据表 37
3.1 表的组成部分 38
3.1.1 数据存储在表中 38
3.1.2 表中的一行表示一个对象 39
3.1.3 表中的一列表示一类信息 39
3.1.4 单元是表的最小部分 40
3.1.5 每个单元只表示一条信息 40
3.2.1 SQL Server和Access中的表例子 41
3.1.6 使用主键列识别每一行 41
3.2 SQL环境中表例子 41
3.2.2 “销售管理系统”数据库 42
3.3 创建SQL表 44
3.4 定义数据类型 46
3.4.1 字符串数据类型 46
3.4.2 数字数据类型 48
3.4.3 日期数据类型 50
3.4.4 间隔数据类型 50
3.4.5 布尔数据类型 51
3.4.6 使用列的属性 52
8.2 内连接 1 53
3.5.2 指定列的默认值 54
3.5 自定义数据类型和默认值 54
3.5.1 自定义数据类型 54
3.6 修改和删除表 55
3.6.1 修改SQL表 55
3.6.2 删除SQL表 56
3.7 思考与练习 57
3.7.1 复习题 57
3.7.2 上机练习 58
第4章 SQL视图 60
4.1 了解视图 61
4.2 创建可更新视图 62
4.3 向数据库添加视图 64
4.3.1 创建视图 65
4.3.2 基于计算创建视图 68
4.4 修改数据库视图 69
4.4.1 修改视图定义 69
4.4.2 删除视图 71
4.5 通过视图修改数据 71
4.5.1 在视图上使用INSERT语句 71
4.5.2 在视图上使用UPDATE语句 73
4.5.3 在视图上使用DELETE语句 74
4.6 思考与练习 75
4.6.1 复习题 75
4.6.2 上机练习 76
第5章 常规数据查询 79
5.1 SELECT语句概述 80
5.2 使用SELECT子句 81
5.2.1 使用SELECT子句获取若干列 81
5.2.2 使用SELECT子句获取所有的列 85
5.2.3 使用SELECT语句获取列中的相异值 86
5.3 使用WHERE子句 87
5.3.1 在WHERE子句中使用比较运算符 88
5.3.2 在WHERE子句中使用逻辑运算符 89
5.3.3 在WHERE子句中使用IN条件 91
5.3.4 在WHERE子句中使用LIKE条件 93
5.3.5 在WHERE子句中使用IS NULL条件 95
5.4 使用ORDER BY子句 97
5.5 使用GROUP BY子句 99
5.6 使用HAVING子句 103
5.7.1 复习题 105
5.7 思考与练习 105
5.7.2 上机练习 106
第6章 操作SQL数据 108
6.1.1 使用INSERT语句 109
6.1 插入SQL数据 109
6.1.2 使用SELECT语句插入值 113
6.2 更新SQL数据 116
6.2.1 使用UPDATE修改数据 116
6.2.2 使用SELECT语句更新 118
6.3 删除SQL数据 119
6.4 思考与练习 121
6.4.1 复习题 121
6.4.2 上机练习 122
第7章 高级查询语句 124
7.1 限制查询范围 125
7.2 WHERE子句中的复合条件 130
7.2.1 在WHERE子句中使用复合条件 130
7.2.2 使用多个关键字 132
7.2.3 WHERE子句中复杂条件的标准形式 133
7.2.4 将复杂条件放入标准形式 135
7.3 在SELECT子句中使用常数值 136
7.4 DISTINCT和ALL 139
7.5.1 保存结果到表 140
7.5 保存查询结果 140
7.5.2 保存结果到视图 141
7.6 思考与练习 143
7.6.1 复习题 143
7.6.2 上机练习 145
第8章 连接多个数据表 147
8.1 连接简介 148
8.1.1 基本连接操作 148
8.1.2 使用相关名称 149
8.1.3 在多于两个表之间创建连接 150
8.1.4 含有JOIN关键字的连接查询 152
8.2.1 等值连接查询 153
8.2.2 非等值连接查询 155
8.2.3 自然连接查询 156
8.3 外连接 157
8.3.1 左外连接查询 157
8.3.2 右外连接查询 159
8.3.3 完全连接查询 160
8.4 联合查询 161
8.5 交叉连接和自连接 166
8.5.1 交叉连接 166
8.5.2 自连接 167
8.6 思考与练习 168
8.6.1 复习题 168
8.6.2 上机练习 169
第9章 使用子查询访问和修改数据 172
9.1.1 使用IN关键字 173
9.1 返回多行的子查询 173
9.1.2 使用EXISTS关键字 175
9.1.3 使用比较运算符 178
9.2 返回单值的子查询 180
9.3 使用相关子查询 182
9.4 使用嵌套子查询 184
9.5 使用子查询修改数据 186
9.5.1 使用子查询插入数据 186
9.5.2 使用子查询更新数据 187
9.5.3 使用子查询删除数据 188
9.6.1 复习题 189
9.6 思考与练习 189
9.6.2 上机练习 190
第10章 使用函数和表达式 193
10.1 行函数简介 194
10.1.1 行函数的定义 194
10.1.2 使用行函数的例子 196
10.2 行函数分类 197
10.2.1 数学函数 198
10.2.2 文本函数 200
10.2.3 日期函数 202
10.3.1 列函数简介 204
10.3 列函数 204
10.3.2 MAX函数和MIN函数 205
10.3.3 COUNT函数 207
10.3.4 SUM函数 208
10.3.5 使用AVG函数 209
10.4 表达式 210
10.4.1 数表达式 210
10.4.2 使用CASE表达式 213
10.4.3 使用CAST表达式 217
10.5 思考与练习 219
10.5.1 复习题 219
10.5.2 上机练习 220
第11章 数据完整性 224
11.1 了解约束 225
11.2 使用NOT NULL约束 226
11.3 使用UNIQUE约束 227
11.4 使用PRIMARY KEY约束 231
11.5 使用FOREIGN KEY约束 235
11.5.1 FOREIGN KEY基本语法 236
11.5.2 MATCH子句 240
11.5.3 〈referential triggered action〉子句 240
11.6 CHECK约束 241
11.6.1 在表约束和列约束中定义CHECK约束 242
11.6.2 定义断言 244
11.6.3 创建域和域约束 245
11.7 使用规则 246
11.7.1 创建规则 246
11.7.2 绑定规则 247
11.7.3 删除规则 249
11.8 思考与练习 250
11.8.1 复习题 250
11.8.2 上机练习 251
第12章 提高效率的索引 254
12.1 索引简介 255
12.1.1 索引的优点 255
12.1.2 创建索引的注意事项 256
12.2.1 B-Tree索引 257
12.2.2 聚集索引 259
12.2.3 非聚集索引 260
12.2.4 唯一索引和组合索引 261
12.2.5 其他索引类型 262
12.3 创建索引 263
12.3.1 复合索引 263
12.3.2 唯一索引和主键索引 265
12.3.3 聚集与非聚集索引 268
12.4 查看和删除索引 269
12.5 思考与练习 271
12.5.1 复习题 271
12.5.2 上机练习 272
第13章 T-SQL程序设计 275
13.2 常量及变量 276
13.2.1 常量 276
13.1 T-SQL简介 276
13.2.2 变量 278
13.3 运算符与表达式 281
13.3.1 算术运算符 281
13.3.2 赋值运算符 282
13.3.3 位运算符 283
13.3.4 比较运算符 284
13.3.5 逻辑运算符 284
13.3.6 连接运算符 285
13.3.7 一元运算符 286
13.3.8 运算符的优先级 286
13.4 SQL Server函数 287
13.4.1 数学函数 287
13.4.2 文本函数 290
13.4.3 日期函数 292
13.5 流程控制语句 293
13.5.1 IF...ELSE条件判断结构 293
13.5.2 BEGIN…END语句块 295
13.5.3 WHILE循环结构 296
13.5.4 RETURN语句 297
13.5.5 无条件转移GOTO 298
13.5.6 WAITFOR语句 299
13.5.7 RAISERROR 299
13.6 思考与练习 300
13.6.1 复习题 300
13.6.2 上机练习 302
第14章 SQL例程 304
14.1 了解SQL例程 305
14.1.1 SQL调用过程和函数 305
14.1.2 使用基本语法 306
14.2 创建SQL过程 310
14.3 使用参数的过程 312
14.3.1 使用输入参数 313
14.3.2 使用输出参数 316
14.4 使用变量的过程 319
14.5 SQL函数 321
14.6 思考与练习 323
14.6.1 复习题 323
14.6.2 上机练习 325
第15章 SQL触发器 327
15.1 触发器概述 328
15.2 创建触发器 329
15.2.1 普通触发器 330
15.2.2 Access触发器 331
15.3 创建INSERT触发器 332
15.4 创建UPDATE触发器 335
15.5 创建DELETE触发器 338
15.6 查看和删除触发器 341
15.7 思考与练习 343
15.7.1 复习题 343
15.7.2 上机练习 345
第16章 SQL游标 346
16.1 游标的概念 347
16.2 声明游标 348
16.2.1 游标的声明 349
16.2.2 建立游标声明 351
16.3 打开和关闭游标 353
16.4 检索游标返回的数据 354
16.5 定位UPDATE和DELETE语句 360
16.5.1 使用定位UPDATE语句 360
16.5.2 使用定位DELETE语句 362
16.6 思考与练习 363
16.6.1 复习题 363
16.6.2 上机练习 364
第17章 管理SQL事务和并发控制 367
17.1 了解SQL事务 368
17.1.1 SQL事务的特性 368
17.1.2 SQL事务处理机制 369
17.2 事务处理 370
17.2.1 开始事务 370
17.2.2 提交事务 371
17.2.3 回滚事务 372
17.2.4 建立存储点 372
17.3 事务模式 374
17.3.1 自动提交事务 375
17.3.2 显式事务 376
17.3.3 隐性事务 378
17.4 数据的锁定 379
17.4.1 并发问题 379
17.4.2 事务隔离级别 381
17.4.3 自定义事务隔离级别 382
17.4.4 锁模式 384
17.4.5 乐观锁和悲观锁 387
17.5 思考与练习 389
17.5.1 复习题 389
17.5.2 上机练习 391
第18章 数据库安全 393
18.1 SQL安全模式 394
18.1.1 SQL会话 394
18.1.2 访问数据库对象 396
18.2 数据安全性 397
18.2.1 用户身份和特定的用户 397
18.2.2 GRANT和REVOKE命令 399
18.2.3 安全性机制的视图 399
18.3 管理角色和权限 400
18.3.1 创建和删除角色 400
18.3.2 授予和取消权限 401
18.3.3 授予和取消角色 406
18.4 思考与练习 408
18.4.1 复习题 408
18.4.2 上机练习 409
答案 411
12.2 索引类型 657