目 录
译者序
前言
第1章 引言
1.1如何阅读本书
1.2如何阅读SQL语法
1.3什么是SQL?
1.4SQL一致性
1.4.1最小一致性
1.4.2 <SQL对象标识符>
1.4.3增强一致性
1.5SQL语句类
1.5.1事务初始化SQL语句
1.5.2应使用哪一个SQL语句?
1.6SQL规则求值顺序
第2章 一般概念
2.1集合论
2.1.1关系
2.1.2集合运算
2.2概要:关系模型
2.3SQL环境
2.4SQL对象
2.4.1群集
2.4.2<授权ID>
2.4.3特权
2.4.4目录
2.4.5模式
2.4.6表
2.4.7列
2.4.8域和UDT
2.4.9约束和断言
2.4.10字符集
2.4.11排序
2.4.12翻译
2.4.13触发器
2.4.14模块
2.4.15SQL调用例程
2.5SQL数据类型
2.5.1预定义<数据类型>
2.5.2构造<数据类型>
2.5.3用户定义类型
2.5.4数据类型转换
2.5.5站点
2.5.6定位器
2.6 SQL语言元素
2.6.1<SQL特殊字符>
2.6.2<标记>
2.6.3<分隔符>
2.6.4<字符>
2.6.5<关键字>
2.6.6<标识符>
第3章 数字
3.1 数字<字符>
3.1.1<精确数字字符>
3.1.2<近似数字字符>
3.2数字<数据类型>
3.2.1INTEGER
3.2.2SMALLINT
3.2.3NUMEBIC
3.2.4DECIMAL
3.2.5FLOAT
3.2.6REAL
3.2.7DOUBLEPRECISION
3.3IEEE二进制浮点
3.4 数字运算
3.4.1CAST
3.4.2赋值
3.4.3比较
3.4.4其他操作
3.5选择正确的<数据类型>
3.6供应商专用语
3.7SQL库
第4章 位串
4.1<位串字符>
4.1.1二进制<位串字符>
4.1.2十六进制<位串字符>
4.2位串<数据类型>
4.2.1BIT
4.2.2BITVARYING
4.3位运算
4.3.1CAST
4.3.2赋值
4.3.3比较
4.3.4其他运算
第5章 二进制串
5.1<BLOB字符>
5.2BLOB<数据类型>
5.3BLOB运算
5.3.1CAST
5.3.2赋值
5.3.3比较
5.3.4其他运算
第6章 字符
6.1什么是字符?
6.1.1拉丁字母
6.1.2英语
6.1.3法语
6.1.4德语
6.1.5西班牙语
6.1.6荷兰、意大利、葡萄牙、
巴斯克和卡塔兰语
6.1.7威尔士语
6.1.8北欧语言
6.1.9中欧语言
6.1.10波罗的海语言
6.1.11土耳其语
6.1.12斯拉夫语
6.1.13希腊语
6.1.14其他语言
6.2其中有什么?
6.3预定义字符集
6.3.1SQLCHARACTER
6.3.2GRAPHICIRV和ASCIIGRAPHIC
6.3.3LATIN1
6.3.4ISO8BIT和ASCIIFULL
6.3.5UNICODE和ISO10646
6.3.6SQL_TEXT
第7章 字符串
7.1字符串<字符>
7.1.1 <字符串字符>
7.1.2 <国家特有字符串字符>
7.2字符串<数据类型>
7.2.1CHARACTER
7.2.2NATION ALCHARACTER
7.2.3CHARACTERVARYING
7.2.4 NATIONAL CHARACTER
VARYING
7.2.5CHARACTERLARGE
OBJECT
7.2.6 NATIONALCHARACTERLARGE
OBJECT
7.3 字符串操作
7.3.1CAST
7.3.2赋值
7.3.3比较
7.3.4其他操作
7.4 字符串和字符集
7.5字符串和排序
7.6供应商专用语
第8章 时间值
8.1预备知识
8.1.1格雷果里历
8.1.2闰秒
8.1.3 时区
8.2 时间<字符>
8.2.1日期时间<字符>
8.2.2时间间隔<字符>
8.3时间<数据类型>
8.3.1日期时间<数据类型>
8.3.2时间间隔<数据类型>
8.4 时间运算
8.4.1CAST
8.4.2赋值
8.4.3比较
8.4.4其他运算
8.5供应商专用语
8.6SQL程序库
第9章 布尔值
9.1<布尔字符>
9.2 布尔<数据类型>
9.3布尔值运算
9.3.1CAST
9.3.2赋值
9.3.3比较
9.3.4其他运算
第10章 聚合类型
10.1聚合<数据类型>
10.1.1ARRAY
10.I.2ARRAY<元素引用>
10.1.3<数组值构造符>
10.2聚合运算
10.2.1CAST
10.2.2赋值
10.2.3比较
10.2.4其他运算
10.3理解示例
第11章 行类型
11.1行<数据类型>
11.1.1ROW
11.1.2 <行引用>
11.1.3 <字段引用>
11.1.4 <行值构造符>
11.2行操作
11.2.1赋值
11.2.2比较
11.2.3其他操作
11.2.4标量操作
11.2.5集函数
11.2.6判断
11.3综合示例
第12章 引用类型
12.1引用<数据类型>
12.2引用操作
12.2.1CAST
12.2.2赋值
12.2.3比较
12.2.4其他操作
第13章 空值
13.1用NULL代表丢失的数据
13.2NULL的含义
13.3三值逻辑
13.3.1判断
13.3.2<空值判断>
13.4 可空性
13.5重复的缺陷
13.6NUIL的趣事
13.6.1NUIL规范
13.6.2集函数
13.6.3搜索
13.6.4约束
13.6.5标量操作符和函数
13.6.6排序
13.6.7UNIQUE 判断
13.6.8<引用类型>
13.6.9SOL/ CLI
13.7优化程序问题
13.8NUILoclasts与NUILodules
13.8.1NULIoclast方
13.8.2NUlLLodule方
第14章 SQL群集
14.1群集的概念
14.2群集的名称
第15章 授权ID
15.1<授权ID>
15.1.1用户
15.1.2 角色
15.1.3 <授权ID>的类型
15.1.4 <授权ID>名
15.2CREATEROLE语句
15.3特权
15.4 GRANT语句
15.4.1 <授权特权语句>
15.4.2 <授权角色语句>
15.5数据控制
15.5.1操作和对象
15.5.2用户/角色
15.5.3所有者
15.5.4表的授权
15.5.5视图上的GRANT
15.5.6过程的GRANT
15.5.7约束
15.6 REVOKE 语句
15.7 DROP ROLE语句
15.8拥有一个什么样的特权
15.9违反安全系统
15.10 用户函数
15.11供应商专用语
第16章 SQL目录
16.1目录
16.2目录名
16.3信息模式
16.3.1INFORMATION-SCHEMA
基本表
16.3.2INFORMATION SCHEMA
断言
16.3.3INFORMATION SCGEMA
域
16.3.4 INFORMATI ON SCHEMA
视图
第17章 SQL模式
17.1模式的构成
17.2CREATESCHEMA语句
17.3DROPSCHEMA语句
第18章 SQL表和视图
18.1基本表
18.2视图
18.3表名
18.3.1 <表名>
18.3.2 <关联名>
18.4列
18.5CREATETABLE语句
18.5.1<表内容源子句>
18.5.2临时表
18.6 <列定义>
18.6.1<数据类型>
18.6.2DEFAULT子句
18.6.3<列约束>
18.6.4<默认子句>
18.7ALTERTABLE 语句
18.7.1ADD[COLU'MN]子句
18.7.2ALTER[COLUMN]
SETDEFAULT子句
18.7.3ALTER[COLU MN ]
DROPDEFAULT子句
18.7.4 ALTER[COLUMN]
ADDSCOPE子句
18.7.5ALTER [COLUMN]
DROPSCORE子句
18.7.6DROP[COLUMN]
子句
18.7.7ADD[表约束]子句
18.7.8DROPCONSTRAINTT子句
18.8DROPTABLE语句
18.9CREATEVTEW语句
18.9.1特权
18.9.2<列名>子句
18.9.3AS子句
18.9.4WITHCHECKOPTION
子句
18.9.5RECURSIVE视图
18.10从视图以外获得更多
18.11DROPVIEW语句
18.12DECLARETABLE语句
18.13供应商专用语
第19章 SQL域
19.1域
19.2CREATEDOMAIN语句
19.2.1特权
19.2.2 <数据类型>
19.2.3DEFAULT子句
19.2.4 <域约束>
19.3ALTERDOMAIN语句
19.3.1SET DEFAULT 子句
19.3.2DROPDEFAULT子句
19.3.3ADD<域约束>子句
19.3.4DROP CONSTR AINT子句
19.4 DROPDOMAIN语句
19.5常用数字域
第20章 SQL约束和断言
20.1约束
20.1.1非决定性约束
20.1.2约束可延迟性
20.1.3约束名
20.1.4 <表约束>和<列约束>
20.1.5 <域约束>
20.2约束描述符
20.3约束定义
20.3.1 <约束名>
20.3.2约束类型
20.3.3延迟模式
20.3.4约束检查时间
20.4 约束类型:UNIQUE约束
20.5约束类型:PRIMARYKEY约束
20.6约束类型:FOREIGN KEY约束
20.6.1引用列
20.6.2被引用表和列
20.6.3特权
20.6.4MATCH子句
20.6.5引用行为
20.7约束型:NOTNULL约束
20.8约束类型:CHECK约束
20.9CREATEASSERTION语句
20.10互锁引用
20.11撤消约束
20.12DROPASSERTION语句
20.13供应商专用语
第21章 SQL字符集
21.1字符集
21.2CREATECHARACTERSET语句
21.3DROPCHARACTERSET语句
第22章SQL排序
22.1排序
22.1.1排序名
22.1.2使用形式转换名
22.2CREATECOLLATION语句
22.3DROPCOLLATION语句
第23章 SQL翻译
23.1翻译
23.2CREATETRANSLATION语句
23.3DROPTRANSLATION语句
第24章 SQL触发器
24.1触发器
24.2CREATETRIGGER语句
24.2.1ON子句
24.2.2触发器动作时间
24.2.3触发事件
24.2.4REFERENCING子句
24.2.5触发动作
24.3触发器的激活
24.4 触发器范例
24.4.1触发器范例:记录删除
24.4.2触发器范例:插入默认
表达式
24.4.3触发器范例:约束替换
24.4.4 触发器范例:级联更新
24.5触发器与约束
24.6DROPTRIGGER语句
24.7供应商专用语
第25章 SQL调用例程
25.1例程
25.1.1SQL调用例程名
25.1.2SQL参数名
25.2CREATEPROCEDURE/FUN-
CTION/METHOD语句
25.2.1CREATE<例程名>
子句
25.2.2参数说明清单
25.2.3RETURNS 子句
25.2.4例程特征子句
25.2.5STATICDISPATCH
子句
25.2.6 <例程体>
25.3例程参数
25.3.1参数模式
25.3.2 <SQL参数名>
25.3.3 <数据类型>
25.3.4 RESULT
25.4调用例程
25.4.1CALL语句
25.4.2 <例程调用>
25.5例程示例
25.5.1例程示例:重置过程
25.5.2例程范例:常量函数
25.5.3例程范例:子查询函数
25.5.4例程范例:撤消过程
25.6 RETURN语句
25.7外部例程
25.7.1NAME子句
25.7.2 PARAMETERSTYLE语句
25.7.3TRANSFORM GROUP子句
25.8ALTERROUTINE/PROCEDURE
/FUNCTION/MEIHOD语句
25.9DROPROUTINE/PROCEDURE
/FUNCTION/METHOD语句
25.10 供应商专用语
第26章 PSM:不仅仅是永久存储模块
26.1永久存储模块
26.2CREATEMODULE语句
26.3ALTERMODULE语句
26.4DROPMODULE语句
26.5BEGIN...END复合语句
26.5.1ATOMIC语句
26.5.2变量
26.5.3赋值语句
26.5.4光标
26.5.5状态
26.5.6处理程序
26.5.7标识
26.6SIGNAL语句
26.7RESIGNAL语句
26.8程序控制
26.8.1CASE语句
26.8.2IF语句
26.8.3LOOP语句
26.8.4LEAVE 语句
26.8.5WHILE语句
26.8.6REPEAT语句
26.8.7FOR语句
26.8.8ITERATE 语句
26.9是否每项内容都在SQL中?
26.10供应商专用语
第27章 用户定义类型
27.1UDT
27.2UDT范例
27.3基于UDT的列
27.4定义一个基于UDT的类型表
27.4.1将类型表作为一个表
27.4.2将类表作为一个可
例示的表
27.5CREATETYPE语句
27.6CREATETABLE语句
27.7CREATECAST语句
27.8CREATE ORD ERING语句
27.9对象/关系用户的其他处理
27.9.1ALTERTYPE语句
27.9.2CREATEMETHOD 语句
27.9.3CREATETRANSFORM
语句
27.9.4 DROPCAST语句
27.9.5DROPORDERING语句
27.9.6DROPTRANSFRM语句
27.9.7DROPTYPE语句
27.9.8NEW语句
27.9.9TREAT语句
27.9.10DEREF函数
27.9.11SPECIFICTYPE函数
27.9.12间接引用操作
27.9.13TYPE判断
27.10 对象/关系真正是面向对象的吗?
27.11供应商专用语
第28章 SQL数据操作简介
28.1<值规范>
28.2<值表达式>
28.3<行值构造符>
28.4<目标规范>
第29章 简单搜索条件
29.1真值
29.2SELECT语句
29.2.1FROM子句
29.2.2WHERE 子句
29.2.3GROUP BY子句
29.2.4HAVING子句
29.2.5SELECTLIST子句
29.2.6简单检索
29.2.7限定检索
29.2.8带有字符检索
29.2.9带有计算表达式的检索
29.2.10带有LIKE 的检索
29.2.11以SIMILAR 检索
29.2.12利用ISNULL检索
29.2.13带有标量函数的检索
29.2.14使用日期计算检索
29.2.15连结
29.3判断
29.3.1 <比较判断>
29.3.2 <之间判断>
29.3.3 <相异判断>
29.4 搜索条件
29.4.1子句中的搜索条件
29.4.2搜索举例
29.5SQL的<情况表达式>
29.6供应商专用语
第30章 连接搜索
30.1连接的表
30.1.1笛卡尔过滤连接
30.1.2笛卡尔过滤连接Ⅱ:CR0SS
JOIN
30.1.3JOIN...USING
30.1.4NATURALJOIN
30.1.5JOIN..ON
30.1.6自连接
30.1.7Theta连接
30.1.8错误连接
30.1.9多表连接
30.1.10避免重复
30.1.11外部连接
30.1.12联合连接
30.2语法规则
30.3供应商专用语
第31章 子查询搜索
31.1子查询语法
31.2标量子查询
31.3行子查询
31.4表子查询
31.5定量比较
31.5.1ALL
31.5.2ANY或SOME
31.5.3定量检索
31.6判断
31.6.1 <之内判断>
31.6.2 <存在判断>
31.6.3 <唯一判断>
31.6.4 <匹配判断>
31.6.5 <定量判断>
31.7连接与子查询
31.8子查询范例
31.9子查询提示
31.10 供应商专用语
第32章 集合算符搜索
32.1<查询表达式>
32.2集合运算语法
32.2.1ALLIDISTINCT
32.2.2 对应
32.3结果名和ORDERBY
32.4结果<数据类型>和兼容性
32.5集合运算范例
32.6 更新能力
32.7递归合并
32.8供应商专用语
第33章 成组搜索
33.1GROUPBY子句
33.1.1成组列规则
33.1.2 新语法
33.2集函数
33.2.1DISTINCT集函数
33.2.2集函数和“忽略NULL”
策略
33.2.3子查询中的集函数
33.2.4使用集函数检索
33.3HAVING子句
33.3.1不带GROUPBY的
HAVING
33.3.2 使用成组检索
33.4组视图
33.5供应商专用语
第34章 整理搜索结果
34.1ORDERBY子句
34.1.1排序NULL
34.1.2DESC的作用
34.1.3不赞成的SQL-92
语法
34.1.4SQL3特性
34.1.5排序的检索
34.2供应商专用语
第35章 更改SQL数据
35.1SQL数据更改语句
35.2INSERT语句
35.2.1INSERT列清单
35.2.2<查询表达式>
35.2.3DEFAULTVALUES
35.2.4INSERT范例
35.2.5INSERT机制
35.3UPDATE语句
35.3.1SET列
35.3.2SET行
35.3.3UPDATE范例
35.3.4UPDATE机制
35.4DELETE语句
35.4.1DELETE范例
35.4.2DELETE机制
35.5数据更改操作
35.6供应商专用语
第36章 SQL事务
36.1开始事务
36.2终止事务
36.2.1COMMIT语句
36.2.2SAVEPOINT语句
36.2.3ROLLBACK语句
36.2.4RELEASESAVEPOINT
语句
36.3使用存储点
36.4事务提示
36.5相关信息
36.6供应商专用语
第37章 SQL事务并行处理
37.1隔离现象
37.2悲观的并行操作:LOCKING
37.3乐观的并行处理:TIMESTAMPING
37.4SETTRANSACTION语句
37.4.1访问方式
37.4.2隔离级
37.4.3SET LOCAL TRAN SACTION
37.5START TRANSACTION语句
37.6特殊问题
37.7事务和约束检查
37.8供应商专用语
第38章 SQL会话
38.1SQL连接
38.1.1CONNECT语句
38.1.2SETCONNECTION语句
38.1.3DLSCONNECT语句
38.2SQL 会话管理
38.2.1SETSESSIONCHARACTE
RISTICS语句
38.2.2SETSESSIONAUTHO
RIZATION语句
38.2.3SETROLE语句
38.2.4 SETTIM EZONE语句
第39章 嵌入式SQL绑定格式
39.1什么是嵌入式SQL?
39.2预编译器
39.3SQL前缀和终结符
39.4 宿主变量
39.4.1SQL <数据类型>和
宿主变量的对应
39.4.2输入和输出变量
39.4.3指示符变量
39.5光标
39.5.1DECLARECURSOR语句
39.5.2OPEN语句
39.5.3FETCH语句
39.5.4单元素SELECT语句
39.5.5INSERT语句
39.5.6 定位的UPDATE语句
39.5.7定位的DELETE语句
39.5.8CLOSE语句
39.6嵌入式SQL范例
39.7诊断
39.7.1WHENEVER语句
39.7.2GETDIAGNOSTICS语句
39.8动态SQL
39.9小结
39.10供应商专用语
第40章 SQL/CLI 绑定格式
40.1CHAP40.1.C
40.2SQLCHAR 、SQLINTEG ER和其他
Typedef
40.3SQLRETURN
40.4句柄关系
40.5如何运行范例程序
40.6“标准的SQLCLI”等于“核心
ODBCAPI”
40.7如何描述每一个CLI函数
40.8Charac terStri ngRetrieval
第41章 SQL/CLI:env 函数
41.1空值结束
41.2SQLAllocHandle
41.3SQLAllocEnv
41.4SQLCetEnvAttr
41.5SQLSetEnvAttr
41.6SQLFreeHandle
41.7SQLFree Env
第42章 SQL/CLI:dbc 函数
42.1SQLAllocHandle
42.2SQLAllocConncet
42.3SQLConnect
42.4SQLDisconnect
42.5SQLGetConnectAttr
42.6SQLSetConnectAttr
42.7SQLFreeHandle
42.8SQLFree Connect
第43章 SQL/CLI:stmt 函数
43.1SQLAllocHandle
43.2SQLAllocStmt
43.3SQLGetStmtAttr
43.4SQLSetStmtAttr
43.5SQLFreeHandle
43.6SQLFreeStmt
第44章 SQL/CLI:语句函数
44.1预备SQL语句
44.2SQLPrepare
44.3SQLExecute
44.4SQLExecDirect
44.5 SQLE ndTran
第45章 SQL/CLI:光标函数
45.1SQLFetch
45.2SQLFetchScroll
45.3SQLCloseCursor
45.4SQLGetCursorName
45.5SQLSetCursorName
45.6嵌入式SQL与CLI
45.6.1定位的UPDATEIDELETE
语句
45.6.2单元素SELECT
45.6.3敏感光标
45.6.4可保持光标
45.7SQLMoreResults
第46章 SQL/CLI:desc 函数
46.1描述符区域
46.2desc 字段
46.2.1desc标题字段
46.2.2 desc 项目描述符区域
字段
46.3desc 函数
46.3.1SQLAll ocHandle
46.3.2SQLFreeHandle
46.3.3SQLGetDescField
46.3.4SQLSetDescField
46.3.5SQLGetDescRec
46.3.6SQLSetDescRec
46.3.7SQLCopy Desc
46.3.8SQLB indCol
46.3.9SQLGe tDate
46.3.10SQLBi ndPara meter
46.3.11SQLColAt tribute
46.3.12SQLDescribeCol
46.3.13SQLNumResultCol
46.3.14SQLGetParamData
第47章 SQL/CLI:诊断函数
47.1SQLGetDiagField
47.1.1 诊断字段:标题
47.1.2 诊断字段:状态记录
47.2SQLGetDiagRec
47.3SQLError
47.4SQLRowCount
47.5SQLSTATE代码
47.5.1 SUCCESSCOMPLETION
SQLSTATE
47.5.2WARNING SQLSTATE
47.5.3 NODATASQLSTATE
47.5.4ERRORSQLSTATE
第48章 SQL/CLI:通用函数
48.1SQLDataSou rces
48.2SQLGetF unction
48.3SQLGetInfo
第49章 SQL/CLI:延迟参数函数
49.1如何传送延迟参数
49.2SQLParar nData
49.3SQL PutData
49.4SQLCancel
第50章 SQL/CLI:定位器函数
50.1什么是定位器?
50.1.1 FREELOCATOR语句
50.1.2HOLDLOCATOR 语句
50.2SQLGetLength
50.3SQLGetPosition
50.4SQLGetSubsString
第51章 SQL/CLI:目录函数
51.1预备知识
51.2SQLColumnPrivileges
51.3SQLColumns
51.4SQLForeignKeys
51.5SQLTypeInfo
51.6SQIPatameters
51.7SQLPrimaryKeys
51.8SQLRoutinePrivileges
51.9SQLRoutines
51.10SQLSpecialColumns
51.11SQLTablePrivileges
51.12SQLTables
51.13结束语
第52章 模块绑定格式
52.1SQL客户模块
52.2MODULE语句
52.3PROCEDURE语句
第53章 格式
53.1授权
53.2布局规则
53.3命名规则
53.4正式格式语句范例
53.5宿主语言程序
53.6小结