标题：SQL语法范例大全
图书信息
作　者：希赛IT发展研究中心 组编 黄少华，陈翠娥 编著
出 版 社：电子工业出版社
出版时间：2008-11-1
页　数：724页
开　本：16开
ISBN 9787121073960
分类： 图书[1] >> 计算机/数据库 >>SQL语句 
定价：￥89.0元
内 容 简 介
SQL是关系型数据库的处理语言，具有强大的处理功能。本书以SQL92标准为重点（部分章节增加了SQL：1999和SQL：2003），全面系统地介绍了SQL语法、功能和特点，并以目前广泛流行的关系数据库SQL Server 2005/2008和Oracle 9i/10g/11g为基础，详细介绍了各种语法的示例，这些示例都是在实际工作中经常用到的，通俗易懂，具有很强的实用性。
本书拥有完善的体系、全面的方法、详尽的内容和丰富的实例。本书对SQL92语言、SQL Server和Oracle数据库的语法进行了对照，可作为手册查阅。书后附有大量详细的语法功能函数和语句，并对示例进行了索引，可供读者进行快速查阅。
本书既可作为各大专院校计算机或相近专业的教材，亦可作为从事程序设计、数据库管理与开发、系统分析与设计等专业技术人员的参考用书，适用面较广，适合初、中、高级计算机专业技术人员使用。
前 言
数据库技术已成为信息时代计算机技术的重要组成部分，而目前广泛使用的关系数据库已经成为数据库系统的主流，SQL（Structured Query Language，结构化查询语言）是关系数据库系统最常用的语言。
本书全面系统地介绍了SQL的基本语法，并以目前流行的数据库SQL Server 2005/2008和Oracle 9i/10g/11g为基础，结合作者多年的数据库系统管理经验，介绍了用SQL管理和开发这两大关系数据库的实际应用操作，包含了大量的应用示例，可供读者在学习和工作中引用。
本书读者
本书内容涵盖了与数据库系统管理和开发有关的常见内容和操作，非常适合需要使用SQL的各层次的读者，包括下列使用对象：
（1）SQL的初学者和计算机爱好者
本书讲述了SQL大量的基础内容，又有大量示例，非常适合初学者使用。
（2）高等学校或职业技术学校计算机专业教师和学生
本书讲解由浅入深，非常适合高等学校和职业技术学校计算机专业教师和学生学习和参考使用。
（3）数据库管理及其应用、软件设计和开发人员
本书介绍了SQL语句在两种主流关系数据库SQL Server和Oracle中的实现，同时，介绍了在进行数据库管理中通常需要的SQL脚本操作，可作为数据库管理及开发人员的参考手册。
（4）系统分析人员
数据库规划和管理技术是系统分析人员应该掌握的重点内容，本书介绍了各类常见关系数据库的基础知识，并分析和比较了它们之间的主要特点和异同点，同时也介绍了SQL在数据库系统分析中的编程知识，因此该书也可以作为系统分析人员重要的参考资料。
本书特点
（1）结构清晰，内容全面
本书按照关系数据库基础、SQL基础、SQL与关系数据库的关系、SQL语法、SQL扩展、SQL编程、SQL在数据库中的应用和资料速查内容为线索进行介绍，采用“方法、语法、示例、运行结果、注意事项”的顺序结构进行阐述，具有很强的条理性和易读性。
（2）方法多样，实例丰富
本书针对特定的知识点介绍了能实现特定功能的各种方法，包括数据库的企业管理器工具法、SQL命令法等，目的是让读者既能掌握SQL语法知识，又能掌握数据库的操作技能，而且还能比较同一种功能采用多种实现方法的异同点，掌握在SQL Server和Oracle这两种数据库环境下SQL的差别。
本书共包括大小实例721个，使读者在学习SQL原理的同时能够掌握其用法，大部分实例还可以用于SQL Server和Oracle数据库的实际管理，这些实例是作者多年从事数据库和类UNIX系统管理的经验积累，具有相当大的使用价值。 
（3）既可以作为教材使用，又可以通过手册进行快速查阅
本书以教材的形式全面系统地介绍了SQL以及SQL Server和Oracle数据库系统管理的知识点，同时，又在实现方法、SQL语法、SQL语句、SQL函数、数据库系统参数和应用示例等方面提供了详细的介绍，并且提供快速索引，方便读者查阅。
综上所述，与其他同类书籍相比，本书具有方法全、内容全、实例全、参数全、查阅全的典型特点。
本书内容
本书内容涵盖了SQL、关系数据库基本理论、SQL Server数据库、Oracle数据库、MS VS.NET等数据库软件开发平台和工具的知识点与实际应用操作。
全书包括附录共分为8大部分，共29章。
第1篇 SQL及关系数据库概述（第1章～第3章）
第1章 关系数据库概述。主要介绍了数据库和关系数据库的基本概念、关系模型以及两种关系数据库：桌面关系数据库和网络关系数据库和常用的10种关系型数据库系统
第2章 SQL概述。介绍了SQL的概念、基本功能、SQL标准和版本、SQL基本语法
第3章 SQL扩展、工具及范例数据库介绍。介绍了常用的关系数据库系统SQL Server和Oracle的基本情况及其支持的SQL扩展语言Transact-SQL和PL/SQL的基本概念和主要内容。同时介绍了Transact-SQL和PL/SQL的支持环境和常用工具的用法，包括SQLCMD、SQL Server查询分析、Oracle企业管理器EM、Oracle SQL * Plus、iSQL * Plus、PL/SQL Developer和TOAD专业工具
第2篇 SQL运算符和函数（第4章～第5章）
第4章 SQL运算符。介绍了SQL的各种操作运算符，包括算术、字符串、赋值、比较、逻辑、集合和一元运算操作符
第5章 函数。介绍了算术、字符、日期、类型转换、统计（聚合）函数和两种数据库的常用系统函数
第3篇 数据查询操作（第6章～第9章）
第6章 简单查询。介绍了SQL查询语句（SELECT语句）的基本语法结构和执行步骤、常用的简单查询操作
第7章 连接查询。介绍了表的自连接、自然连接、内连接和外连接。其中内连接介绍了等值连接和不等值连接两种基本形式；外连接介绍了左外连接、右外连接和全外连接
第8章 集合查询。介绍了并集、交集和差集的基本概念和应用操作
第9章 子查询。介绍了子查询的基本概念和操作，包括单行、多行、多列、相关和嵌套子查询等内容
第4篇 数据更新操作（第10章～第15章）
第10章 数据库操作。介绍了数据库的创建、查找、修改和删除的几种实现方法以及SQL语句操作
第11章 方案操作。介绍了方案的创建、查找、修改和删除的几种实现方法以及SQL语句操作
第12章 数据表操作。介绍了数据表、表记录、表结构的创建、查找、修改、复制和删除的几种实现方法以及SQL语句操作
第13章 索引操作。介绍了索引的创建、查找、修改、禁用、启用和删除的几种实现方法以及SQL语句操作
第14章 视图操作。介绍了视图的创建、查找、修改和删除的几种实现方法以及SQL语句操作
第15章 序列操作。介绍了序列的创建、查找、使用和删除的几种实现方法以及SQL语句操作
第5篇 数据安全管理（第16章～第19章）
第16章 完整性约束。介绍了与表有关的约束：NOT NULL约束、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束和CHECK约束、域约束以及断言的创建、查找、修改、使用和删除的几种实现方法以及SQL语句操作
第17章 用户管理。介绍了用户的创建、查找、修改、删除的几种实现方法和SQL语句操作以及权限的查找、授权、收回等操作
第18章 角色管理。介绍了角色的创建、查找、修改、删除的几种实现方法和SQL语句操作以及权限的查找、授权、收回等操作
第19章 权限管理。介绍了权限的分类、查找、授权、收回等操作
第6篇 SQL编程（第20章～第25章）
第20章 事务控制与并发处理。介绍了事务的概念、事务控制的实现以及多用户读写访问数据库的并发控制、事务的开始和终止操作，最后还介绍了在SQL Server和Oracle数据库中并发控制的具体应用、实现和比较
第21章 存储过程。介绍了存储过程的创建、查找、修改、调用、重编译、删除的几种实现方法和SQL语句操作，还详细介绍了存储过程在SQL Server和Oracle数据库中的应用
第22章 存储函数。介绍了存储函数的创建、查找、修改、调用、重编译、删除的几种实现方法和SQL语句操作，还详细介绍了存储函数在SQL Server和Oracle数据库中的应用
第23章 触发器。介绍了SQL中触发器的有关概念、创建、查找、修改、禁用、启用和删除的几种实现方法以及SQL语句操作，还详细介绍了触发器在SQL Server和Oracle数据库中的应用
第24章 游标。介绍了SQL中游标的基本概念、各种游标的定义、查找、打开、数据提取、关闭和删除的几种实现方法以及SQL语句操作、游标循环和嵌套的具体内容，还详细介绍了游标在SQL Server和Oracle数据库中的应用
第25章 错误和异常处理。介绍了错误与异常分类、SQL Server和Oracle数据库中的错误与异常处理
第7篇 SQL在数据库开发和管理中的应用（第26章～第29章）
第26章 嵌入式SQL。介绍了嵌入式SQL的基本概念、原理、与高级语言的通信方法、动态SQL技术，还详细介绍了利用C语言中嵌入SQL语句在VC++、VC#中访问SQL Server和Oracle的连接访问实现过程
第27章 数据库的存取访问技术。介绍了数据库系统的开发环境、应用系统的典型结构、各种数据库软件开发平台和工具、MS VS.NET和J2EE两种流行的开发平台的比较、数据库的连接访问技术，包括OLE-DB、ODBC、JDBC、ADO、ADO.NET。还详细介绍了用ASP、ASP.NET、VB.NET、VC#.NET与TEXT、Excel文件以及Access、SQL Server、Oracle数据库连接的访问方法
第28章 用SQL管理SQL Server数据库。介绍了用SQL结合SQL Server数据库的系统表和系统存储过程管理SQL Server数据库及服务器的属性、数据库对象以及账户、角色和权限等内容
第29章 用SQL管理Oracle数据库。介绍了用SQL管理Oracle数据库及服务器的属性、数据库连接、会话、进程、表空间和数据文件、数据表、索引、存储过程、存储函数、触发器、用户、角色、权限、事务与锁和内存参数等内容
第8篇 附录（附录A～附录E）
为便于读者对常用资料的查阅，特将下列内容作为附录内容进行了收集和整理：
 SQL常用语句分类索引
 SQL、SQL Server、Oracle常用函数分类对照索引
 SQL Server常用系统表和系统存储过程索引
 Oracle数据库常用视图索引
 Oracle数据库系统环境变量参数
技术支持
希赛是中国领先的互联网技术和IT教育公司，在互联网服务、图书出版、人才培养方面，希赛始终保持IT业界的领先地位。希赛对国家信息化建设和软件产业化发展具有强烈的使命感，利用希赛网（www.csai.cn）强大的平台优势，加强与促进IT人士之间的信息交流和共享，实现IT价值。“希赛，影响IT”是全体希赛人不懈努力和追求的目标！
希赛网以希赛顾问团为技术依托，是中国最大的IT资源平台。希赛IT教育研发中心是希赛公司下属的一个专门从事IT教育、教育产品开发、教育书籍编写的部门，在IT教育方面具有极高的权威性。在国家权威机构发布的《计算机图书出版市场综述》中，称赞希赛丛书为读者所称道，希赛的图书已经形成品牌，在读者心目中具有良好的形象。
有关本书的意见反馈和咨询，读者可在学赛网社区（http://bbs.educity.cn）“书评在线”版块中与作者（hnhsh@21cn.com）进行交流，读者也可就书中的问题提出意见，此外也可以通过ebook@csai.cn进行联系，由于作者水平有限，错误在所难免，望读者不吝赐教。
本书由黄少华和陈翠娥编著，邓子云主审。同时，希赛公司梁赛编辑提供了许多的帮助。还有刘健等几位好友也提供了支持和很好的参考意见，在此一并表示衷心的感谢。
编者 著
2008年8月
目 录
第1篇 SQL及关系数据库概述
第1章 关系数据库概述 2
1.1 数据库的基本概念 3
1.1.1 数据库的发展 3
1.1.2 数据库系统组成 3
1.1.3 数据处理的抽象描述 3
1.1.4 数据模型 4
1.2 关系数据库基本概念 4
1.2.1 关系模式 4
1.2.2 关系模型的特点及组成 5
1.2.3 关系数据语言的种类 6
1.2.4 域 7
1.2.5 笛卡儿积 7
1.2.6 关系 8
1.2.7 全关系系统十二准则 9
1.2.8 规范化（NF范式） 9
1.3 关系数据库类型 10
1.3.1 桌面数据库 10
1.3.2 网络数据库 10
1.4 常用关系数据库介绍 10
1.4.1 Microsoft Access 11
1.4.2 FoxPro 11
1.4.3 MySQL 11
1.4.4 Firebird 12
1.4.5 PostgreSQL 13
1.4.6 Informix 14
1.4.7 DB2 14
1.4.8 Sybase 15
1.4.9 SQL Server 17
1.4.10 Oracle 22
1.5 小结 29
第2章 SQL概述 30
2.1 SQL的功能和特性 31
2.2 SQL语法分类 32
2.3 SQL标准与版本 32
2.3.1 SQL92标准 33
2.3.2 SQL99标准 33
2.3.3 SQL:2003标准 34
2.4 SQL表达式 34
2.5 SQL标识符 34
2.5.1 特殊字符（语法约定） 34
2.5.2 注释字符 35
2.6 SQL常量 35
2.7 SQL变量 37
2.8 SQL数据类型 37
2.8.1 数值型数据 37
2.8.2 字符型数据 38
2.8.3 日期数据类型 38
2.8.4 其他数据类型 39
2.9 SQL语句 40
2.9.1 SQL语句分类 40
2.9.2 SELECT查询语句 41
2.10 SQL语句的执行方法 42
2.11 SQL与关系数据库 42
2.12 SQL的发展 42
2.13 小结 42
第3章 SQL扩展、工具及范例数据库介绍 44
3.1 T-SQL 46
3.1.1 注释语句 46
3.1.2 常量 46
3.1.3 变量 46
3.1.4 运算符 47
3.1.5 数据类型 48
3.1.6 函数 49
3.1.7 流程控制语句 49
3.2 PL/SQL 50
3.2.1 注释语句 50
3.2.2 数据类型 51
3.2.3 SQL92、T-SQL、PL/SQL数据
类型比较 51
3.2.4 运算符 52
3.2.5 函数 52
3.2.6 PL/SQL与T-SQL函数比较 53
3.2.7 常量和变量 53
3.2.8 流程控制语句 54
3.3 SQLCMD工具 55
3.4 SQL Server查询分析工具 57
3.5 Oracle企业管理器EM工具 58
3.6 Oracle SQL * Plus工具 60
3.6.1 SQL*Plus的主要功能 60
3.6.2 SQL*Plus启动和快速登录
方法 61
3.6.3 SQL*Plus常用命令操作 62
3.6.4 iSQL * Plus 70
3.7 PL/SQL Developer工具 72
3.7.1 主要功能特性 72
3.7.2 软件资源 74
3.7.3 基本用法 74
3.8 TOAD工具 76
3.8.1 主要功能特性 76
3.8.2 软件资源 77
3.8.3 基本用法 77
3.9 范例数据库介绍 80
3.9.1 SQL Server学籍管理数据库 80
3.9.2 SQL Server系统示例库 84
3.9.3 Oracle系统示例库 84
3.10 本章小结 90
第2篇 SQL运算符和函数
第4章 SQL运算符 92
4.1 算术运算符 94
4.2 赋值运算符 94
4.3 字符串串联运算符 94
4.3.1 加号“+” 94
4.3.2 双竖号“||” 94
4.4 一元运算符 94
4.5 逻辑运算符 95
4.6 比较运算符 95
4.7 集合运算符 96
4.7.1 UNION运算符 96
4.7.2 EXCEPT运算符 96
4.7.3 INTERSECT运算符 97
4.8 运算符优先级 97
4.9 SQL92、SQL Server和Oracle运算符
比较 97
4.10 小结 99
第5章 函数 100
5.1 数值函数 102
5.2 字符串函数 103
5.3 日期时间函数 104
5.4 数据类型转换函数 106
5.4.1 CAST ()函数 106
5.4.2 CONVERT () 函数 107
5.5 统计函数 109
5.5.1 SUM ()求和 110
5.5.2 COUNT ()计数 110
5.5.3 MAX () /MIN ()求最大/
最小值 111
5.5.4 AVG ()求均值 112
5.5.5 VAR () /VARP () 求方差 113
5.5.6 STDEV () /STDEVP ()求标准
误差 113
5.5.7 使用DISTINCT关键字进行
重值筛选 114
5.6 小结 114
第3篇 数据查询操作
第6章 简单查询 116
6.1 用SELECT子句选择列表 118
6.1.1 选择列 119
6.1.2 更改列标题 119
6.1.3 使用TOP限制选择行数 120
6.1.4 DISTINCT去掉重复的字段
数据 121
6.1.5 DISTINCTROW去掉重复的
记录数据 122
6.2 FROM子句 122
6.2.1 对具有相同列名的两个表
进行查询 123
6.2.2 从查询结果集合中查询数据 123
6.3 WHERE子句 123
6.3.1 使用比较运算符指定查询
条件 124
6.3.2 使用逻辑运算符指定查询
条件 124
6.3.3 使用范围BETWEEN指定
查询条件 125
6.3.4 使用列表IN指定查询条件 125
6.3.5 使用LIKE与通配符指定查询
条件 125
6.3.6 NULL空值的判断 126
6.3.7 使用包含判断词EXISTS、
ALL、ANY、SOME 126
6.4 GROUP BY子句 130
6.4.1 一般情况的分组查询 131
6.4.2 GROUP BY子句根据多列组
合行 132
6.4.3 CUBE和ROLLUP运算符及
使用 132
6.4.4 GROUP BY子句中的NULL
值处理 133
6.5 HAVING子句 134
6.5.1 HAVING子句的一般应用 134
6.5.2 HAVING与WHERE子句的
区别 135
6.5.3 HAVING子句单独使用 136
6.5.4 HAVING子句与CASE语句
结合使用 137
6.6 ORDER BY子句 137
6.6.1 ORDER BY子句的使用 137
6.6.2 ORDER BY子句的约束 139
6.7 小结 139
第7章 连接查询 141
7.1 连接概述 143
7.1.1 连接范围 143
7.1.2 连接类型 143
7.1.3 笛卡儿积 143
7.1.4 连接语法 144
7.1.5 连接运算符 144
7.2 自（身）连接 144
7.3 内连接（INNER JOIN） 145
7.3.1 等值连接 145
7.3.2 不等连接 146
7.3.3 自然连接 147
7.4 外连接 148
7.4.1 左外连接（LEFT JOIN） 148
7.4.2 右外连接（RIGHT JOIN） 149
7.4.3 全外连接（FULL JOIN） 150
7.5 交叉连接（CROSS JOIN） 151
7.6 小结 151
第8章 集合查询 153
8.1 集合概念 155
8.2 集合性质 155
8.3 集合运算 155
8.4 UNION运算符 156
8.4.1 使用UNION进行表内查询 156
8.4.2 使用UNION进行多表查询 157
8.4.3 使用UNION JOIN连接查询 158
8.5 INTERSECT运算符 159
8.6 EXCEPT运算符 159
8.7 小结 160
第9章 子查询 161
9.1 概述 163
9.1.1 子查询定义 163
9.1.2 子查询语法 163
9.1.3 子查询的两种基本形式 164
9.1.4 子查询的优点 165
9.1.5 子查询分类 165
9.1.6 子查询中的比较运算符与谓词 165
9.1.7 使用子查询的规则 168
9.2 单行子查询 169
9.3 多行子查询 170
9.3.1 在多行子查询中使用IN比较符 170
9.3.2 在多行子查询中使用ALL、SOME、ANY比较符 171
9.4 多列子查询 172
9.5 相关子查询 173
9.5.1 使用单行比较运算符引入相关子查询 174
9.5.2 使用IN引入相关子查询 174
9.5.3 在子查询中使用[NOT] EXISTS 175
9.6 在各类SQL语句中使用子查询 177
9.6.1 在SELECT子句中使用子查询 177
9.6.2 在FROM子句中使用子查询 177
9.6.3 在WHERE子句中使用子查询 177
9.6.4 在GROUP BY子句中使用子查询 178
9.6.5 在HAVING子句中使用子查询 178
9.6.6 在CREATE TABLE语句中使用子查询 178
9.6.7 在CREATE VIEW语句中使用子查询 179
9.6.8 在INSERT INTO子句中使用子查询 180
9.6.9 在UPDATE语句中使用子查询 181
9.6.10 在DELETE语句中使用子查询 182
9.6.11 使用WITH子句重用子查询 182
9.7 树查询 183
9.8 小结 184
第4篇 数据更新操作
第10章 数据库操作 186
10.1 创建数据库 188
10.2 查看数据库信息 193
10.3 更改数据库 193
10.3.1 更改数据库名称 195
10.3.2 修改数据库文件 195
10.3.3 更改数据库属性 200
10.4 删除数据库 201
10.5 小结 201
第11章 方案操作 202
11.1 方案概述 204
11.2 查找方案 204
11.3 创建方案 204
11.4 更改方案 206
11.5 删除方案 206
11.6 小结 207
第12章 数据表操作 208
12.1 创建表 210
12.2 复制表 211
12.3 修改表结构 212
12.3.1 增加列和约束 212
12.3.2 查找列约束 214
12.3.3 修改列和约束 214
12.3.4 删除列和约束 215
12.4 行记录操作 215
12.4.1 插入记录 215
12.4.2 修改记录 218
12.4.3 删除记录（DELETE） 223
12.4.4 删除记录（TRUNCATE） 225
12.5 重命名表 226
12.6 删除表 226
12.7 MERGE语句 226
12.8 小结 228
第13章 索引操作 229
13.1 索引的分类 231
13.1.1 索引的概念 231
13.1.2 索引分类 231
13.2 索引使用的场所 232
13.3 查看索引 233
13.4 创建索引 234
13.4.1 创建索引的方法 234
13.4.2 CREATE INDEX语法 234
13.4.3 创建聚簇索引 236
13.4.4 创建非聚簇索引 236
13.4.5 创建简单列索引 236
13.4.6 创建组合列索引 237
13.4.7 创建普通索引 238
13.4.8 创建唯一索引 238
13.4.9 创建视图索引 241
13.5 修改索引 242
13.6 禁用/启用索引 245
13.7 删除索引 245
13.8 小结 246
第14章 视图操作 248
14.1 查询视图 250
14.2 创建视图 251
14.3 修改视图 255
14.4 删除视图 256
14.5 小结 257
第15章 序列操作 258
15.1 创建序列 260
15.2 查找序列值 260
15.3 使用序列 261
15.4 修改序列 261
15.5 删除序列 262
15.6 小结 262
第5篇 数据安全管理
第16章 完整性约束 264
16.1 数据库的安全性 266
16.2 完整性约束分类 267
16.3 表约束 268
16.3.1 DEFAULT约束 268
16.3.2 NOT NULL约束 269
16.3.3 CHECK约束 269
16.3.4 UNIQUE约束 270
16.3.5 PRIMARY KEY约束 270
16.3.6 FOREIGN KEY约束 271
16.3.7 FOREIGN KEY的MATCH
约束 272
16.4 域约束 273
16.5 断言 273
16.6 禁止与启用约束 274
16.7 查看约束 275
16.8 删除约束DROP 275
16.9 小结 275
第17章 用户管理 277
17.1 查找用户及相关信息 279
17.2 创建用户 282
17.3 修改用户 285
17.4 删除用户 286
17.5 小结 286
第18章 角色管理 288
18.1 角色的概念 290
18.2 查找角色 290
18.3 创建角色 293
18.4 更改角色 295
18.5 删除角色 295
18.6 小结 295
第19章 权限管理 297
19.1 权限分类 299
19.2 查看权限 299
19.3 授予权限 303
19.3.1 授予ALL权限 304
19.3.2 授予SELECT权限 304
19.3.3 授予CREATE权限 304
19.3.4 授予INSERT权限 305
19.3.5 授予UPDATE列权限 305
19.3.6 授予ALTER权限 305
19.3.7 授予EXECUTE权限 306
19.3.8 授予REFERENCES权限 306
19.3.9 授予DELETE权限 306
19.3.10 授予DROP权限 306
19.3.11 授予用户角色的权限 307
19.4 收回权限 308
19.5 小结 309
第6篇 SQL编程
第20章 事务控制与并发处理 312
20.1 事务的基本概念 314
20.2 锁的基本概念和分类 314
20.3 事务的并发控制 318
20.3.1 并发控制方法 319
20.3.2 事务隔离级别 319
20.3.3 事务特性的设置 321
20.4 事务开始和终止 322
20.5 数据库读写访问操作 322
20.6 事务提交 322
20.7 事务回滚 323
20.8 SQL Server与Oracle事务处理的
比较 324
20.9 小结 324
第21章 存储过程 326
21.1 存储过程的概念 329
21.2 存储过程的优点 329
21.3 存储过程分类 329
21.4 SQL Server存储过程中的控制语句 330
21.4.1 注释语句 330
21.4.2 屏幕输出语句 330
21.4.3 变量定义和使用语句 330
21.4.4 块语句 331
21.4.5 判断语句 331
21.4.6 循环语句 332
21.4.7 转向定位语句 333
21.4.8 定时执行语句 333
21.4.9 错误捕获语句 333
21.5 Oracle存储过程中的控制语句 333
21.5.1 注释语句 334
21.5.2 屏幕输出语句 334
21.5.3 变量和常量的定义和使用 334
21.5.4 块语句BEGIN…END 337
21.5.5 判断语句IF、CASE 338
21.5.6 循环语句 340
21.5.7 转向定位语句 342
21.5.8 定时执行作业任务dbms_job 342
21.5.9 错误捕获语句 346
21.6 存储过程的创建 346
21.6.1 创建存储过程的语法 346
21.6.2 创建无参数的存储过程 347
21.6.3 创建有参数的存储过程 347
21.7 存储过程的调用与执行 349
21.7.1 RETURN语句及返回值 350
21.7.2 存储过程的创建和调用步骤 351
21.7.3 存储过程调用方法和步骤 352
21.7.4 调用无参数的过程 352
21.7.5 调用有参数的过程 352
21.8 存储过程的查看 354
21.8.1 查看SQL Server存储过程 354
21.8.2 查看Oracle存储过程 356
21.9 存储过程的修改和重编译 359
21.9.1 修改存储过程 360
21.9.2 重命名存储过程 360
21.9.3 存储过程的重编译 361
21.10 存储过程的删除 364
21.11 SQL Server中几个重要的存储
过程介绍 365
21.11.1 sp_attach_db 366
21.11.2 sp_attach_single_file_db 366
21.11.3 sp_changedbowner 367
21.11.4 sp_changeobjectowner 367
21.11.5 sp_configure 368
21.11.6 xp_cmdshell 370
21.11.7 sp_spaceused 373
21.11.8 sp_msforeachtable 374
21.12 存储过程应用实例 374
21.12.1 用存储过程实现数据表更新
操作 374
21.12.2 用存储过程实现数据备份与
恢复 376
21.13 小结 377
第22章 存储函数 379
22.1 存储函数和存储过程的区别 381
22.2 存储函数的类型和约定 381
22.3 存储函数的创建和调用 383
22.3.1 存储函数创建语法 385
22.3.2 存储函数调用类型、方法和
语法 387
22.3.3 SQL Server存储函数的创建
和调用 387
22.3.4 Oracle存储函数的创建和
调用 390
22.4 存储函数的更改 396
22.5 存储函数的编译 397
22.6 存储函数信息的查看 397
22.6.1 查看SQL Server存储函数 398
22.6.2 查看Oracle存储函数 399
22.7 存储函数的删除 401
22.8 小结 402
第23章 触发器 404
23.1 触发器概述 406
23.1.1 触发器的基本概念 406
23.1.2 触发器的用途和优势 407
23.1.3 触发器的类型 408
23.1.4 触发器中的两个临时表 409
23.2 创建SQL Server触发器 409
23.2.1 创建DML触发器 410
23.2.2 创建DDL触发器 420
23.2.3 创建INSTEAD OF触发器 423
23.2.4 创建嵌套触发器 426
23.2.5 创建递归触发器 428
23.3 创建Oracle触发器 430
23.3.1 触发谓词的使用 431
23.3.2 创建DML语句触发器 432
23.3.3 创建DML行触发器 435
23.3.4 创建DDL触发器 438
23.3.5 创建INSTERD OF触发器 439
23.3.6 创建事件触发器 441
23.4 更改触发器 444
23.5 重新编译Oracle触发器 446
23.6 禁止和启用触发器 446
23.7 查看触发器信息 447
23.7.1 查看SQL Server触发器 447
23.7.2 查看Oracle触发器 449
23.8 删除触发器 451
23.9 本章小结 453
第24章 游标 455
24.1 游标的基本概念 457
24.1.1 游标的基本原理 457
24.1.2 游标的内容构成 457
24.1.3 游标的类型 457
24.1.4 游标变量 461
24.2 游标操作 462
24.2.1 申明游标 462
24.2.2 打开游标 463
24.2.3 读取数据 464
24.2.4 关闭游标CLOSE 469
24.2.5 删除游标 469
24.3 查看游标 470
24.3.1 查看SQL Server游标 470
24.3.2 查看Oracle游标 475
24.4 游标循环 476
24.5 参数游标 478
24.6 游标嵌套 479
24.7 游标应用 479
24.8 小结 483
第25章 错误和异常处理 486
25.1 错误和异常分类 488
25.2 SQL Server错误和异常处理 488
25.2.1 错误信息及存储 488
25.2.2 错误捕获方法 488
25.3 Oracle错误和异常处理 492
25.3.1 异常处理方法 492
25.3.2 异常处理语法 492
25.3.3 预定义异常处理 493
25.3.4 非预定义异常处理 494
25.3.5 自定义异常处理 495
25.4 小结 496
第7篇 SQL在数据库开发和
管理中的应用
第26章 嵌入式SQL 498
26.1 ESQL基本概念 500
26.2 SQL的使用方法 500
26.3 ESQL语句和宿主语言之间的通信
方法 502
26.3.1 使用SQL通信区通信 503
26.3.2 使用主变量通信 503
26.3.3 使用游标通信 506
26.4 ESQL的编译处理过程 507
26.5 使用WHENEVER语句简化错误
处理 507
26.6 在高级语言中嵌入SQL 509
26.6.1 ESQL的语法格式 509
26.6.2 在Visual C++下执行ESQL
语句 509
26.6.3 在Visual C#中执行嵌入式
T-SQL语句 511
26.7 在数据库管理系统中嵌入SQL 513
26.7.1 ESQL语句与T-SQL和
PL/SQL语句的比较 513
26.7.2 在SQL Server中使用嵌入式
SQL 514
26.7.3 在Oracle中嵌入SQL 517
26.8 动态SQL技术 524
26.8.1 动态SQL的基本概念 524
26.8.2 SQL Server动态SQL语句的处理 525
26.8.3 Oracle动态SQL语句的处理 527
26.9 小结 532
第27章 数据库的存取访问技术 534
27.1 数据库系统的开发环境 536
27.2 应用系统的典型结构 536
27.3 开发平台和工具 538
27.3.1 Power Builder 538
27.3.2 Delphi 539
27.3.3 Oracle Developer Suite 539
27.3.4 .NET 540
27.3.5 J2EE 542
27.3.6 .NET和J2EE比较 543
27.4 数据库的连接访问技术 543
27.4.1 OLE DB 543
27.4.2 ODBC 545
27.4.3 JDBC 547
27.4.4 ADO 549
27.4.5 ADO.NET 556
27.4.6 Recordset对象方法的使用 561
27.5 ASP/ASP.NET与数据库的连接和访问 562
27.5.1 ASP/ASP.NET与Text 563
27.5.2 ASP/ASP.NET与Excel 563
27.5.3 ASP/ASP.NET与Access 564
27.5.4 ASP/ASP.NET与SQLServer 564
27.5.5 ASP/ASP.NET与Oracle 565
27.6 VB.NET与数据库的连接和访问 566
27.6.1 VB.NET与Text 566
27.6.2 VB.NET与Excel 566
27.6.3 VB.NET与Access 567
27.6.4 VB.NET与SQL Server 568
27.6.5 VB.NET与Oracle 568
27.7 VC#.NET与数据库的连接和访问 569
27.7.1 VC#.NET与Excel 569
27.7.2 VC#.NET与Access 570
27.7.3 VC#.NET与SQL Server 571
27.7.4 VC#.NET与Oracle 572
27.8 小结 572
第28章 用SQL管理SQL Server数据库 573
28.1 操作系统管理 576
28.1.1 查看服务器属性和操作系统参数 576
28.1.2 查看磁盘目录和文件信息 577
28.1.3 查看存储介质与磁盘分区信息 578
28.1.4 查看服务器提供的服务组件与程序 579
28.2 DBMS管理 579
28.2.1 查看数据库服务属性 579
28.2.2 查看数据库系统版本及配置参数 580
28.2.3 查看和修改数据库属性 580
28.2.4 查看数据库文件和文件组属性 582
28.2.5 查看当前数据库重要的数据对象 582
28.2.6 查看数据库日志 583
28.3 用户对象、权限与安全管理 584
28.3.1 查看数据库角色 584
28.3.2 查看和管理数据库用户 585
28.3.3 查看有关权限 586
28.3.4 查看和管理用户的数据对象 587
28.3.5 查看和管理进程 590
28.3.6 查看数据库锁 591
28.3.7 数据库备份和恢复 593
28.4 小结 597
第29章 用SQL管理Oracle数据库 599
29.1 系统管理 606
29.1.1 查看数据库系统属性 606
29.1.2 查看所有数据库对象的属性 607
29.1.3 查看和修改当前数据库的字符集 608
29.1.4 查看数据库文件的属性 609
29.1.5 查看和设置数据库归档信息 609
29.1.6 查看数据库的数据字典 611
29.1.7 查看数据库的后台进程 612
29.1.8 查看和修改系统的当前时间 612
29.1.9 查看SCN和MTS 613
29.2 连接、会话与进程管理 614
29.2.1 查看数据库的并发连接会话数 614
29.2.2 查看客户端连接会话信息 614
29.2.3 查看会话进程及客户端信息 617
29.3 表空间和数据文件管理 619
29.3.1 查看表空间信息 619
29.3.2 查看表空间的数据文件和容量统计信息 620
29.3.3 查看数据对象所占用的表空间信息 622
29.3.4 查看表空间的碎片 623
29.3.5 查看数据文件信息 624
29.3.6 查看日志组信息 625
29.3.7 查看竞争与等待信息 626
29.3.8 查看TRACE脚本文件 628
29.4 回滚段管理 628
29.4.1 查看回滚段的属性 628
29.4.2 查看用户与会话正在使用的回滚段 631
29.5 数据表管理 631
29.5.1 查看数据表的基本属性 631
29.5.2 查看表的存储信息 632
29.5.3 查看表的约束与关联信息 634
29.5.4 表记录管理 636
29.6 索引管理 637
29.6.1 查看索引属性 637
29.6.2 查看用户的索引信息 637
29.6.3 查看索引的存储属性 638
29.6.4 对字段进行全文检索 638
29.7 存储过程、存储函数和触发器管理 639
29.7.1 查看存储过程和函数的状态信息 639
29.7.2 查看触发器、过程、函数的创建脚本 639
29.8 查看运行的SQL语句 640
29.8.1 查看进程所对应的SQL语句 640
29.8.2 查看用户正在运行的SQL语句 642
29.8.3 查看Disk Read最高的SQL语句 642
29.8.4 查看回滚段里正在运行的SQL语句 643
29.8.5 查看视图对应的SQL语句 643
29.8.6 查看SQL语句的执行情况 643
29.9 角色、用户与安全管理 643
29.9.1 查看数据库角色信息 644
29.9.2 查看数据库用户信息 644
29.9.3 查看用户对象和类型 646
29.9.4 查看有关授权信息 649
29.9.5 查看数据备份和恢复信息 650
29.10 锁管理 651
29.10.1 查看锁 651
29.10.2 查看被锁的进程及锁类型信息 654
29.10.3 查看被锁定的数据库对象 655
29.10.4 查看锁定对象的客户端信息 656
29.10.5 解锁操作 656
29.11 参数调整与性能优化 657
29.11.1 查看数据库服务器参数 658
29.11.2 查看客户端参数 659
29.11.3 查看会话环境参数 659
29.11.4 查看inin.ora参数 659
29.11.5 查看NLS参数 659
29.11.6 查看SGA 660
29.11.7 查看PGA 670
29.11.8 查看排序区 670
29.11.9 查看Large Pool 671
29.11.10 查看Java语言区 671
29.11.11 查看UGA区 671
29.11.12 查看CPU资源 671
29.11.13 查看I/O资源的使用情况 672
29.11.14 查看等待与竞争 673
29.11.15 SQL语句优化 676
29.12 小结 678
第8篇 附录
附录A SQL常用语句分类索引 680
附录B SQL、SQL Server、Oracle常用函数分类对照索引 683
附录C SQL Server常用系统表和系统存储过程索引 689
附录D Oracle数据库常用视图索引 696
附录E Oracle数据库系统环境变量参数 700