第一篇\r\n\r\n本篇概要\r\n\r\n第1章 开始学习SQL语言\r\n1.1 SQL语言历史简介\r\n1.2 数据库历史简介\r\n1.2.1 Codd博士关于数据库模型的12条准则\r\n1.3 数据库结构设计\r\n1.3.1 当今的数据库概述\r\n1.4 跨产品语言\r\n1.4.1 早期的实现\r\n1.4.2 SQL和客户/服务器应用的开发\r\n1.5 SQL语言概述\r\n1.6 几种较流行的 SQL语言的实现\r\n1.6.1 Microsoft Access_\r\n1.6.2 Personal Oracle8\r\nl.6.3 Microsoft Query\r\nl.7 开放数据库连接(ODBC)\r\n1.8 应用程序编程中的SQL语言\r\n1.9 小结\r\n1.10 问与答\r\n1.11 工作室\r\n1.11.1 测验\r\n1.11.2 练习\r\n\r\n第2章 查询简介\r\n\r\n2.1 SQL语言的背景\r\n2.2 一般的句法格式\r\n2.3 用SELECT及FROM建立数据检索块\r\n2.4 示例\r\n2.5 第一个查询\r\n2.5.1 结束一个SQL语句\r\n2.5.2 改变列的顺序\r\n2.5.3 选择特定的列\r\n2.5.4 从不同表中选择数据\r\n2.6 使用区别(Distinction)查询\r\n2.7 小结\r\n2.8 问与答\r\n2.9 工作室\r\n2.9. 测验\r\n2.9.2 练习\r\n\r\n第3章 表达式、条件和操作符\r\n\r\n3.1 表达式\r\n3.2 条件\r\n3.2.1 WHERE子句\r\n3.3 操作符\r\n3.3.1 算术操作符\r\n3.3.2 比较操作符\r\n3.3.3 字符操作符\r\n3.3.4 逻辑操作符\r\n3.3.5 集合操作符\r\n3.3.6 其它操作符:IN和BETWEEN\r\n3.4 小结\r\n3.5 问与答\r\n3.6 工作室\r\n3.6.1 测验\r\n3.6.2 练习\r\n\r\n第4章 利用内置函数生成数据\r\n\r\n4.1 聚集函数\r\n4.1.1 COUNT函数\r\n4.1.2 SUM函数\r\n4.1.3 AVG函数\r\n4.1.4 MAX函数\r\n4.1.5 MIN函数\r\n4.1.6 VARIANCE函数\r\n4.1.7 STDDEV函数\r\n4.2 日期和时间函数\r\n4.2.1 ADD_MONTHS函数\r\n4.2.2 LAST_DAY函数\r\n4.2.3 MONTHS_BETWEEN函数\r\n4.2.4 NEW_TIME函数\r\n4.2.5 NEXT_DAY函数\r\n4.2.6 SYSDATE函数\r\n4.3 算术函数\r\n4.3.1 ABS函数\r\n4.3.2 CEIL和FLOOR函数\r\n4.3.3 COS、COSH、SIN、SINH、TAN、TANH函数\r\n4.3.4 EXP函数\r\n4.3.5 SLN和LOG函数\r\n4.3.6 MOD函数\r\n4.3.7 POWER函数\r\n4.3.8 SIGN函数\r\n4.3.9 SQRT函数\r\n4.4 字符函数\r\n4.4.1 CHR函数\r\n4.4.2 CONCAT函数\r\n4.4.3 INITCAP函数\r\n4.4.4 LOWER和UPPER函数\r\n4.4.5 LPAD和RPAD函数\r\n4.4.6 LTRIM和RTRIM函数\r\n4.4.7 REPLACE函数\r\n4.4.8 SUBSTR函数\r\n4.4.9 TRANSLATE函数\r\n4.4.10 INSTR函数\r\n4.4.11 LENGTH函数\r\n4.5 转换函数\r\n4.5.1 TO_CHAR函数\r\n4.5.2 TO_NUMBER函数\r\n4.6 其他函数\r\n4.6.1 GREATEST和LEAST函数\r\n4.6.2 USER函数\r\n4.7 小结\r\n4.8 问与答\r\n4.9 工作室\r\n4.9.1 测验\r\n4.9.2 练习\r\n第5章 SQL查询中的子句\r\n5.1 用WHERE子句指定查询条件\r\n5.2 STARTING WITH子句\r\n5.3 ORDER BY子句——把混乱变为有序\r\n5.4 GROUP BY子句\r\n5.5 HAVING子句\r\n5.6 复合子句\r\n5.6.1 大结局\r\n5.7 小结\r\n5.8 问与答\r\n5.9 工作室\r\n5.9.1 测验\r\n5.9.2 练习\r\n\r\n第6章 连接表\r\n\r\n6.1 在单个SELECT语句中的多重表\r\n6.1.1 交叉连接表\r\n6.1.2 寻找正确的列\r\n6.2 相等连接\r\n6.3 不等连接\r\n6.4 外部连接和内部连接\r\n6.5 将表与自己连接:自连接\r\n6.6 小结\r\n6.7 问与答\r\n6.8 工作室、\r\n6.8.1 测验\r\n6.8.2 练习\r\n\r\n第7章 子查询:嵌入式SELECT语句\r\n\r\n7.1 建立一个子查询\r\n7.2 在子查询中使用聚集函数\r\n7.3 嵌套子查询\r\n7.4 参照外部表的相关子查询\r\n7.5 使用EXISTS、ANY和ALL\r\n7.6 小结\r\n7.7 问与答\r\n7.8 工作室\r\n7.8.1 测验\r\n7.8.2 练习\r\n第一篇回顾\r\n\r\n第二篇\r\n\r\n本篇概要\r\n\r\n第8章 数据库规范化\r\n\r\n8.1 规范化数据库\r\n8.1.1 原始数据库\r\n8.1.2 数据库逻辑设计\r\n8.2 范式\r\n8.2.1 第一范式\r\n8.2.2 第二范式\r\n8.2.3 第三范式\r\n8.3 数据库规范化操作\r\n8.3.1 参照完整性\r\n8.3.2 数据库规范化的优点\r\n8.3.3 数据库规范化的缺点\r\n8.3.4 将数据库非规范化\r\n8.4 小结\r\n8.5 问与答\r\n8.6 工作室\r\n8.6.1 测验\r\n8.6.2 练习\r\n\r\n第9章 创建和维护表\r\n\r\n9.1 CREATE DATABASE语句\r\n9.1.1 CREATE DATABASE选项\r\n9.1.2 数据库设计\r\n9.1.3 创建数据字典\r\n9.1.4 创建关键字段\r\n9.2 CREATE TABLE语句\r\n9.2.1 表名\r\n9.2.2 字段名\r\n9.2.3 字段的数据类型\r\n9.2.4 表的存储和尺寸\r\n9.2.5 由一个现存的表创建表\r\n9.3 ALTER TABLE语句\r\n9.4 DROP TABLE语句\r\n9.5 OROP DATABASE语句\r\n9.6 小结\r\n9.7 问与答\r\n9.8 工作室\r\n9.8.1 测验\r\n9.8.2 练习\r\n\r\n第10章 数据完塑性控制\r\n\r\n10.1 约束简介\r\n10.1.1 数据完整性\r\n10.1.2 为什么使用约束\r\n10.2 约束的种类\r\n10.2.1 非空约束(NOT NULL)\r\n10.2.2 主键约束\r\n10.2.3 唯一约束\r\n10.2.4 外键约束\r\n10.2.5 检验约束\r\n10.3 约束管理\r\n10.3.1 约束的正确次序\r\n10.3.2 创建约束的正确方法\r\n10.3.3 Oracle参照完整性报告实例\r\n10.4 小结\r\n10.5 问与答\r\n10.6 工作室\r\n10.6.1 测验\r\n10.6.2 练习\r\n\r\n第11章 操作数据\r\n\r\n11.1 数据操作语句简介\r\n11.2 用INSERT语句输入数据\r\n11.2.1 用INSERT...VALUES语句输入一条记录\r\n11.2.2 插入NULL值(空值)\r\n11.2.3 插入唯一值\r\n11.2.4 用INSERT SELECT语句输入多条记录\r\n11.3 用UPDATE语句更新现有数据\r\n11.4 用DELETE语句删除信息\r\n11.5 从外部数据源输入和输出数据\r\n11.5.1 Microsoft Access\r\n11.5.2 Microsoft SQL Server\r\n11.5.3 Personal Oracle8\r\n11.6 小结\r\n11.7 问与答\r\n11.8 工作室\r\n11.8.1 测验\r\n11.8.2 练习\r\n\r\n第12章 事务控制\r\n\r\n12.1 事务控制\r\n12.1.1 银行应用\r\n12.2 开始一个事务\r\n12.3 结束一个事务\r\n12.4 撤销事务\r\n12.5 使用事务保存点(SAVEPOINT)\r\n12.6 小结\r\n12.7 问与答\r\n12.8 工作室\r\n12.8.1 测验\r\n12.8.2 练习\r\n\r\n\r\n第13章 SQL语言中的日期与时间\r\n\r\n13.1 如何存储日期与时间型数据\r\n13.1.1 ANSI标准的日期与时间型数据\r\n13.1.2 DATETIME元素\r\n13.1.3 特定数据类型的实现\r\n13.2 日期函数\r\n13.2.1 当前日期\r\n13.2.2时区\r\n13.2.3 在日期上增加时间\r\n13.2.4 日期相减\r\n13.2.5 比较日期和时间段\r\n13.2.6 其他的日期函数\r\n13.3 日期转换\r\n13.3.1 日期描述\r\n133.2 转换日期为字符串\r\n13.3.3 转换字符串为日期\r\n13.4 小结\r\n13.5 问与答\r\n13.6 工作室\r\n13.6.1 测验\r\n13.6.2 练习\r\n\r\n第14章 创建视图\r\n\r\n14.1 视图简介\r\n14.2 使用视图\r\n14.2.1 考察简单视图\r\n14.2.2 更改列名\r\n14.2.3 查看SQL视图处理过程\r\n14.2.4 使用 SELECT语句的限制\r\n14 2.5 在视图中修改数据\r\n14.2.6 与使用视图修改数据有关的问题\r\n14.2.7 视图的一般应用\r\n14.2.8 用DROP VIEW语句删除视图\r\n14.3 小结\r\n14.4 问与答\r\n14.5 工作室\r\n14.5.1 测验\r\n14.5.2 练习\r\n第二篇 回顾\r\n\r\n第三篇\r\n\r\n本篇概要\r\n\r\n第15章 在表上创建索引以提高数据库性能\r\n\r\n15.1 使用索引\r\n15.1.1 索引是什么\r\n15.1.2 索引技巧\r\n15.1.3 在多个字段上建立索引\r\n15.1.4 使用带有UNIQUE关键字的CREATE INDEX语句\r\n15.1.5 索引与连接\r\n15.1.6 使用聚簇(Cluster)\r\n15.2 小结\r\n15.3 问与答\r\n15.4 工作室\r\n15.4.1 测验\r\n15.4.2 练习\r\n\r\n第16章 优化SQL语句以提高性能\r\n\r\n16.1 提高SQL语句的可读性\r\n16.2 避免扫描整个表\r\n16.3 增加一个新索引\r\n16.4 查询中各成分的安排\r\n16.4.1 过程\r\n16.4.2 避免使用 OR\r\n16.5 联机分析处理(OLAP)与联机事务处理(OLTP)\r\n16.5.1 OLTP调整\r\n16.5.2 OLAP调整\r\n16.6 成批装入与事务处理\r\n16.7 通过删除索引优化数据装载\r\n16.8 经常提交数据——保证系统系统运行的关键\r\n16.9 在动态环境中重建表和索引\r\n16.10 调整数据库\r\n16.11 影响数据库性能的因素\r\n16.12 内置调整工具\r\n16.13 小结\r\n16.14 问与答\r\n16.15 工作室\r\n16.15.1期 测验\r\n16.15.2 练习\r\n\r\n第17章 数据库安全性\r\n\r\n17.1 数据库管理员须知\r\n17.2 流行的数据库产品及其安全性\r\n17.3 如何确保数据库的安全性\r\n174 Personal Oracle8和安全性\r\n17.4.1 创建用户\r\n17.4.2 创建角色(Role)\r\n17.4.3 用户特权\r\n17.4.4 用户访问视图\r\n17.4.5 用视图实现安全性\r\n17.4.6 使用同义词代替视图\r\n17.4.7 使用 WITH GRANT OPTION子句\r\n17.5 小结\r\n17.6 问与答\r\n17.7 工作室\r\n17.7.1 测验\r\n17.7.2 练习\r\n\r\n第18章 数据字典\r\n\r\n18.1 数据字典介绍\r\n18.2 数据字典的用户\r\n18.3 数据字典的内容\r\n18.3.1 Oracle的数据字典\r\n18.3.2 Sybase的数据字典\r\n18.4 Oracle数据字典的剖析\r\n18.4.1 用户视图\r\n18.4.2 系统DBA视图\r\n18.4.3 动态性能视图\r\n18.4.4 PLAN表\r\n18.5 小结\r\n18.6 问与答\r\n18.7 工作室\r\n18.7.1 测验\r\n18.7.2 练习\r\n\r\n第19章 存储过程、触发器和嵌入式以及语言\r\n\r\n19.1 创建临时表\r\n19.2 使用游标\r\n19.2.1 创建游标\r\n19.2.2 打开游标\r\n19.2.3 滚动游标\r\n19.2.4 测试游标的状态\r\n19.2.5 关闭游标\r\n19.2.6 游标的使用域\r\n19.3 创建并使用存储过程\r\n19.3.1 使用存储过程参数\r\n19.3.2 删除存储过程\r\n19.3.3 嵌套存储过程\r\n19.4 设计和使用触发器\r\n19.4.1 触发器和事务\r\n19.4.2 使用触发器的限制\r\n19.4.3 嵌套触发器\r\n19.5 在执行之前测试SELECT语句\r\n19.6 使用嵌入式SQL语言\r\n19.6.1 静态和动态 SQL语言\r\n19.7 使用SQL编程\r\n19.8 小结 \r\n19.9 问与答\r\n19.10 工作室\r\n19.10.1 测验\r\n19.10.2 练习\r\n\r\n第20章 SQL语言新标准——SQL中的新对象\r\n\r\n20.1 CREATE ROLE语句探讨\r\n20.2 创建触发器\r\n20.3 使用CREATE TYPE语句\r\n20.4 小结\r\n20.5 问与答\r\n20.6 工作室\r\n20.6.1 测验\r\n20.6.2 练习\r\n\r\n第21章 使用SQL语言生成SQL语句\r\n\r\nZ1.1 使用SQL语言生成SQL语句的目的\r\n21.2 几个SQL*Plus命令\r\nZ1.1.1 SET ECHO ON/OFF\r\n21.2.2 SET FEEDBACK ON/OFF\r\n21.2.3 SET HEADING ON/OFF\r\n21.2.4 SPOOL FILENAME/OFF\r\n21.2.5 START FILENAME\r\n21.2.6 ED FILENAME\r\n21.3 统计所有表中的行数\r\n21.4 为多个用户授予系统权限\r\n21.5 将表的权限授予其他用户\r\n21.6 为装入数据而废除对表的约束\r\n21.7 在单个区域内创建大量的同义词\r\n21.8 在表上创建视图\r\n21.9 截断某一用户的所有表\r\nZI.10 使用SQL语句生成Shell脚本\r\n21.11 对表和索引进行逆向工程\r\n21.12 小结\r\n21.13 问与答\r\n21.14 工作室\r\n21.14.1 测验\r\n21.14.2 练习\r\n第三篇回顾\r\n\r\n附加篇\r\n\r\n本篇概要\r\n\r\n第22章 SQL语句的调试\r\n\r\n22.1 常见错误\r\n22.1.1 表或视图不存在\r\n22.1.2 无效的用户名或口令\r\n22.1.3 没有FROM关键字\r\n22.1.4 不允许使用分组函数\r\n221.5 无效的列名\r\n22.1.6 缺少关键字\r\n22.1.7 缺少左括号\r\n22.1.8 缺少右括号\r\n22.1.9 缺少逗号\r\n22.1.10 列名定义不明确\r\n22.1.11 SQL命令没有正常结束\r\n22.1.12 缺少表达式\r\n22.1.13 函数缺少参数\r\n22.1.14 缺少数据值\r\n22.1.15 完整性约束冲突——双亲主键没有找到\r\n22.1.16 Oracle不能使用\r\n22.1.17 向列中插入的数据太大\r\n22.1.18 远程数据库服务器不能识别连接描述符中的系统ID号\r\n22.1.19 没有授权的权限\r\n22.1.20 语句中的无效字符——Escape字符\r\n22.1.21 对不能创建操作系统文件\r\n22.2 常见的逻辑错误\r\n22.2.1 在SQL语句中使用保留字\r\n22.2.2 在多个选择列上使用DISTINCT命令\r\n22.2.3 删除不合适的表\r\n22.2.4 在多模式的数据库中公共同义词的使用\r\n22.2.5 可怕的笛卡尔乘积\r\n22.2.6 数据输入质量不高\r\n22.2.7 采用不合适的文件系统结核\r\n22.2.8 对于很大的表采用缺省的存储参数\r\n22.2.9 将数据库对象存储到系统表空间中\r\n22.2.10 大量的备份文件没有压缩\r\n22.2.11 没有规划好系统资源的使用\r\n22.3 防止数据出现麻烦\r\n22.3.1 在数据库中查找重复的记录\r\n22.4 小结\r\n22.5 问与答\r\n22.6 工作室\r\n22.6.1 测验\r\n22.6.2 练习\r\n\r\n第23章 创建复合查询\r\n\r\n23.1 本章使用的表\r\n23.2 复合查询的例子\r\n23.2.1 根据生日计算年龄\r\n23.2.2 将一个DAY函数分解成小时、 分和秒\r\n23.2.3 将字节转换成KB和MB\r\n23.2.4 数据库中段的报表\r\n23.2.5 DML中的子查询\r\n23.2.6 格式化日期\r\n23.2 7 包含取最大值的子查询\r\n23.2.8 多个子查询\r\n23.2.9 使用破折号和括号格式化数值型数据\r\n23.2.10 将数值型数据按给定的比递增\r\n23.2.11 在一个列中查找下一个最大的数值\r\n23.2.12 空值(NULL)处理\r\n23.3 建立复合查询的技巧\r\n23.4 小结\r\n23.5 问与答\r\n23.6 工作室\r\n23.6.1 测验\r\n23.6.2 练习\r\n\r\n第24章 用Oracle的SQL*Plus生成满意的报表\r\n\r\n24.1 SQL*Plus介绍\r\n24.2 SQL*plus缓冲区\r\n24.3 用DESCRIBE命令查看表结构\r\n24.4 用SHOW命令显示系统设置\r\n24.5 用文件命令操作文件\r\n24.5.1 SAVE、GET和 EDIT命令\r\n24.5.2 运行SQL文件\r\n24.5.3 存储查询结果\r\n24.6 用SET命令设置工作环境\r\n24.7 使用LOGIN.SQL文件\r\n24.8 用CLEAR命令清除SQL*Plus的设置\r\n24.9 格式化输出结果\r\n24.9.1 TTITLE和 BTITLE\r\n24.9.2 格式化的列(列、标题、格式)\r\n24. 10 创建报表和分组合计\r\n24.10.1 BREAK ON\r\n24.10.2 COMPUTE\r\n24.11 SQL*Plus中使用变量\r\n24.11.1 替代变量(&)\r\n24.11.2 DEFINE\r\n24.11.3 ACCEPT\r\n24.11.4 NEW VALUE\r\n24. 12 使用DUAL表\r\n24.13 DECODE函数\r\n24.14 日期转换\r\n24.15 执行一系列SQL文件\r\n24.16 在SQL脚本文件中加注释\r\n24. 17 高级报表\r\n24.18 小结\r\n24. 19 问与答\r\n24.20 工作室\r\n24.20.1 测验\r\n24.20.2 练习\r\n\r\n第25章 Oracle的PL/SQL语言简介\r\n\r\n25.1 PL/SQL介绍\r\n25.2 PL/SQ L中的数据类型\r\n25.2.1 字符串数据类型\r\n25.2.2 数值数据类型\r\n25.2.3 二进制数据类型\r\n25.2.4 日期数据类型\r\n25.2.5 布尔型\r\n25.2.6 行号(ROWID)\r\n25.3 PL/SQL程序块结构\r\n25.4 DECLAREd部分\r\n25.4.1 变量赋值\r\n25.4.2 常量赋值\r\n25.4.3 游标的定义\r\n25.4.4 %TYPE属性\r\n25.4.5 % ROWTYPE属性\r\n25.4.6 %ROWCOUNT属性\r\n25.5 PROCEDURE部分\r\n25.5.1 BEGIN...END语句\r\n25.5.2 游标控制命令\r\n25.5.3 条件语句\r\n25.6 EXCEPTION部分\r\n25.6.1 异常事件的触发\r\n25.6.2 异常事件处理程序的执行\r\n25.6.3 插入注解\r\n25.6.4 PL/SQL程序块的执行\r\n25.6.5 为用户显示输出结果\r\n25.7 PL/SQL中的事务控制\r\n25.8 PL/SQL程序的完整介绍\r\n25.8.1 样表和数据\r\n25.8.2 PL/SQL程序块实例\r\n25.8.3 另一个实例\r\n25.9 存储过程、程序包和触发器\r\n25.9.1 存储过程样本\r\n25.9.2 程序包样本\r\n25.9.3 触发器样本\r\n25.10 小结\r\n25.11 问与答\r\n25.12.1 工作室\r\n25.12.1 测验\r\n25.12.2 练习\r\n\r\n第26章 Transact SQL介绍\r\n\r\n26.1 Transact-SQL概述\r\n26.2 对ANSI SQL语言的扩充\r\n26.2.1 Transact-SQL面向哪些用户\r\n26.2.2 Transact-SQL的基本构成\r\n26.3 数据类型\r\n26.3.1 字符串类型\r\n26.3.2 数值数据类型\r\n26.3.3 日期数据类型\r\n26.3.4 货币数据类型\r\n26.3.5 二进制串\r\n26.3.6 位(bit)——一种逻辑数据类型\r\n26.4 使用 Transact-SQL访问数据库\r\n26.4.1 BASEBALL数据库\r\n26.4.2 局部变量的声明\r\n26.4.3 全局变量的声明\r\n26.4.4 变量的使用\r\n26.4.5 PRINT命令\r\n26.5 建立程序流程控制\r\n26.5.1 BEGIN和END语句\r\n26.5.2 IF...ELSE语句\r\n26.5.3 EXISTS条件\r\n26.5.4 测试查询结果\r\n26.5.5 WHILE循环\r\n26.5.6 BREAK命令\r\n26.5.7 CONTINUE命令\r\n26.5.8 使用WHILE循环滚动访问一个表\r\n26.6 Transact-SQL通配符\r\n26.7 使用COMPUTE命令创建合计报表\r\n26.8 日期转换\r\n26.9 SQL Server的诊断工具——SET命令\r\n26.10 小结\r\n26.11 问与答\r\n26.12 工作室\r\n26.12.1 测验\r\n26.12.2 练习\r\n\r\n\r\n第27章 Visual C++和Delphi中的动态SQL语言\r\n\r\n27.1 几个应用程序开发工具简介\r\n27.1.1 ODBC\r\n27.1.2 Personal Oracle8\r\n27.1.3 InterBase SQL\r\n27.1.4 VisualC++\r\n27.1.5 Delphi\r\n27.2 开始运行Oracle和InterBase\r\n27.3 创建数据库\r\n27.4 用Microsoft Query执行连接\r\n27.5 使用 VisualC++和SQL\r\n27.6 使用 Delphi和SQL\r\n27.7 小结\r\n27.8 问与答\r\n27.9 工作室\r\n27.9.1 测验\r\n27.9.2 练习\r\n\r\n第28章 MySQL介绍\r\n\r\n28.1 MySQL管理\r\n28.1.1 MySQL安装\r\n28.1.2 启动和停止MySQL\r\n28.1.3 MySQL的初始\r\n28.2 MySQL客户端程序\r\n28.2.1 连接数据库\r\n28.2.2 命令行选项\r\n28.2.3 输入MySQL客\r\n28.2.4 执行命令的历史记录\r\n28.2.5 批处理模式\r\n28.2.6 SHOW命令\r\n28.3 MySQL实用程序\r\n28.4 小结\r\n28.5 问与答\r\n28.6 工作室\r\n28.7.1 测验\r\n28.8.2 练习\r\n附加篇回顾\r\n\r\n附录\r\n\r\n附录A 答案\r\n附录B 创建表的实例代码\r\n附录C 生成Plpulate表中数据的代码\r\n附录D 第27章的C++程序源代码\r\n附录E 第27章的Delphi程序源代码\r\n附录F 常用SQL命令术语\r\n附录G ASCll码表\r\n附录H 相关资源