资源介绍
目录1
译者的话 14
第一周概貌 16
从这里开始 16
第一天SQL 简介 17
SQL 简史 17
数据库简史 17
设计数据库的结构21
SQL 总览23
流行的SQL 开发工具 24
SQL 在编程中的应用 27
第二天查询— — SELECT 语句的使用 30
目标 30
背景 30
一般的语法规则 30
你的第一个查询 33
总结 37
问与答 38
校练场 38
练习 39
第三天表达式条件语句与运算 40
第四天函数对数据的进一步处理 60
目标 60
汇总函数 60
COUNT61
SUM 61
AVG 63
MAX 63
MIN 64
VARIANCE65
STDDEV66
日期/时间函数66
ADD_MONTHS 67
LAST_DAY68
MONTHS_BETWEEN 69
NEW_TIME70
NEXT_DAY71
SYSDATE72
数学函数 72
ABS 73
CEIL 和FLOOR 73
COS COSH SIN SINH TAN TANH 73
EXP 75
LN and LOG75
MOD 76
POWER77
SIGN 77
SQRT 78
字符函数 79
CHR 79
CONCAT 79
INITCAP80
LOWER 和UPPER 81
LPAD 与RPAD 82
LTRIM 与RTRIM 83
REPLACE 84
SUBSTR85
TRANSLATE88
INSTR 88
LENGTH89
转换函数 89
TO_CHAR90
TO_NUMBER91
其它函数 91
GREATEST 与LEAST 91
USER 92
总结 92
问与答 93
校练场 93
练习 94
第五天SQL 中的子句95
目标 95
WHERE 子句96
STARTING WITH子句 98
ORDER BY 子句99
GROUP BY 子句104
HAVING 子句109
子句的综合应用112
总结117
问与答117
校练场117
练习118
第六天表的联合119
介绍119
在一个SELECT 语句中使用多个表119
正确地找到列123
等值联合124
不等值联合129
外部联合与内部联合130
表的自我联合132
总结134
问与答134
校练场134
练习135
第七天子查询内嵌的SQL 子句136
目标136
建立一个子查询136
在子查询中使用汇总函数140
子查询的嵌套141
相关子查询144
EXISTS ANY ALL 的使用147
总结151
问与答151
校练场152
练习153
第一周回顾154
预览154
第二周概貌155
这一周都讲些什么155
第八天操作数据156
目标156
数据操作语句156
插入语句157
INSERT VALUES 语句157
INSERT SELECT 语句161
UPDATE语句163
DELETE 语句166
从外部数据源中导入和导出数据169
Microsoft Access 170
Microsoft and Sybase SQL Server 171
Personal Oracle7171
总结172
问与答172
校练场173
练习173
第九天创建和操作表174
目标174
CREATE DATABASE 语句174
建立数据库时的选项175
设计数据库176
建立数据字典176
建立关键字段177
CREATE TABLE 语句178
表名179
FIRST NAME179
空值属性180
唯一属性181
表的存储与尺寸的调整183
用一个已经存在的表来建表184
ALTER TABLE 语句185
DROP TABLE 语句186
DROP DATABASE语句187
总结188
问与答188
校练场189
练习190
第10 天 创建视图和索引191
目标191
使用视图192
列的重命名196
SQL 对视图的处理过程197
在SELECT 语句使用约束201
在视图中修改数据201
在视图中修改数据的几个问题203
通用应用程序的视图204
删除视图语句207
使用索引207
什么是索引207
使用索引的技巧212
对更多的字段进行索引212
在创建索引时使用UNIQUE 关键字214
索引与归并216
群集簇的使用217
总结218
问与答219
校练场219
练习220
第11 天事务处理控制221
目标221
事务控制221
银行应用程序222
开始事务处理223
结束事务处理225
取消事务处理228
在事务中使用保存点231
总结234
问与答234
校练场235
练习235
第12 天数据库安全236
前提数据库管理员236
流行的数据库产品与安全237
如何让一个数据库变得安全237
Personal Oracle7 与安全238
创建用户238
创建角色240
用户权限242
为安全的目的而使用视图247
总结251
问与答252
校练场252
练习253
第13 天 高级SQL254
目标254
临时表254
Title 257
游标259
创建游标260
打开游标260
使用游标来进行翻阅261
测试游标的状态262
关闭游标263
游标的适用范围264
创建和使用存贮过程265
在存贮过程中使用参数267
删除一个存贮过程269
存贮过程的嵌套270
设计和使用触发机制272
触发机制与事务处理273
使用触发机制时的限制275
触发机制的嵌套275
在选择语句中使用更新和删除275
在执行前测试选择语句276
嵌入型SQL277
静态SQL 与动态SQL277
使用SQL 来编程279
总结280
问与答280
校练场280
练习281
第14 天动态使用SQL 282
目标282
快速入门282
ODBC 282
Personal Oracle 7283
InterBase SQL ISQL 283
Visual C++ 284
Delphi284
设置284
创建数据库285
使用MS QUERY 来完成链接290
将VISUAL C++与SQL 结合使用292
将DELPHI 与SQL 结合使用296
总结302
问与答303
校练场303
练习303
第二周回顾304
第三周概貌305
应用你对SQL 的知识305
第15 天对SQL 语句优化以提高其性能306
目标306
让你的SQL 语句更易读307
全表扫描308
加入一个新的索引309
在查询中各个元素的布局309
过程311
避免使用OR311
OLAP 与OLTP 的比较313
OLTP 的调试313
OLAP 的调试314
批量载入与事务处理进程314
删除索引以优化数据的载入316
经常使用COMMIT 来让DBA 走开316
在动态环境中重新生成表和索引317
数据库的调整319
性能的障碍322
内置的调整工具323
总结323
问与答324
校练场324
练习324
第16 天用视图从数据字典中获得信息326
目标326
数据字典简介326
用户的数据字典327
数据字典中的内容327
Oracle 的数据字典328
Sybase 的数据字典328
ORACLE 数据字典的内部结构328
用户视图328
系统数据库管理员视图336
数据库对象339
数据库的生长343
动态执行视图347
总结349
问与答349
校练场350
练习350
第17 天使用SQL 来生成SQL 语句351
目标351
使用SQL 来生成SQL 语句的目的351
几个SQL*PLUS 命令352
SET ECHO ON/OFF353
SET FEEDBACK ON/OFF353
SET HEADING ON/OFF 353
SPOOL FILENAME/OFF353
START FILENAME354
ED FILENAME354
计算所有的表中的行数354
为多个用户赋予系统权限359
将你的表的权限赋予其它的用户361
在载入数据时解除对数的约束363
一次创建多个同义字364
为你的表创建视图368
在一个计划中清除其所有的表的内容369
使用SQL 来生成SHELL 脚本371
再建表和索引372
总结373
问与答373
校练场373
练习374
第18 天PL/SQL 简介376
目标376
入门376
在PL/SQL 中的数据类型377
字符串类型377
数值数据类型378
二进制数据类型378
日期数据类型378
逻辑数据类型378
ROWID379
PL/SQL 块的结构379
注释380
DECLARE 部分380
变量声明380
常量定义381
指针定义381
%TYPE 属性382
%ROWTYPE 属性382
%ROWCOUNT 属性383
Procdure 部分383
BEGIN … … END383
指针控制命令384
条件语句386
LOOPS 循环387
EXCEPTION 部分390
激活EXCEPTION 异常390
异常的处理391
将输入返回给用户392
在PL/SQL 中的事务控制393
让所有的事在一起工作394
示例表及数据394
一个简单的PL/SQL 语句块395
又一个程序398
存储过程包和触发机制403
总结406
问与答407
校练场407
练习407
第19 天TRANSACT-SQL 简介408
目标408
TRANSACT-SQL 概貌408
对ANSI SQL 的扩展408
谁需要使用TRANSACT-SQL409
TRANSACT-SQL 的基本组件409
数据类型409
使用TRANSACT-SQL 来访问数据库411
BASEBALL 数据库411
定义局部变量414
定义全局变量414
使用变量415
PRINT 命令417
流控制417
BEGIN … … END 语句418
IF … … ELSE 语句418
EXIST 条件421
WHILE 循环422
使用WHILE 循环在表中翻阅424
TRANSACT-SQL 中的通配符426
使用COMPUTE 来生成摘要报告426
日期转换427
SQL SERVER 的诊断工具— — SET 命令427
总结428
问与答428
校练场429
练习429
第20 天SQL*PLUS 430
目标430
简介430
SQL*PLUS 缓存430
DESCRIBE 命令435
SHOW 命令436
文件命令438
SAVE GET EDIT 命令438
运行一个文件439
查询的假脱机输出440
SET 命令442
LOGINSQL 文件445
CLEAR 命令446
将你的输出格式化446
TTITLE 与BTITLE446
格式化列COLUMN HEADING FORMAT 447
报表与分类汇总449
BREAK ON449
COMPUTE450
在SQL*PLUS 中使用变量453
DEFINE 454
ACCEPT 455
NEW_VALUE457
DUAL 表458
DECODE 函数459
日期转换462
运行一系列的SQL 文件465
在你的SQL 脚本中加入注释466
高级报表467
总结469
问与答469
校练场469
练习470
第21 天常见的SQL 错误及解决方法471
目标471
介绍471
常见的错误471
Table or View Does Not Exist471
Invalid Username or Password 472
FROM Keyword Not Specified473
Group Function Is Not Allowed Here 474
Invalid Column Name475
Missing Keyword 475
Missing Left Parenthesis 476
Missing Right Parenthesis 477
Missing Comma478
Column Ambiguously Defined 478
Not Enough Arguments for Function480
Not Enough Values481
Integrity Constraint Violated--Parent Key Not Found 482
Oracle Not Available 483
Inserted Value Too Large for Column 483
TNS:listener Could Not Resolve SID Given in Connect Descriptor 484
Insufficient Privileges During Grants484
Escape Character in Your Statement--Invalid Character 485
Cannot Create Operating System File 485
Common Logical Mistakes485
Using Reserved Words in Your SQL statement 486
The Use of DISTINCT When Selecting Multiple Columns487
Dropping an Unqualified Table 487
The Use of Public Synonyms in a Multischema Database488
The Dreaded Cartesian Product 488
Failure to Enforce File System Structure Conventions 489
Allowing Large Tables to Take Default Storage Parameters489
Placing Objects in the System Tablespace490
Failure to Compress Large Backup Files 491
Failure to Budget System Resources 491
Preventing Problems with Your Data491
Searching for Duplicate Records in Your Database491
总结491
校练场492
练习492
第三周回顾494
附件A 在SQL 中的常见术语495
ALTER DATABASE495
ALTER USER495
BEGIN TRANSACTION 495
CLOSE CURSOR495
COMMIT TRANSACTION496
CREATE DATABASE496
CREATE INDEX496
CREATE PROCEDURE496
CREATE TABLE497
CREATE TRIGGER497
CREATE USER497
CREATE VIEW497
DEALLOCATE CURSOR498
DROP DATABASE498
DROP INDEX498
DROP PROCEDURE498
DROP TABLE498
DROP TRIGGER 499
DROP VIEW499
EXECUTE499
FETCH499
FROM499
GRANT500
GROUP BY500
HAVING500
INTERSECT500
ORDER BY500
ROLLBACK TRANSACTION 500
REVOKE500
SELECT501
SET TRANSACTION501
UNION501
WHERE501
*501
附件B 在第14 天中的C++源代码清单502
附件 C 第14 天中的Delphi 源代码清单521
附件D 参考内容524
书524
Developing Sybase Applications 524
Sybase Developer's Guide 524
Microsoft SQL Server 65 Unleashed, 2E 524
Teach Yourself Delphi in 21 Days 524
Delphi Developer's Guide 524
Delphi Programming Unleashed 525
Essential Oracle 72 525
Developing Personal Oracle7 for Windows 95 Applications 525
Teach Yourself C++ Programming in 21 Days 525
Teach Yourself Tansact-SQL in 21 Days 525
Teach Yourself PL/SQL in 21 Days 525
杂志526
DBMS526
Oracle Magazine526
SQL 的互联网资源526
附件E ACSLL 码表527
附件F 问题与练习答案533
第一天SQL 简介533
问题答案533
练习答案533
第二天查询— — SELECT 语句的使用533
问题答案533
练习答案534
第三天表达式条件语句与运算535
问题答案535
练习答案535
第四天函数对获得数据的进一步处理536
问题答案536
练习答案537
第五天SQL 中的子句538
问题答案538
练习答案538
第六天表的联接540
问题答案540
练习答案541
第7 天子查询内嵌的SELECT 语句542
问题答案542
练习答案544
第八天操作数据544
问题答案544
练习答案546
第九天创建和操作表546
问题答案546
练习答案548
第10 天 创建视图和索引549
问题答案549
练习答案550
第11 天事务处理控制550
问题答案550
练习答案551
第12 天数据库安全552
问题答案552
练习答案552
第13 天 高级SQL553
问题答案553
练习答案553
第14 天动态使用SQL 554
问题答案554
练习答案554
第15 天对SQL 语句优化以提高其性能555
问题答案555
练习答案555
第16 天用视图从数据字典中获得信息557
问题答案557
练习答案557
第17 天使用SQL 来生成SQL 语句558
问题答案558
练习答案560
第18 天PL/SQL 简介561
问题答案561
练习答案561
第19 天TRANSACT-SQL 简介562
问题答案562
练习答案562
第20 天SQL*PLUS 563
问题答案563
练习答案563
第21 天常见的SQL 错误及解决方法564
问题答案564
练习答案565