Transact-SQL
®
用户指南
Adaptive Server
®
Enterprise
15.5
文档 ID:DC32970-01-1550-01
最后修订日期:2009 年 11 月
版权所有 © 2010 Sybase, Inc. 保留所有权利。
本出版物适用于 Sybase 软件及所有后续版本,除非在新版本或技术说明中另有说明。此文档中的信息如有更改,恕不另行
通知。此处说明的软件按许可协议提供,其使用和复制必须符合该协议的条款。
若要订购附加文档,美国和加拿大的客户请拨打客户服务部门电话 (800) 685-8225 或发传真至 (617) 229-9845。
持有美国许可协议的其它国家 / 地区的客户可通过上述传真号码与客户服务部门联系。所有其它国际客户请与 Sybase 子公司
或当地分销商联系。仅在定期安排的软件发布日期提供升级。未经 Sybase, Inc. 的事先书面许可,本书的任何部分不得以任
何形式、任何手段 (电子的、机械的、手动、光学的或其它手段)进行复制、传播或翻译。
可在位于 http://www.sybase.com/detail?id=1011207 的“Sybase 商标页”(Sybase trademarks page) 查看 Sybase 商标。Sybase
和文中列出的标记均是 Sybase, Inc. 的商标。 ® 表示已在美国注册。
Java 和所有基于 Java 的标记都是 Sun Microsystems, Inc. 在美国和其它国家 / 地区的商标或注册商标。
Unicode 和 Unicode 徽标是 Unicode, Inc. 的注册商标。
IBM 和 Tivoli 是 International Business Machines Corporation 在美国和 / 或其它国家 / 地区的注册商标。
提到的所有其它公司和产品名均可能是与之相关的相应公司的商标。
Use, duplication, or disclosure by the government is subject to the restrictions set forth in subparagraph (c)(1)(ii) of DFARS 52.227-7013
for the DOD and as set forth in FAR 52.227-19(a)-(d) for civilian agencies.
Sybase, Inc., One Sybase Drive, Dublin, CA 94568。
Transact-SQL 用户指南 iii
关于本手册 ........................................................................................................................... xxi
第 1 章 SQL 构件块 ...................................................................................... 1
Adaptive Server 中的 SQL .............................................................. 1
查询、数据修改和命令 ............................................................. 2
表、列和行 ............................................................................... 2
关系操作 ................................................................................... 3
编译对象 ................................................................................... 3
命名约定 .......................................................................................... 5
SQL 数据字符 ........................................................................... 5
SQL 语言字符 ........................................................................... 6
标识符 ....................................................................................... 7
Adaptive Server 中的表达式 .......................................................... 12
算术表达式和字符表达式 ........................................................ 13
关系表达式和逻辑表达式 ........................................................ 18
Transact-SQL 扩展 ........................................................................ 19
compute 子句 ......................................................................... 20
控制流语言 ............................................................................. 20
存储过程 ................................................................................. 20
扩展存储过程 .......................................................................... 21
触发器 ..................................................................................... 21
缺省值和规则 .......................................................................... 22
错误处理和 set 选项 ............................................................... 22
SQL 的其它 Adaptive Server 扩展 .......................................... 23
符合 ANSI 标准 ............................................................................. 25
美国联邦信息处理标准 (FIPS) 标志程序 ................................. 25
链式事务和隔离级别 ............................................................... 26
标识符 ..................................................................................... 26
SQL 标准样式的注释 .............................................................. 26
右截断字符串 .......................................................................... 27
update 和 delete 语句所要求的权限 ....................................... 27
算术错误 ................................................................................. 27
同义关键字 ............................................................................. 28
空值处理 ................................................................................. 28
目录
目录
iv Adaptive Server Enterprise
Adaptive Server 登录帐号 ............................................................. 28
组成员资格 ............................................................................. 29
角色成员资格 .......................................................................... 29
有关您的 Adaptive Server 帐户的信息 ................................... 30
口令更改 ................................................................................. 30
远程登录名 ............................................................................. 31
isql 实用程序 ................................................................................. 32
缺省数据库 ............................................................................. 33
使用 isql 的基于网络的安全服务 ............................................. 34
isql 注销 .................................................................................. 34
显示 SQL 文本 ............................................................................... 35
pubs2 和 pubs3 样本数据库 .......................................................... 35
样本数据库内容 ...................................................................... 36
第 2 章 查询:从表中选择数据 .................................................................... 37
什么是查询? ................................................................................. 37
select 语法 .............................................................................. 38
使用 select 子句选择列 .................................................................. 40
使用 select * 选择所有列 ....................................................... 40
选择特定列 ............................................................................. 41
重新安排列顺序 ...................................................................... 41
在查询结果中重命名列 ........................................................... 42
使用表达式 ............................................................................. 42
选择 text、 unitext、 image 值 ............................................... 49
选择列表摘要 .......................................................................... 50
利用 distinct 消除重复查询结果 ..................................................... 50
利用 from 子句指定表 .................................................................... 52
使用 where 子句选择行 ................................................................. 53
比较运算符 ............................................................................. 54
范围 (between 和 not between) .......................................... 56
列表 (in 和 not in) ................................................................ 57
匹配模式 ........................................................................................ 59
匹配字符串:like .................................................................... 59
字符串和引号 .......................................................................... 65
“未知”值:NULL ................................................................. 65
带有逻辑运算符的连接条件 .................................................... 70
目录
Transact-SQL 用户指南 v
第 3 章 使用集合、分组和排序 ................................................................... 73
集合函数的使用 ............................................................................. 73
集合函数和数据类型 ............................................................... 75
count 与 count(*) .................................................................... 76
带有 distinct 的集合函数 ......................................................... 77
空值和集合函数 ...................................................................... 78
使用统计集合 .......................................................................... 79
将查询结果分组:group by 子句 ................................................... 81
group by 和 SQL 标准 ............................................................ 82
用 group by 对组进行嵌套 ...................................................... 83
使用 group by 在查询中引用其它列 ........................................ 83
使用外连接和集合扩展列 ........................................................ 86
表达式和 group by .................................................................. 88
在嵌套集合中使用 group by .................................................... 89
空值和 group by ...................................................................... 90
where 子句和 group by ........................................................... 91
group by 和 all ........................................................................ 92
不带 group by 的集合 ............................................................. 93
选择数据组:having 子句 .............................................................. 94
having、 group by 和 where 子句如何交互作用 ..................... 96
使用不带 group by 的 having .................................................. 98
对查询结果进行排序:order by 子句 ............................................. 99
order by 和 group by ............................................................. 102
与 select distinct 一起使用的 order by 和 group by .............. 102
汇总数据组:compute 子句 ......................................................... 103
行集合和 compute ................................................................ 106
在 compute 后指定多列 ........................................................ 107
使用多个 compute 子句 ........................................................ 108
将一个集合应用于多列 ......................................................... 109
在同一 compute 子句中使用不同集合 .................................. 110
生成总和:不带 by 的
compute ............................................ 110
组合查询:union 运算符 .............................................................. 112
union 查询的准则 .................................................................. 114
将 union 与其它 Transact-SQL 命令一起使用 ...................... 116
第 4 章 连接:从若干表中检索数据 .......................................................... 119
连接如何工作 ............................................................................... 120
连接语法 ............................................................................... 120
连接和关系模型 .................................................................... 121
如何使连接结构化 ....................................................................... 121
from 子句 .............................................................................. 123
where 子句 ........................................................................... 124
如何处理连接 ............................................................................... 126
等值连接和自然连接 .................................................................... 126