SQL1.docx

上传人:b****6 文档编号:6177460 上传时间:2023-01-04 格式:DOCX 页数:49 大小:43.22KB
下载 相关 举报
SQL1.docx_第1页
第1页 / 共49页
SQL1.docx_第2页
第2页 / 共49页
SQL1.docx_第3页
第3页 / 共49页
SQL1.docx_第4页
第4页 / 共49页
SQL1.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

SQL1.docx

《SQL1.docx》由会员分享,可在线阅读,更多相关《SQL1.docx(49页珍藏版)》请在冰豆网上搜索。

SQL1.docx

SQL1

目录

第一章AS/400DB2结构化查询语言介绍

1.1SQL概念

1.1.1关系数据库和术语

1.1.2SQL语句类型

1.2SQL目标

1.2.1集合

1.2.2表、行和列

1.2.3视图

1.2.4索引

1.2.5约束

1.2.6触发器

1.2.7存储过程

1.2.8包

1.3应用程序目标

1.3.1用户源文件成员

1.3.2临时源文件成员

1.3.3程序

1.3.4包

1.3.5模块

1.3.6服务程序

第二章启动SQL

2.1启动交互SQL

2.2建立SQL集合

2.3建立和使用表

2.4使用LABELON语句

2.5往表中插入信息

2.6获取单表信息

2.7获取多表信息

2.8更改表信息

2.9删除表信息

2.10建立和使用视图

2.10.1建立单表视图

2.10.2建立多表数据合并的视图

第三章基本概念和技术

3.1使用基本SQL语句和子句

3.1.1INSERT语句

3.1.2UPDATE语句

3.1.3DELETE语句

3.1.4SELECTINTO语句

3.1.5数据检索错误

3.1.6SELECT子句

3.1.7WHERE子句

3.1.8GROUP子句

3.1.9HAVING子句

3.1.10ORDERBY子句

3.2使用NULL值

3.3使用专用寄存器

3.4使用日期、时间、时间标记

3.4.1当前日期和时间错误

3.4.2日期/时间运算

3.5使用LABLEON

3.6使用COMMITON

3.6.1获得注释

3.7在SQL中使用分类顺序

3.7.1用ORDERBY和记录选择分类排序

3.7.2ORDERBY

3.7.3记录选择

3.7.4分类顺序和视图

3.7.5分类顺序和CREATEINDEX语句

3.7.6分类顺序和约束

第四章使用游标

4.1游标的类型

4.1.1连续游标

4.1.2滚动游标

4.2使用游标举例

4.2.1第一步:

定义游标

4.2.2第二步:

打开游标

4.2.3第三步:

到达数据结束时做什么

4.2.4第四步:

用游标检索行

4.2.5第五A步:

更新当前行

4.2.6第五B步:

删除当前行

4.2.7第六步:

关闭游标

4.3使用多行FETCH语句

4.3.1使用主结构数组的多行FETCH

4.3.2使用行存储区的多行FETCH

4.4工作单元和打开游标

第五章高级编码技术

5.1高级插入技术

5.1.1用选择语句往表中插入行

5.1.2使用块插入语句

5.2避免重复行

5.3执行复杂的检索条件

5.3.1检索条件中的键字

5.4从多个表中连接数据

5.4.1内连接

5.4.2左连接

5.4.3异常连接

5.4.4交叉连接

5.4.5在一个语句中使用多个连接

5.4.6连接的注意事项

5.5用UNION键字合并子选择

5.5.1规定UNIONALL

5.6使用子查询

5.6.1相关性

5.6.2子查询和检索条件

5.6.3使用子查询

5.6.4使用UPDATE和DELETE的子查询

5.6.5使用子查询的几点说明

5.6.6相关子查询

5.6.7在UPDATE语句中使用相关子查询

5.6.8在DELETE语句中使用相关子查询

5.6.9使用相关子查询的几点说明

5.7改变表定义

5.8建立和使用视图

5.9使用索引

5.10数据库设计中使用目录

5.10.1获取表的目录信息

5.10.2获取列的目录信息

第六章数据完整性

6.1AS/400DB2检查约束

6.2AS/400DB2引用完整性

6.2.1生成有引用约束的表

6.2.2取消引用约束

6.2.3往有引用约束的表中插入数据

6.2.4更新有引用约束的表

6.2.5从有引用约束的表中删除数据

6.2.6检查未决

6.3关于视图中的WITHCHECKOPTION

6.3.1WITHCASCADEDCHECKOPTION

6.3.2WITHLOCALCHECKOPTION

6.4AS/400DB2触发器支持

6.4.1触发器样本

第七章存储过程

7.1定义外部过程

7.2定义SQL过程

7.3请求存储过程

7.3.1使用有过程定义时的CALL语句

7.3.2使用无过程定义时的CALL语句

7.3.3使用带有SQLDA的嵌入的CALL语句

7.3.4无CREATEPROCEDURE时使用动态CALL语句

7.4存储过程参数传递的规则

7.5指示器变量和存储过程

7.6返回对调用程序完成状态

7.7举例

7.7.1例1从ILEC应用中调用ILEC和PL/I过程

第八章动态SQL应用

8.1设计和运行动态SQL应用程序

8.2处理Non—SELECT语句

8.2.1动态SQL语句的CCSID

8.2.2使用PREPARE和EXECUTE语句

8.3处理SELCET语句和使用SQLDA

8.3.1固定列表的SELECT语句

8.3.2可变列表的SELECT语句

8.3.3SQL描述区(SLQDA)

8.3.4SQLDA格式

8.3.5分配SQLDA存储的SELECT语句例子

8.3.6使用游标

8.3.7使用参数标记

第九章在主语言中使用SQL的一般概念和规则

9.1在SQL语句中使用主变量

9.1.1赋值规则

9.1.2指示器变量

9.2处理SQL错误返回码

9.3用WHENEVER处理异常条件

第十章C程序中的SQL语句(略)

第十一章COBOL程序中的SQL语句(略)

第十二章PL/I程序中的SQL语句(略)

第十三章RPG/400程序中的SQL语句(略)

第十四章ILERPG/400程序中的SQL语句

14.1定义SQL通讯区

14.2定义SQL描述区

14.3嵌入SQL语句

14.3.1举例

14.3.2注释

14.3.3SQL语句的续行

14.3.4包含代码

14.3.5顺序号

14.3.6名字

14.3.7语句标号

14.3.8WHENEVER语句

14.4使用主变量

14.4.1说明主变量

14.5使用主结构

14.6使用主结构数组

14.7使用外部文件描述

14.7.1主机结构数组的外部文件描述考虑

14.8确定相同的SQL和RPG数据类型

14.8.1ILE/400变量说明及用法

14.9使用指示器变量

14.9.1举例

14.10取多行区的SQLDA例子

第十五章REXX程序中的SQL语句(略)

第十六章准备及运行有SQL语句的程序

16.1SQL预编译的基本处理

16.1.1预编译的输入

16.1.2源文件CCSID

16.1.3预编译的输出

16.2非ILE预编译命令

16.2.1编译一个非ILE程序

16.3ILE编译命令

16.3.1编译一个ILE程序

16.4解释程序编译错误

16.4.1编译期间的错误和警告信息

16.5联编应用程序

16.5.1程序引用

16.6显示预编译选项

16.7运行嵌入SQL的程序

16.7.1OS/400DDM考虑

16.7.2替换考虑

16.7.3SQL返回码

第十七章使用交互SQL

17.1交互SQL的基本功能

17.1.1启动交互SQL

17.1.2使用语句入口功能

17.1.3提示

17.1.4使用列表选择功能

17.1.5会话服务描述

17.1.6结束交互SQL

17.1.7使用已有的SQL会话

17.1.8SQL会话的恢复

17.1.9用交互SQL访问远程数据库

第十八章使用SQL语句处理器

18.1出错后语句的执行

18.2SQL语句处理器的落实控制

18.3SQL语句处理器的模式

18.4SQL语句处理器的源成员清单

第十九章AS/400DB2的数据保护

19.1安全

19.1.1权限ID

19.1.2视图

19.1.3审查

19.2数据完整性

19.2.1并发控制

19.2.2日志

19.2.3落实控制

19.2.4原子操作

19.2.5约束

19.2.6保存/重存

19.2.7破坏容差

19.2.8索引恢复

19.2.9目录完整性

19.2.10用户辅助存储池

第二十章应用程序中的SQL语句

20.1建立测试环境

20.1.1设计测试数据结构

20.2测试SQL应用程序

20.2.1程序调试段

20.2.2性能验证段

20.2.3SQL应用性能验证使用的CL命令

20.2.4性能信息

20.2.5性能信息及打开数据路径

第二十一章使用AS/400DB2预测查询管理

21.1取消查询

21.2一般实施的考虑

21.3用户应用程序实施的考虑

21.4对查询信息的缺省回答控制

21.5使用性能测试管理

21.6举例

第二十二章AS/400DB2数据管理和查询优化

22.1数据管理方法

22.1.1访问路径

22.1.2访问方法

22.2位图处理方法

22.3数据访问方法总结

22.4优化

22.4.1成本估算

22.4.2访问方案验证

22.4.3优化决策规则

22.4.4连接优化

22.4.5分组优化

22.5改善连接查询的性能

22.6有效使用SQL索引

22.7使用有分类排序的索引

22.7.1使用有选择、连接或分组的索引和分类排序

22.7.2排序

22.7.3索引例子

22.8使用VARCHAR和VARGRAPHIC数据类型的技巧

22.9从多个表中选择数据性能的改善

22.10减少打开数据库操作数目来改善性能

22.11由数据库管理分组考虑而带来的性能改善

22.12使用FETCHFORnROWS的性能改善

22.12.1SQL分块的性能改善

22.13使用INSERTnROWS的性能改善

22.14分页交互显示数据的性能改善

22.15用有效的SELECT语句的性能改善

22.16使用活动数据的性能改善

22.17使用ALWCPYDTA参数的性能改善

22.18使用优化子句的性能改善

22.19由保留游标位置的性能改善

22.19.1为非ILE程序调用的保留游标位置带来的性能改善

22.20由保留游标位置跨越ILE程序调用带来的性能改善

22.21对所有程序调用保留游标位置的一般规则

22.22SQLPREPARE语句性能的改善

22.23使用长目标名对性能的影响

22.24使用预编译选项的性能改善

22.25由结构参数传送技术产生的性能改善

22.25.1参数传送的后台信息

22.25.2结构参数传送技术的区别

22.26监控数据库查询性能

22.27控制并行处理

22.27.1控制并行处理系统权

22.27.2控制一个作业的并行处理

第二十三章解决公共数据库问题

23.1通过检索数据分页

23.2反序检索

23.3表尾位置的建立

23.4往表尾加数据

23.5从表中检索时更新数据

23.5.1约束

23.6更新先前检索的数据

23.7修改表定义

第二十四章分布式关系数据库功能

24.1AS/400DB2分布式关系数据库支持

24.2AS/400DB2分布式关系数据库样板程序

24.3SQL程序包支持

24.3.1SQL程序包中有效的SQL语句

24.3.2生成SQL程序包的考虑

24.4SQL的CCSID考虑

24.5连接管理和活动组

24.5.1连接与对话

24.5.2PGM1的源码

24.5.3PGM2的源码

24.5.4PGM3的源码

24.5.5同一个关系数据库的多个连接

24.5.6对缺省活动组的隐式连接管理

24.5.7非缺省活动组的隐式连接管理

24.6分布式支持

24.6.1确定连接类型

24.6.2连接和落实控制约束

24.6.3确定连接状态

24.6.4分布式工作单元连接考虑

24.6.5结束连接

24.7分布式工作单元

24.7.1管理分布式工作单元连接

24.7.2游标和准备语句

24.8应用请求驱动程序

24.9问题处理

第一章AS/400DB2结构化查询语言介绍

 

本书介绍AS/400系统中使用的DB2结构化查询语言(SQL),DB2查询管理和SQL开发工具第四版特许程序的有关内容,SQL管理关系型数据的信息,SQL语句能嵌套在高级语言中,动态地准备和运行或交互地运行。

SQL由描述用数据库中的数据做什么的语句和子句组成,以及所需条件的说明。

SQL通过DDM访问远程数据库。

这个功能将在本书第二十四章给出说明,详细内容请看分布式数据库程序设计一书。

1.1SQL概念

AS/400SQL由下列主要部分组成:

SQL运行时支持

SQL运行时从语法上解释SQL语句及运行任何一条SQL语句。

这种支持是操作系统/400特许程序的一部分,即在系统没有安装DB2查询管理和SQL开发工具特许程序的情况下,含SQL语句的应用程序也能在系统上运行。

SQL预编译器

SQL预编译支持在主语言中预编译嵌套的SQL语句。

以下是所支持的语言:

—ILEC/400*

—COBOL/400*

—ILECOBOL/400*

—AS/400PL/I*

—RPGⅢ(RPG/400*的一部分)

—ILERPG/400*

SQL主语言预编译准备的包括SQL语句的应用程序.然后主语言编译器编译已预编译过的主源程序。

详细内容,请看第十六章。

预编译器的支持是DB2查询管理和SQL开发工具特许程序的一部分。

SQL交互接口

SQL交互接口允许建立并执行SQL语句。

关于交互SQL的详细信息可在第十

七章中查到。

交互SQL是DB2查询管理器和SQL开发工具特许程序的一部分。

运行SQL语句的CL命令

RUNSQLSTM允许运行一系列SQL语句,它们存在源码文件中。

RUNSQLSTM是DB2查询管理器和SQL开发工具特许程序的一部分。

第十八章中有SQL语句运行的详细说明。

AS/400DB2查询管理

AS/400DB2查询管理提供提示驱动的交互接口。

这个接口允许生成数据、添加数据、维护数据,及在数据库上运行报表。

查询管理是DB2查询管理器和SQL开发工具特许程序的一部分。

详细内容请看《AS/400DB2查询管理》。

SQLREXX接口

SQLREXX接口允许在REXX过程中运行SQL语句。

这个接口是DB2查询管理器和SQL开发工具特许程序的一部分。

要了解在REXX过程中使用SQL语句的详细信息,请看第十五章。

SQL调用级接口

AS/400DB2支持SQL调用级接口。

它允许使用任何ILE语言的用户通过过程调用由系统提供的服务程序直接访问SQL功能。

使用SQL调用级接口,不必预编译就可以实现所有的SQL功能。

这是一个标准的过程调用;准备SQL语句,执行SQL语句,获取数据甚至可以实现访问目录、为输出列连接程序变量等高级功能。

在AS/400DB2SQL调用接口(ODBL)一书中,对所有可用功能函数及其语法有详细的描述。

QSQPRCEDAPI

这个应用程序接口(API)提供了扩展的动态SQL能力。

由SQL语句形成SQL软件包,然后由API执行。

软件包中的语句通过API存留,直到明显的删除软件包或语句。

QSQPRCED是OS/400特许程序的一部分,在《系统API参考》中有更多的QSQPRCEDAPI的信息。

QSQCHKSAPI

这个API语法检查SQL语句。

QSQCHKS是OS/400特许程序的一部分。

在《系统API参考》中有更多的QSQCHKSAPI的信息。

DB2多系统

这个操作系统的特性是允许数据跨越AS/400多个系统。

在《AS/400的DB2多系统》中有更多的说明。

DB2对称多处理

这个系统的特性是为取出那些包含并行处理的数据给出附加方法提供查询优化。

对称多处理(SMP)是在一个单系统中得到并行处理模式,这个系统有多处理器(CPU和I/O处理器),这些处理器为了一个共同的最终目标而共享内存和磁盘资源。

并行处理意味着数据库管理器能使多个(或全部)系统处理器为一个查询同时工作。

在22.27中阐述了怎样进行并行处理。

1.1.1关系数据库和术语

在关系数据模型中,所有的数据放在表中。

DB2目标做为AS/400系统的目标来生成和维护。

下表给出AS/400系统术语和SQL关系数据库术语间的相互关系。

关于数据库的详细信息在《AS/400DB2数据库程序设计》一书中可了解到。

表1-1系统术语和SQL术语的关系

系统术语

SQL术语

库:

一组相关目标并允许通过

名字查找目标。

集合:

由库、日志、日志接收器、SQL集合和可选的数据字典组成。

集合把相关目标组合在一起,并允许由名字查找目标。

物理文件:

一系列记录。

表:

一系列行和列。

记录:

一系列字段。

行:

由一些列组成表中的水平部分。

字段:

同一数据类型的有关信息的一个或

多个字符

列:

一个数据类型表当中的垂直部分。

逻辑文件:

一个或多个物理文件中字段和

记录的子集

视图:

一个或多个表的列和行的子集。

SQL包:

用来运行SQL语句的目标类型

包:

用来运行SQL语句的目标类型。

用户配置文件

授权名或授权ID

1.1.1.1SQL术语

在AS/400DB2程序设计中有两个命名约定:

系统(*SYS)和SQL(SQL)。

命名约定影响限定文件名和表名及在交互SQL显示项的方法。

对REXX是通过SETOPTION语句来选择的,所用的命名约定是由SQL命令参数选择。

系统命名(*SYS):

在系统命名约定中,文件由下列格式用库名限定:

库/文件

如果没有明显规定限定表名且在CRTSQLxxx

(1)或CRTSQLPKG命令的DFTRDBCOL参数规定了缺省的集合名,则使用缺省的集合名。

若表名未明显限定且没规定缺省集合名,限定的规则为:

下面的CREATE语句处理没有限定的目标:

—CREATETABLE—在当前库中生成表(*CURLIB)

—CREATEVIEW—在子集中第一个引用的库中生成视图

—CREATEINDEX—在建索引的表所在库或集合里生成索引

—CREATEPROCEDURE—在当前库中生成过程

所有其它的SQL语句会使SQL在库列表中检索未限定表。

缺省关系数据库集合(DFTRDBCOL)参数仅对静态SQL语句适用。

SQL命名(*SQL):

在SQL命名约定中,表由下面格式的集合名限定:

集合.表

若表名没有明显限定且在CRTSQLxxx命令中规定了DFTRDBCOL参数,则使用缺省集合名。

如果没有明显限定表名且没规定缺省集合名,那么规则为:

—对静态SQL,缺省的限定名是程序主人的用户配置文件。

—对动态SQL或交互SQL,缺省的限定名是运行语句作业的用户配置文件。

(1)这里的xxx表示嵌入SQL的主语言,它们可以是CI、CBL、CBLI、PLI、RPG、RPGI。

1.1.2SQL语句类型

SQL有四种基本语句类型:

数据定义语句(DDL)、数据操作语句(DML)、动态SQL语句和混杂语句。

SQL能处理用SQL生成的目标,也能处理AS/400外部说明的物理文件和单格式逻辑文件,且不管它们是否在SQL集合中,但不能引用程序说明文件的IDDU字典定义,程序说明文件在表中只做一列出现。

SQL数据定义语句

SQL数据操作语句

ALTERTABLE

COMMENTON

CREATECOLLECTION

CREATEINDEX

CREATEPROCEDURE

CREATESCHEMA

CREATETABLE

CREATEVIEW

DROPCOLLECTION

DROPINDEX

DROPPACKAGE

DROPPROCEDURE

DROPSCHEMA

DROPTABLE

DROPVIEW

GRANTPACKAGE

GRANTPROCEDURE

GRANTTABLE

LABELON

RENAME

REVOKEPACKAGE

REVOKEPROCEDURE

REVOKETABLE

CLOSE

COMMIT

DECLARECURSOR

DELETE

FETCH

INSERT

LOCKTABLE

OPEN

ROLLBACK

SELECTINTO

UPDATE

 

动态SQL语句

其他SQL语句

DESCRIBE

EXECUTE

EXECUTEIMMEDIATE

PREPARE

BEGINDECLARESECTION

CALL

CONNECT

DECLAREPROCEDURE

DECLARESTATEMENT

DECLAREVARIABLE

DESCRIBETABLE

DISCONNECT

ENDDECLARESECTION

INCLUDE

RELEASE

SETCONNECTION

SETOPTION

SETRESULTSETS

SETTRANSACTION

WHENEVER

1.2SQL目标

在AS/400系统中SQL的目标有:

集合、表、视图、SQL包、索引和目录。

SQL把这些目标做为AS/400数据库目标来生成和管理。

下面是对这些目标简短描述。

1.2.1集合

集合提供对SQL目标的逻辑分类。

集合由库、日志、日志接收器、目录和可选的数据字典组成。

表、视图、系统目标(例如程序)能在任何AS/400库中建立、移动、重存。

如果SQL集合中不包括数据字典,所存AS/400文件也能在SQL集合中生成或移动。

如果SQL集合包括数据字典,则AS/400源物理文件或一个成员的非源物理文件能在S

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1