ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 自己整理的学习资料——DB2 V8数据库基础(十九)

自己整理的学习资料——DB2 V8数据库基础(十九)

原创 Linux操作系统 作者:rheet1978 时间:2008-10-17 13:02:54 0 删除 编辑

3.5    高级sql简单介绍

3.5.1   查询间使用运算词

l         UNION 运算符

UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

l         EXCEPT 运算符

EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

l         INTERSECT 运算符

INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。

注:使用运算词的几个查询结果行必须是一致的。

3.5.2   外连接

l         left outer join:

左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。

l         right outer join:

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

l         full outer join:

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

 

注:复合外连接按照从左到右的顺序执行连接,左边连接的结果集和右边连接

3.5.3   超级分组和移动函数

l         grouping sets:用来在单个sql中形成多级分组。

例:select company_id,node_id,count(customer_id) from customer group by grouping sets(company_id,node_id)

l         rollup:可以在单个数据库操作中形成多个分组。

select company_id,node_id,count(customer_id) from customer group by

rollup(company_id,node_id)

注:rollup操作不是可交换的操作,指定用户组的顺序是很重要的。

l         cube: 生成分组表中分组的所有组合。

例:select company_id,node_id,count(customer_id) from customer group by

cube(company_id,node_id)

l         over:移动函数可以帮助实现移动的数据分析

Select date,avg(qty) over(order by date rows between 1 preceding and 1 following) as values from sale

 

3.5.4   常用函数介绍

具体参见《SQL Reference Volume 1》

l         转化为数字类型的类型转化函数:

如果参数是一个数字表达式,返回与其相对应的浮点数,否则返回错误代码

              DOUBLE() 、FLOAT()

    SELECT  DOUBLE('5678')  FROM  TEST;

  返回整型常量中的数字、字符串或者日期、时间的整数表示.

INT()

         SELECT  ID, INT(‘111’) FROM TEST;

  返回整型常量中的数字、字符串或者时间戳的64位长整数表示.

BIGINT()

         SELECT  ID,BIGINT(time) FROM TEST;

SELECT  ID,BIGINT(“111”) FROM TEST;

返回整型常量中的数字、字符串的短整数表示.

SMALLINT()

SELECT  ID, SMALLINT (“111”) FROM TEST;

  返回一个数值的单精度浮点数表示.

REAL()

         SELECT  REAL(10)  FROM  TEST;

返回一个数值、decimal的字符串、integer的字符串floating-point的字符串、日期、时间或时间戳的decimal数值

              DEC[IMAL]()

              SELECT DEC(11) FROM TEST

       返回一个表示为字符串的值的16进制表示

HEX()

SELECT  HEX(16)  FROM  TEST;

  返回小于或等于参数的最大整数.

FLOOR()

         SLECT  FLOOR(88.93)   FROM   TEST;

 

l         转化为字符串类型的类型转化函数:

返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示

CHAR()

    SELECT  CHAR(SALARY,',')  FROM  TEST;

  返回具有由参数指定的ASCII码的字符,参数可以是INTEGER or SMALLINT

         CHR()

    SELECT  CHAR(167)  FROM  TEST;

  返回字符串、日期型、图形串的可变长度的字符串表示.

VARCHAR()

  SELECT   VARCHAR(name,50)  FROM TEST ;

返回SMALLINT,INTEGER, BIGINT or DECIMAL参数的字符串值

       DIGITS ()

       SELECT  DIGITS(id) FROM TEST

 

系统格式原因,本节未完。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9524210/viewspace-471547/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-06-09

  • 博文量
    84
  • 访问量
    548252