第一篇 1
本篇概要 1
目录 1
第1章 开始学习SQL 2
1.1 SQL历史简介 2
1.2数据库历史简介 2
1.3当今的数据库概述 6
1.4跨产品的语言 6
1.5 SQL总览 7
1.6几种较流行的SQL的实现版本 8
1.7开放数据库连接 9
1.8应用编程中的SQL 10
1.9小结 11
1.10问与答 11
1.11演练场 12
2.1 SQL的背景 13
2.2基本的查询语法 13
第2章 查询简介 13
2.3用SELECT及FROM建立数据检索块 14
2.4应用查询概念 15
2.5编写第一个查询 16
2.6选择不重复的数据 19
2.7小结 20
2.8问与答 20
2.9演练场 20
3.2在查询中放置条件 24
3.1使用查询表达式 24
第3章 表达式、条件和运算符 24
3.3学习使用运算符 26
3.4小结 53
3.5问与答 53
3.6演练场 54
第4章 利用内置函数生成数据 56
4.1合计函数 56
4.2 日期和时间函数 63
4.3算术函数 69
4.4用函数修正字符的显示外观 76
4.5转换函数 88
4.6其他函数 89
4.7 MySQL字符函数的补充示例 90
4.8 MySQL日期函数补充示例 93
4.9小结 95
4.10问与答 95
4.11演练场 95
第5章 SQL查询中的子句 98
5.1用WHERE子句指定查询条件 99
5.2 ORDER BY子句——把混乱变为有序 100
5.3 GROUP BY子句 107
5.4 HAVING子句 113
5.5子句的组合使用 117
5.6小结 121
5.7 问与答 121
5.8演练场 122
6.1在单个SELECT语句中连接多个表 124
第6章 连接表 124
6.2基于相等的连接 130
6.3不等连接 136
6.4外部连接和内部连接 137
6.5将表与自己连接:自连接 140
6.6小结 142
6.7问与答 142
6.8演练场 143
第7章 将子查询嵌入查询 146
7.1建立子查询 148
7.2在子查询中使用合计函数 153
7.3嵌套子查询 154
7.4参照外部表的相关子查询 157
7.5 使用EXISTS,ANY和ALL 159
7.6小结 163
7.7问与答 163
7.8演练场 164
第一篇回顾 166
本篇概要 167
第二篇 167
第8章 数据库规范化 168
8.1规范化数据库 168
8.2理解范式 169
8.3数据库规范化操作 172
8.4小结 174
8.5问与答 174
8.6演练场 175
第9章 创建和维护表 176
9.1 CREATE DATABASE语句 176
9.2用CREATE TABLE语句定义表 180
9.3用ALTER TABLE语句修改表的结构 187
9.4 DROP TABLE 语句 189
9.5 DROP DATABASE语句 189
9.6小结 190
9.7问与答 190
9.8演练场 191
10.1约束简介 193
第10章 数据完整性控制 193
10.2约束的种类 194
10.3约束管理 200
10.4小结 203
10.5问与答 204
10.6演练场 204
11.1数据处理语句简介 206
11.2用INSERT语句输入数据 206
第11章 数据处理 206
11.3用UPDATE语句修改现有数据 211
11.4用DELETE语句删除信息 214
11.5从外部数据源导入和导出数据 216
11.6小结 218
11.7问与答 219
11.8演练场 219
第12章 事务控制 221
12.1事务控制 221
12.2开始事务处理 223
12.3结束事务处理 224
12.4取消事务处理 226
12.5使用事务保存点 228
12.6小结 230
12.7问与答 230
12.8演练场 230
第13章 SQL中的日期与时间 232
13.1 日期与时间型数据的存储方式 232
13.2在查询中应用日期函数 234
13.3日期格式转换 239
13.4小结 243
13.5问与答 243
13.6演练场 244
第1 4章 创建视图 246
14.1视图简介 246
14.2使用视图 246
14.4问与答 259
14.5演练场 259
14.3小结 259
第二篇回顾 261
第三篇 263
本篇概要 263
第1 5章 在表上创建索引以提高性能 264
15.1使用索引 264
15.2小结 274
15.3问与答 274
15.4演练场 275
16.1提高SQL语句的可读性 276
第16章 优化SQL语句以提高性能 276
16.2避免全表扫描 277
16.3添加一个新索引 278
16.4查询中各成分的安排 278
16.5联机分析处理与联机事务处理 280
16.6成批载入与事务处理 281
16.7删除索引以优化数据的载入 283
16.8经常使用COMMIT以简化DBA的工作 283
16.9在动态环境中重建表和索引 284
16.10数据库的性能调节 285
16.11影响数据库性能的因素 287
16.12使用内置性能调节工具 288
16.13小结 288
16.14问与答 289
16.15演练场 289
第1 7章 数据库安全性 291
17.1数据库管理员须知 291
17.2流行的数据库产品及其安全性 291
17.3如何确保数据库的安全性 292
17.4 Personal Oracle及其安全性 293
17.5小结 304
17.6问与答 304
17.7演练场 305
第1 8章 数据字典 306
18.1数据字典简介 306
1 8.2标识数据字典的用户 306
1 8.3数据字典的内容 307
1 8.4对Oracle数据字典的剖析 308
18.7演练场 324
18.5小结 324
18.6问与答 324
第1 9章 存储过程、触发器和嵌入式SQL 326
19.1创建临时表 326
19.2使用游标 329
19.3创建与使用存储过程 333
19.4设计和使用触发器 337
19.5在实现之前测试SELECT语句 340
19.6嵌入式SQL 340
19.9问与答 342
19.7使用SQL行进行程序设计 342
19.8小结 342
19.10演练场 343
第20章 最新标准SQL3中的新对象 344
20.1 CREATE ROLE语句探讨 344
20.2创建触发器 346
20.3使用CREATE TYPE语句 347
20.5问与答 350
20.4小结 350
20.6演练场 351
第21章 用SQL产生SQL语句 352
21.1使用SQL产生SQL语句的目的 352
21.2几个SQL*Plus命令 353
21.3统计所有表中的行数 354
21.4给多个用户授予系统权限 357
21.5将自己表的权限授给其他用户 359
2 1.6为载入数据而禁用对表的约束 360
21.7在单个区域内创建大量同义词 361
2 1.8在表上创建视图 364
21.9截断某一用户的所有表 365
21.10用SQL产生Shell脚本 366
21.11重新设计表和索引 367
21.12实际应用产生SQL和其他概念 367
21.13小结 368
21.14问与答 368
21.15演练场 368
第三篇回顾 370
附加篇 371
本篇概要 371
第22章 SQL语句的调试 372
22.1常见的SQL错误 372
22.2常见的逻辑错误 381
22.3防止数据出现麻烦 385
22.4小结 385
22.6演练场 386
22.5问与答 386
第23章 创建复合SQL查询 388
23.1本章使用的表 388
23.2复合查询示例 390
23.3建立复合查询的技巧 400
23.4小结 401
23.5问与答 401
23.6演练场 401
24.2 SQL*Plus缓冲区 403
第24章 用Oracle的SQL*Plus生成满意的报表 403
24SQL*Plus简介 403
24.3用DESCRIBE命令查看表结构 406
24.4用SHOW命令显示系统设置 407
24.5用文件命令操作文件 408
24.6用SET命令定制工作环境 411
24.7使用LOGIN.SQL文件 414
24.8 用CLEAR命令清除SQL*Plus的设置 414
24.9格式化输出结果 415
24.10创建报表和分组合计 417
24.11在SQL*Plus中使用变量 420
24.12使用表DUAL 423
24.13 DECODE函数 424
24.14日期转换 426
24.15执行一系列SQL文件 428
24.16在SQL脚本中添加注释 429
24.17创建高级报表 429
24.18小结 430
24.20演练场 431
24.19问与答 431
第25章 Oracle PL/SQL简介 432
25.1 PL/SQL简介 432
25.2 PL/SQL中的数据类型 432
25.3 PL/SQL代码块的结构 434
25.4 DECLARE部分 434
25.5 PROCEDURE部分 436
25.6 EXCEPTION部分 440
25.7 PL/SQL中的事务控制 442
25.8综合运用所学知识 443
25.9使用存储过程、程序包和触发器 449
25.10小结 452
25.11问与答 452
25.12演练场 453
第26章Transact-SQL简介 454
26.1 Transact-SQL的概貌 454
26.2对ANSI SQL的扩展 454
26.3数据类型 455
26.4使用Transact-SQL访问数据库 456
26.5建立程序流程控制 461
26.6 Transact-SQL通配符 466
26.7用COMPUTE命令创建汇总报表 466
26.8 日期转换 466
26.9 SQLServer的诊断工具——SET命令 467
26.10小结 468
26.11问与答 468
26.12演练场 469
第27章 应用编程中的嵌入式SQL 470
27.1几种应用开发工具简介 470
27.2开始运行Oracle和InterBase 472
27.3创建数据库 472
27.4用Microsoft Query执行数据库连接 475
27.5 使用Visual C++和SQL 477
27.6使用Delphi和SQL 481
27.7使用Java和SQL 484
27.10演练场 486
27.8小结 486
27.9问与答 486
第28章 在基于UNIX的系统上使用MySQL 487
28.1 MySQL的管理 487
28.2 MySQL终端监视器程序 489
28.3 MySQL实用程序 493
28.4小结 493
28.5问与答 494
28.6演练场 494
附加篇回顾 495
附录A 答案 496
附录B 用来创建表的代码实例 540
附录C 给表输入数据的代码实例 547
附录D 用MySQL做练习 557
附录E 奖励的练习 559
附录F 常用SQL命令汇编 565
附录G ASCⅡ码表 570
附录H 相关资源 575