首页 > 学技术 > 技术网文 > IBM AS400应用论坛 > 正文

[原创] 【原创】利用SQL和DB2 Query Manager for AS/400创建数据用表


来源 chinaunix.net 酷勤网整理

1、在命令行输入STRQM,进入“DB2 Query Manager for AS/400” 菜单画面

[ 本帖最后由 pantierui 于 2006-10-20 09:41 编辑 ]



1





 pantierui 回复于:2006-10-19 11:08:00

2、选择3回车,指定库后再回车进入“使用查询管理器表”画面

[ 本帖最后由 pantierui 于 2006-10-20 09:41 编辑 ]



2





3




 pantierui 回复于:2006-10-19 11:08:33

3、在Opt上选择1,进入创建表画面



4




 pantierui 回复于:2006-10-19 11:09:04

按照文字提示,完成表的创建。比如,建个客户表CUSTOM。也可以在图4时按F21(按F21的时候列等选项不能写值)



5




 pantierui 回复于:2006-10-19 11:09:39

在图5中可以更加详细的定义表。在字段等项处按F4可以看到图6。



6




 pantierui 回复于:2006-10-19 11:10:10

按照图4或图5定义好后回车显示图7画面。



7




 pantierui 回复于:2006-10-19 11:10:51

按照图4或图5定义好后回车显示图7画面。



7




 pantierui 回复于:2006-10-19 11:11:26

按F19添加数据。



8




 pantierui 回复于:2006-10-19 11:12:04

用此方法创建的表有个缺点,那就是列名就是字段名。
我们可以用SQL语句来修改。
修改方法如下:
1、在命令行上输入STRSQL进入SQL执行环境。



9




 pantierui 回复于:2006-10-19 11:12:40

2、在图9中输入LABEL ON,按F4获得更多提示。根据提示可以出现图10画面。



10




 pantierui 回复于:2006-10-19 11:13:51

回车进入修改画面
注意列标题的名称一定要用单引号括起来不然会出错。
修改后如图12。但是在图3中用9时还如图8那样。

[ 本帖最后由 pantierui 于 2006-10-19 11:29 编辑 ]



11





12



SQL Query Manager.rar


 pantierui 回复于:2006-10-19 11:39:22

类型 - 帮助 


INTEGER (INT)                                              
    大整数。若选择 INTEGER ,则不要指定   长度   和   标度。                                                                                                              
SMALLINT                                                   
    小整数。若选择 SMALLINT ,则不要指定   长度   和   标度。                                                                                                         
BIGINT                                                     
    大整数。若选择了 BIGINT ,则不要指定   长度   和   标度。                                                                                                           
FLOAT                                                      
     浮点数。若选择 FLOAT ,则应指定精度(   长度   ),而   
     不是   标度   。若   长度   界于 1 和 24 之间(且包括   
       1 和 24 ),则格式采用单精度浮点。若   长度   界于    
       25 和 53 之间包括 25 和 53 ),则格式采用双精度浮点   
     。若不指定   长度   ,则缺省值是 53 。若指定了单精度浮  
     点 (REAL) 或双精度浮点 (DOUBLE PRECISION) ,则不要指定 
       长度   及   标度   。                                                                                              
 NUMERIC                                                     
     区位十进制数。第一个整数是数值(数字的总位数)的精度,  
     范围可以从 1 到 31 。第二个整数是数值(到小数点右边为   
     止的位数)的标度,范围可以从 0 到精度值。若选择         
     NUMERIC ,应指定精度(   长度   )和   标度   。若指定  
       长度   但不指定   标度   ,则   标度   缺省为 0 。若  
     同时忽略   长度   和   标度   ,则   长度   的缺省值是  
       5 ,   标度   的缺省值是 0 。                                                                                  
 DECIMAL (DEC)                                             
     十进制数。第一个整数是数值(数字的总位数)的精度,范围
     可以从 1 到 31 。第二个整数是数(到小数点右边为止的位 
     数)的标度,范围可以从 0 到精度值。若选择 DECIMAL ,则
     应指定精度(   长度   )和   标度   。若指定   长度   
       但不指定   标度   ,则   标度   缺省为 0 。若同时忽 
     略   长度   和   标度   ,则   长度   的缺省值是 5 , 
       标度   的缺省值是 0 。                                                                                         
 CHARACTER (CHAR)                                          
     固定长度字符串。长度(由一个整数指定)可以从 1 到     
     32766 (若允许为空,则为 32765 )。对于混合数据,范围 
     是 4 到 32766 (若允许为空,则为 32765 )。若忽略精度 
     (   长度   ),则缺省为 1 个字符。如果选择 CHAR ,则  
     可以指定   长度   但不是   标度   。                                                                               
 VARCHAR (CHARACTER VARYING, CHAR VARYING)                  
     可变长度字符串。所有字符串值都有相同的最大长度,此长度 
     由列的长度属性确定。长度必须指定为整数。   长度   可以 
     从 1 到 32740 (若允许为空,则为 32739 )。                                                                        
 LONG VARCHAR (对于 DECLARE PROCEDURE 无效)               
     长度可变的字符串,其最大长度由行中的空闲空间量确定。                                                               
 DATE                                                       
     一个三部分的值(年、月和日),指示“格里高利”日历的一 
     个时间点。年的范围是 1 到 9999 ,以公元 1 年开始。月的 
     范围是 1 到 12 。日部分的范围是 1 到 28 、 29 、 30    
       或 31 ,取决于月。不能指定   长度   和   标度   。                                                                 
 TIME                                                        
     一个三部分的值(小时、分和秒),指示一天中的 24 小时以  
     内时间。小时的范围是 0 到 24 。其他两部分的范围是 0     
       到 59 。如果小时为 24 ,则分和秒部分同为 0 。不能指   
     定   长度   和   标度   。                                                                                           
 TIMESTAMP                                                   
     一个七部分的值,指示“格里高利”日历的日期和时间。这七  
     部分为:                                                                                                             
         年 - 范围是 1 到 9999                                                                                            
         月 - 范围是 1 到 12                                 
         日 - 范围是 1 到 28, 29, 30 或 31 ,取决于月                                                                   
         小时 - 范围是 1 到 24                                                                                          
         分 - 范围是 0 到 59                                                                                            
         秒 - 范围是 0 到 59                                                                                            
         微秒 - 范围是 0 到 999999                          
     不能指定   长度   和   标度   。                                                                                   
 GRAPHIC                                                    
     使用图形数据类型。若不指定长度,则使用缺省值 1 。范围  
     为 1 到 16383 (若允许空,则为 16382 )。可指定   长度 
       。不能指定   标度   。                               
 VARGRAPHIC (GRAPHIC VARYING)                               
     使用长度可变的图形数据类型。必须指定长度。范围是 1 至  
       16370 (若允许空,则可以至 16369 )。不能指定标度。                                                              
 LONG VARGRAPHIC (对于 DECLARE PROCEDURE 无效)            
     长度可变的图形字符串,其最大长度由行中的空闲空间量确定。                                                                                                                 
 REAL                                                       
     对单精度浮点。不能指定   长度   和   标度   。                                                                     
 DOUBLE PRECISION (DOUBLE)                                  
     对双精度浮点。不能指定   长度   和   标度   。                                                                     
 CLOB (CHARACTER LARGE OBJECT 或 CHAR LARGE OBJECT)         
     在范围 1 到 2 吉字节 (2,147,483,648) 中的可变长度字符  
     串。可将该长度指定为整数、整数 K (千字节)、整数 M    
       (兆字节)或整数 G (吉字节)。不能指定   标度   。                                                              
 BLOB (BINARY LARGE OBJECT)                                 
     在范围 1 到 2 吉字节 (2,147,483,648) 中的可变长度二进  
     制字符串。可将该长度指定为整数、整数 K (千字节)、整  
     数 M (兆字节)或整数 G (吉字节)。不能指定   标度。                                                                                                               
 DBCLOB                                                     
     在范围 1 到 1 吉字节 (1,073,741,823) 中的可变长度双字  
     节字符串。可将该长度指定为整数、整数 K (千字节)、整  
     数 M (兆字节)或整数 G (吉字节)。不能指定   标度。                                                   
 DATALINK                                                   
     包含一个“统一资源定位器” (URL) 的变长字符串。长度可  
     从 1 到 32718 (如果可为空的话则为 32717 )。不能指定  
       标度   。                                                                                                        
 特殊类型                                                   
     存在于系统上的类型为 *SQLUDT 的对象名,它包含类型信息  
     。可用库来限定它。不能指定   长度   和   标度   。     
                                                            



 cu400 回复于:2006-10-19 16:21:09

不错不错.
看来创建数据用表不只是用DDS可以.


 l.rover 回复于:2006-10-19 22:20:16

不错。


 utirei 回复于:2006-10-24 10:03:06

这个工具比较好~


 老胖熊 回复于:2006-12-31 19:02:07

用sql不能建多member的表。


也许dds可能很难,各有各的长处。


 allatony 回复于:2007-01-02 08:31:58

好贴,精华,顶


 liziran6291 回复于:2007-01-04 20:26:20

SQL 和QRY 本来就是 作这个的么。

请教一下:谁知道 怎么在QRY里面生成 Redcod(多个)?

[ 本帖最后由 liziran6291 于 2007-1-4 20:31 编辑 ]


 pantierui 回复于:2007-01-24 17:38:52

引用:原帖由 liziran6291 于 2007-1-4 20:26 发表
SQL 和QRY 本来就是 作这个的么。

请教一下:谁知道 怎么在QRY里面生成 Redcod(多个)? 



在命令行处输入WRKQRY,选择1作成.进入如下画面.



1




 pantierui 回复于:2007-01-24 17:40:11

接着上图直接按回车,进入如下画面



2




 pantierui 回复于:2007-01-24 17:41:57

在上图中按F9可以添加多个文件如图



3




 pantierui 回复于:2007-01-24 17:43:38

两次回车进入结合类型选择.入图



4




 pantierui 回复于:2007-01-24 17:52:55

结合类型
 1= 匹配的记录                                             
     只选择在   所有   连接文件中都有匹配记录的记录。此连接
     类型仅使用在其他每一个所选文件中都有至少一个匹配记录的
     每个文件中的记录。                                    
 2= 与主文件匹配的记录                                      
     选择一个文件(主文件)中的   每一个   记录,并包括所有 
     其他文件(辅助文件)中的所有匹配的记录。无论是否匹配, 
     主文件中的每一个记录都会被选中。(主文件始终是在查询定 
     义中指定的第一个文件。)                               
                                                            
     若辅助文件中没有与主文件记录的连接说明匹配的记录,则系 
     统定义的缺省值,如空白(对于字符字段)或零(对数字字    
     段),会用作该辅助文件所选字段的数据。 iSeries 格式的   
     日期、时间和时间戳记字段将显示缺省值。 SAA 格式的日期   
     和时间戳记字段将把年、月、日都显示为 1 。               
                                                             
     然而,如果辅助文件是用 DDS 定义的,且如果 DFT 关键字用  
     于对此处使用的所有字段定义缺省值,则将使用这些值来替代  
     空白和零。                                              
                                                             
     有关 DFT 关键字的详情,参考   DDS Reference   手册。    
                                                             
 3= 与主文件不匹配的记录                                     
     在主文件中,仅选择在至少在一个辅助文件中没有匹配项的记  
     录。即,选择的每个主记录并非在   所有   辅助文件中都有  
     匹配的记录。例如,如果连接了四个文件,而三个辅助文件中 
     只有两个拥有匹配的记录,则在主文件及两个辅助文件中,包 
     含所选信息的记录将会作为查询输出中的单个记录被包括。   
                                                            
     象前一连接类型一样,会对辅助文件中缺少的记录的字符和数 
     字字段使用 DDS 中定义的空白、零或缺省值。如果指定了的  
     话,将会对日期、时间和时间戳记数据使用缺省值。         
     Note:  对于每一种连接类型,若连接值为空值,将不选择记  
     录。




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=844006
转载请注明作者名及原文出处



收藏本页到: