第1章 数据库基础 1
1.1数据库基础知识 2
几个数据库应用案例 2
相关数据库的名词 2
计算机数据管理 3
数据库系统的组成 4
数据库系统的特点 5
1.2数据库发展史 6
第一代数据库 6
第二代数据库 7
第三代数据库 7
1.3当今流行的数据库管理系统简介 7
第2章 设置SQL语句执行的环境 9
2.1在Access 2003中执行SQL 10
Access 2003的安装与启动 10
通过Access的图形界面创建 10
数据库 10
在Access中执行SQL语句 11
2.2在SQL Server中执行SQL 13
SQL Server 2000的安装 13
使用企业管理器创建数据库 13
使用查询分析器执行SQL语句 14
2.3在Oracle 10g中执行SQL语句 15
安装Oracle 10g 15
使用SQL*Plus执行SQL语句 16
2.4执行SQL脚本文件 19
SQL脚本文件 19
在SQL Server的查询分析器中执行脚本文件 20
在Oracle的SQL*Plus中执行脚本文件 21
第3章 SQL语言基础 23
3.1 SQL概述 24
SQL的历史 24
SQL的特点 24
SQL的功能 25
3.2 SQL语言的组成 25
3.3探索SQL环境 27
了解SQL执行环境 27
了解SQL数据库的层次结构 27
在SQL环境中命名对象 28
第4章 数据表 29
4.1数据类型 30
字符型数据 30
数字型数据 30
日期时间数据 30
二进制数据 31
图片、声音、视频数据 31
自定义数据类型 31
Access中的数据类型 31
MySQL中的数据类型 33
SQL Server中的数据类型 35
Oracle中的数据类型 37
4.2数据表基础 38
记录和字段 38
表结构 39
4.3表逻辑设计 39
E-R模型图 39
规范化与范式 41
4.4表的创建(CREATE TABLE) 42
使用CREATE TABLE语句创建表 42
创建带有主键的表 43
4.5表结构的修改(ALTER TABLE) 44
ALTER TABLE语句格式 44
增加新字段 45
增加带有默认值的新字段 46
修改字段的类型和宽度 47
删除字段 48
删除带有默认值的字段 49
更改主键 50
4.6表的删除、截断与重命名 51
删除表 51
截断表 51
重命名表 51
4.7创建与删除数据库 52
创建数据库 52
删除数据库 53
创建本书使用的数据表 53
第5章 索引 57
5.1索引基础 58
使用索引的原因 58
索引的种类 58
5.2索引的创建和使用 59
创建索引前应当注意的内容 59
创建索引的SQL语句 59
创建和使用非聚簇索引 60
创建和使用唯一索引 62
5.3索引的删除 63
第6章 查询数据——SELECT语句 65
6.1 SELECT语句的组成结构 66
最基本的语法格式 66
带有主要子句的语法格式 67
SELECT各子句的执行顺序 67
关于SELECT语句的一些说明 68
6.2查询数据 68
查询单字段的方法 68
去除重复信息——DISTINCT 69
查询多字段 69
查询所有字段 70
根据现有字段值计算新字段值 71
命名新列(别名)——AS 72
将查询结果保存为新表 73
连接字段 74
6.3排序数据 76
按单字段排序 76
设置排序方向 77
按多字段排序 77
按字段位置排序 78
第7章 条件查询 79
7.1条件表达式 80
指针与字段变量的概念 80
条件表达式 80
7.2使用WHERE关键字设置查询条件 83
WHERE子句用法 83
查询数值数据 84
查询字符型数据 85
查询日期数据 87
按范围查询数据(BETWEEN) 88
查询空值 89
7.3排序条件查询的结果 90
7.4 TOP与ROWNUM的使用 90
第8章 高级条件查询 93
8.1组合WHERE子句 94
AND运算符 94
OR运算符 95
AND与OR的优先顺序问题 96
8.2使用IN运算符 97
使用IN运算符 97
使用IN运算符的优点 99
8.3 NOT运算符 100
8.4实现模糊查询 102
LIKE运算符 102
“%”通配符 103
使用“%”通配符查询日期型数据 105
“_”通配符 106
“[]”通配符 108
SQL Server、Access和Oracle中的通配符比较 109
定义转义字符 109
第9章 SQL函数的使用 111
9.1 SQL函数的说明 112
9.2 SQL Server的函数 112
类型转换函数 112
日期函数 115
数学函数 118
字符函数 119
9.3 Oracle的函数 123
类型转换函数 123
日期函数 127
数值函数 130
字符函数 131
9.4将NULL更改为其他值的函数 132
SQL Server的ISNULL函数 132
Oracle的NVL函数 133
9.5 IF…ELSE逻辑函数 133
DECODE函数 133
CASE函数 134
第10章 聚合函数与分组数据 137
10.1聚合函数 138
使用COUNT函数求记录个数 138
使用SUM函数求某字段的和 140
使用AVG函数求某字段的平均值 141
使用MAX、 MIN函数求最大、最小值 142
统计汇总相异值(不同值)记录 143
聚合函数对NULL值的处理 144
10.2数据分组 146
将表内容按列分组 146
聚合函数与分组配合使用 147
查询数据的直方图 148
排序分组结果 149
反转查询结果 149
使用HAVING子句设置分组查询条件 151
HAVING子句与WHERE子句的区别 151
第11章 多表连接查询 153
11.1将数据存储在多个不同表的原因 154
11.2范式 155
11.3连接查询 156
连接两表的方法 156
使用笛卡儿积解决录入难题 158
使用两表连接查询数据 161
多表连接查询 162
使用表别名简化语句 163
使用INNER JOIN连接查询 164
11.4高级连接查询 165
自连接查询 165
内连接查询 168
外连接查询 169
交叉连接查询 172
连接查询中使用聚合函数 174
11.5组合查询 176
使用组合查询 176
使用UNION的规则 178
使用UNION解决不支持全外连接的问题 179
使用UNION得到复杂的统计汇总样式 180
排序组合查询的结果 180
第12章 子查询 185
12.1返回单值的子查询 186
使用返回单值的子查询 186
子查询与聚合函数的配合使用 187
12.2返回一列值的子查询 189
使用IN的子查询 190
使用NOT IN的子查询 191
12.3相关子查询 192
第13章 视图 195
13.1视图基础 196
视图引例 196
使用视图的原因以及注意问题 198
视图的规则和限制 199
13.2视图的创建 200
创建视图的SQL语句 200
利用视图提高数据安全性 202
利用视图得到汇总数据 203
利用视图简化计算字段的使用 204
利用视图简化多表连接 206
13.3视图的删除 207
第14章 插入数据 209
14.1直接向表插入数据 210
插入完整的行 210
向日期时间型字段插入数据 211
将数据插入到指定字段 212
将查询结果插入表 214
INSERT SELECT与SELECTINTO的区别 215
14.2通过视图插入数据 216
通过视图插入数据 216
使用带有WITH CHECK OPTION选项的视图 218
第15章 更新和删除数据 221
15.1更新表中的数据 222
更新单个字段的数据 222
更新多个字段的数据 223
使用子查询更新数据 224
使用表连接更新数据 225
使用UPDATE语句删除指定字段的数据 225
15.2删除表中的数据 227
使用DELETE语句删除指定记录 227
在DELETE语句中使用多表连接 228
使用DELETE语句删除所有记录 230
使用TRUNCATE语句删除所有记录 230
15.3通过视图更新表 231
不能用于更新的视图 231
通过视图更新表数据 232
通过视图删除表数据 233
第16章 管理数据库的安全 235
16.1用户 236
创建用户 236
修改用户 237
为用户授予CREATE SESSION权限 238
为用户授予SELECT权限 239
为用户授予INSERT、UPDATE和DELETE权限 241
为用户授予系统权限 244
为所有用户授予权限 245
查看用户拥有的权限 246
取消用户的指定权限 247
删除用户 247
16.2角色 247
角色的概念 247
创建角色——CREATE ROLE 248
为角色授权——GRANT 249
将角色授予用户——GRANT 250
查看角色的权限 252
取消角色——REVOKE 253
删除角色——DROP ROLE 253
Oracle中系统预定义的角色 253
16.3 SQL Server安全管理 254
SQL Server的安全认证模式 254
向SQL Server添加安全账户 256
从SQL Server中删除安全账户 259
SQL Server权限管理 260
SQL Server角色管理 263
第17章 完整性控制 267
17.1了解完整性约束 268
数据的完整性 268
完整性约束的类型 268
17.2与表有关的约束 269
字段约束与表约束的创建 269
非空约束——NOT NULL 270
唯一约束——UNIQUE 271
主键约束——PRIMARY KEY 274
外键约束——FOREIGN KEY 276
校验约束——CHECK 278
17.3扩展外键约束的内容 280
引用完整性检查 280
MATCH子句 282
17.4扩展校验约束的内容 284
定义断言 284
创建域和域约束 285
17.5 SQL Server中的完整性控制 286
创建规则(Rule) 286
规则的绑定与松绑 287
创建默认值(Default) 289
默认值的绑定与松绑 291
第18章 存储过程和函数 295
18.1存储过程简介 296
存储过程基础 296
存储过程的优点 297
18.2在SQL Server中创建和使用存储过程 297
SQL Server的系统存储过程 297
创建存储过程的语法 298
调用语句EXECUTE的语法 300
创建简单存储过程 300
创建带输入参数的存储过程 301
给输入参数设置默认值 302
创建带输出参数的存储过程 303
创建有多条SQL语句的存储过程 304
删除存储过程 305
18.3在SQL Server中创建和使用函数 307
标量函数 307
表值函数 308
删除用户定义函数 311
18.4几个系统存储过程的使用 311
使用sp_rename重命名对象 311
使用sp_depends显示引用对象 311
使用sp_help显示对象信息 312
使用sp_helptext显示对象的源码 312
18.5 Oracle中的存储过程和函数 313
在Oracle中使用存储过程 313
在Oracle中使用函数 314
在Oracle中使用user_source获取信息 315
第19章 SQL触发器 317
19.1 SQL触发器基础 318
19.2在SQL Server中创建和使用触发器 318
创建触发器的语法 318
使用INSERT触发器 320
使用DELETE触发器 321
使用UPDATE触发器 323
使用INSTEAD OF触发器 325
使用条件插入触发器 326
删除触发器 329
19.3在Oracle中创建和使用触发器 329
创建触发器的语法 329
行级触发器 330
语句级触发器 331
判断所执行的数据修改操作 332
系统触发器 332
追踪数据库启动与关闭信息 333
追踪用户DDL操作信息 335
禁用和删除触发器 338
从user_triggers中查询触发器信息 339
第20章 控制流语句 341
20.1 Transact_SQL的控制流语句 342
BEGIN…END语句 342
IF…ELSE语句 342
WHILE语句 343
BREAK命令 344
CONTINUE命令 344
WAITFOR语句 345
20.2 PL/SQL的控制流语句 345
IF…THEN…ELSE语句 346
IF…THEN…ELSIF语句 346
LOOP语句 346
WHILE语句 347
FOR语句 347
20.3控制流语句的几个应用 348
判断数据库对象是否存在 348
向日志表循环插入日期数据 351
使用游标和循环提取数据 353
第21章 事务处理 357
21.1事务基础 358
事务的概念 358
事务的案例 358
事务的ACID特性 359
21.2控制事务处理 359
开始事务处理 359
使用ROLLBACK撤销事务 360
使用COMMIT提交事务 362
根据判断提交或撤销事务 364
Oracle的语句级事务处理 366
使用保存点 367
21.3并发事务 369
并发事务 369
事务锁 371
事务隔离级别 371
第22章 Visual Basic中使用SQL语句 373
22.1 ADO简介 374
ADO基础知识 374
ADO的优点 374
ADO的核心对象 375
22.2连接数据库 375
在工程中引用ADO 375
连接Access数据库 376
连接SQL Server和Oracle数据库 377
连接ODBC数据源 379
22.3执行SQL语句操作数据库 381
使用Connection对象执行CREATE TABLE语句 381
使用Connection对象执行INSERT语句 384
使用Connection对象执行UPDATE语句 385
使用Connection对象执行DELETE语句 385
使用RecordSet对象执行Select语句 386
第23章 Visual C++中使用SQL语句 389
23.1在项目中引用ADO 390
23.2连接数据库 391
连接SQL Server数据库 391
连接Access和Oracle数据库 393
连接ODBC数据源 395
23.3执行SQL语句操作数据库 395
使用Recordset对象执行CREATE TABLE语句 395
使用Connection对象执行INSERT语句 399
使用Connection对象执行UPDATE语句 401
使用Connection对象执行DELETE语句 403
使用RecordSet对象执行Select语句 404
第24章 Visual C#中使用SQL语句 409
24.1连接数据库 410
在项目中添加引用语句 410
连接SQL Server数据库 410
连接Access和Oracle数据库 412
24.2执行SQL语句操作数据库 415
使用SqlCommand对象执行CREATETABLE语句 415
使用SqlCommand对象执行INSERT语句 418
使用SqlCommand对象执行UPDATE语句 419
使用SqlCommand对象执行DELETE语句 421
使用SqlCommand对象执行Select语句 423