目录 1
第1章 数据库概念 1
本章内容 1
数据模型 1
存储数据 2
查询数据 2
修改数据 2
集中管理 3
控制数据库使用 3
并发操作与安全性 3
重要数据库术语 4
对象关系型模型 4
表格 4
列 5
行 5
表格操作 5
对象关系型模型 5
结构化查询语言 6
标准SQL 7
InformixSQL和ANSISQL 7
交互式SQL 7
常规编程 7
支持ANSI的数据库 7
GLS数据库 8
小结 8
SELECT语句简介 9
本章内容 9
第2章 编写SELECT语句 9
基本概念 10
SELECT语句形式 13
特殊数据类型 14
单表格SELECT语句 14
选择所有列和行 14
选择指定列 18
使用WHERE子句 25
建立比较条件 25
用FIRST子句选择特定行 37
表达式与派生值 39
在SELECT语句中使用rowid值 45
多表SELECT语句 48
生成笛卡儿积 48
建立连接 50
查询快捷方式 55
选择不在当前数据库中的表格 59
小结 60
选择行类型数据 61
第3章 从复杂类型选择数据 61
本章内容 61
选择类型表的列 62
选择包含行类型数据的列 63
从集合中选择 66
选择嵌套集合 67
用关键字IN搜索集合元素 68
在表格层次中选择行 69
带关键字ONLY选择父表中的行 70
不带关键字ONLY选择父表中的行 70
对父表使用别名 71
小结 71
第4章 在SELECT语句中使用函数 72
本章内容 72
在SELECT语句中使用函数 72
合计函数 72
时间函数 77
日期换算函数 81
基数函数 84
智能大型对象函数 85
字符串操作函数 86
其他函数 91
在SELECT语句中使用SPL例程 97
在SELECT语句中使用rowid值 98
使用rowid值与USER函数 99
使用rowid值与DBSERVERNAME函数 100
小结 101
使用GROUPBY和HAVING子句 102
本章内容 102
第5章 编写高级SELECT语句 102
使用GROUPBY子句 103
使用HAVING子句 106
生成高级连接 107
自连接 108
外连接 111
SELECT语句中的子查询 115
选择表中的子查询 116
WHERE子句中的子查询 117
在SELECT语句中处理集合 122
集合子查询 123
集合派生表 124
集操作 125
并集 125
差集 132
小结 132
删除行 134
修改数据的语句 134
第6章 修改数据 134
本章内容 134
删除表中所有行 135
删除确定数量的行 135
删除未知数量的行 135
删除包含行类型的行 136
删除包含集合类型的行 136
删除父表中的行 136
复杂的删除条件 136
单行 137
插入行 137
将行插入类型表 139
插入行类型列 139
在父表中插入行 141
在列中插入集合值 141
插入智能大型对象 143
多行及表达式 143
插入选择的限制 143
更新行 144
更新为统一值 145
选择要更新的行 145
更新选择的值 146
更新限制 146
更新行类型 147
更新集合类型 148
更新父表行 148
用CASE表达式更新列 149
用SQL函数更新智能大型对象 149
数据库级权限 150
表级权限 150
数据库的权限 150
用连接更新列 150
显示表格权限 151
数据完整性 151
实体完整性 152
语义完整性 152
参照完整性 153
对象方式与违例检测 155
中断修改 160
事务日志 161
事务 161
指定事务 162
用Informix数据库服务器备份和登记 162
并发操作与锁定 163
Informix数据复制 163
小结 164
程序中的SQL 165
SQLAPI中的SQL 165
本章内容 165
第7章 用SQL编程 165
应用程序语言中的SQL 166
静态嵌入 166
动态语句 166
程序变量与主机变量 166
调用数据库服务器 167
SQL通信区 168
SQLCODE字段 168
SQLWARN数组 169
SQLERRD数组 169
SQLERRM字符串 170
SQLSTATE值 170
检索单行 171
数据类型换算 171
使用null数据 172
处理错误 172
检索多行 174
声明临时表 174
取行 175
打开临时表 175
临时表输入方式 176
临时表的活动集 177
使用临时表:部件分解 178
动态SQL 180
准备语句 180
执行准备的SQL 181
嵌入数据定义语句 182
快速执行 182
释放准备的语句 182
动态主机变量 182
嵌入授权与取消权限 183
小结 184
第8章 通过SOL程序修改数据 186
本章内容 186
使用DELETE 186
直接删除 186
用临时表删除 188
使用插入临时表 189
使用INSERT 189
常量行 191
插入示例 191
使用UPDATE 193
使用更新临时表 193
清理表格 194
小结 195
锁定与性能 196
锁定与统一性 196
本章内容 196
第9章 多用户环境编程 196
并发操作与性能 196
并发操作问题 197
锁定的工作情况 198
锁定种类 198
锁定范围 198
锁定期 201
用SELECT语句锁定 202
设置隔离级 202
修改期间的锁定 202
更新临时表 205
保留更新锁 206
用INSERT、UPDATE和DELETE语句加锁 206
了解锁类型的行为 207
用访问方式控制数据修改 207
设置锁定方式 208
等待锁定 208
不等待锁定 208
保持临时表 209
简单并发性 209
等待有限时间 209
处理外部死锁 209
处理死锁 209
使用SQL语句缓存 211
小结 211
第10章 生成和使用SPL例程 212
本章内容 212
SPL例程简介 212
SPL例程的作用 212
EnterpriseDecisionServer中的SPL例程 213
编写SPL例程 213
使用CREATEPROCEDURE或CREATEFUNCTION语句 213
指定例程名 214
完整例程举例 220
在程序中生成SPL例程 221
删除SPL例程 222
声明局部变量 223
定义与使用变量 223
声明全局变量 229
变量赋值 230
SPL例程中的表达式 232
编写语句块 232
隐式和显式语句块 232
使用临时表 233
用FOREACH循环定义临时表 233
使用IF-ELIF-ELSE结构 235
增加WHILE和FOR循环 236
退出循环 238
从SPL函数返回数值 238
返回单个值 239
返回多个值 239
处理行类型数据 240
点号优先 241
更新行类型表达式 241
基本步骤 242
集合示例 242
处理集合 242
声明集合变量 243
声明元素变量 243
将集合选入集合变量 243
将元素插入集合变量中 244
从集合中选择元素 246
删除集合元素 248
更新集合元素 250
更新整个集合 252
执行例程 258
使用EXECUTE语句 258
使用CALL语句 259
在表达式中执行例程 260
用RETURN语句执行外部函数 260
从SPL例程中执行临时表函数 261
动态例程名指定 261
例程的权限 262
执行例程的权限 263
授予和撤销Execute权限 263
注册例程的权限 263
与例程相关对象的权限 264
执行例程的DBA权限 265
查找SPL例程中的错误 266
查看编译警告 266
产生例程文本 267
调试SPL例程 267
捕获错误与恢复 269
异常处理 269
ONEXCEPFION语句的控制范围 270
用户生成异常 270
检查SPL例程中处理的行数 272
小结 272
第11章 生成与使用触发器 273
本章内容 273
何时使用触发器 273
如何生成触发器 273
指定触发事件 274
指定触发器名 274
定义触发操作 275
完整CREATETRIGGER语句 275
使用触发操作 275
使用BEFORE和AFTER触发操作 275
使用FOREACHROW触发操作 276
用SPL例程作为触发操作 278
使用选择触发器 279
执行触发操作的SELECT语句 279
表格层次中的触发器 279
执行选择触发器的限制 280
表格层次中各表格的选择触发器 281
重入触发器 281
跟踪触发操作 281
SPL过程中的TRACE语句示例 281
TRACE输出示例 282
产生错误信息 283
采用固定错误信息 283
产生可变错误信息 284
小结 284