DB2学习(特性总结)
DB2学习(特性总结)
作者:雷智民
日期:2006-10-25 命令行登陆DB2
db2 => connect to zvfims user root using leizhimin 然后可以在命令行写sql语句并执行。
-----------------第一部分:DB2 SQL基础----------------- 1、case语句:提供条件表达方式
case
when x<0 then -1 when x=0 then 0 when x>0 then 1 end 2、cast函数:类型转换。
3、with关键字:定义公共表达式的关键字,供复杂查询使用,对表达式的重复引用使用同一个结果集。
WITH PAYLEVEL AS (SELECT EMPNO,EDLEVEL, YEAR(HIREDATE) AS HIREYEAR, SALARY+BONUS+COMM AS TOTAL_PAY FROM EMPLOYEE WHERE EDLEVEL>16), PAYBYED(EDUC_LEVEL,YEAR_OF_HIRE,AVG_TOTAL_PAY) AS
(SELECT EDLEVEL,HIREYEAR, AVG(TOTAL_PAY) FROM PAYLEVEL GROUPBY EDLEVEL,HIREYEAR) SELECT EMPNO,EDLEVEL,YEAR_OF_HIRE,TOTAL_PAY, DECIMAL(AVG_TOTAL_PAY,7,2)
FROM PAYLEVEL,PAYBYED WHERE EDLEVEL=EDUC_LEVEL AND HIREYEAR=YEAR_OF_HIRE AND TOTAL_PAY<AVG_TOTAL_PAY 4、多级嵌套的子查询 5、EXCEPT 运算符 SELECT ID,NAME FROM STAFF WHERE SALARY>21000 EXCEPT SELECT ID,NAME FROM STAFF WHERE JOB='Mgr' AND YEARS<8 6、INTERSECT运算符
SELECT ID,NAME FROM STAFF WHERE SALARY>21000 INTERSECT SELECT ID,NAME FROM STAFF WHERE JOB='Mgr' AND YEARS<8 7、IN 谓词
SELECT NAME
FROM STAFF WHERE DEPT IN (20,15) 相当于: SELECT NAME FROM STAFF WHERE DEPT=20 OR DEPT=15 8、BETWEEN 谓词
SELECT LASTNAME FROM EMPLOYEE WHERE SALARY BETWEEN 10000 AND 20000 相当于: SELECT LASTNAME FROM EMPLOYEE WHERE SALARY>=10000 AND SALARY<=20000 9、LIKE 谓词
10、EXISTS 谓词
SELECT DEPTNO,DEPTNAME
FROM DEPARTMENTX WHERE NOTEXISTS (SELECT * FROM PROJECT WHERE DEPTNO=X.DEPTNO) ORDERBY DEPTNO 11、定量谓词
表达式>ALL(全查询); SELECT LASTNAME,JOB
FROM EMPLOYEE WHERE SALARY> ALL (SELECT SALARY FROM EMPLOYEE WHERE JOB='MANAGER') 表达式>ANY(全查询);
表达式>SOME(全查询);
12、ROLLUP 和 CUBE 查询
在查询的group by字句中指定 ROLLUP和CUBE运算 ROLLUP分组产生包含常规分组行和小计的结果集。 CUBE分组产生包含来自ROLLUP和交叉制表行中的结果集。 13、递归查询:是迭代使用结果数据来确定进一步结果的查询。是使用包括引用自己名称的公共表达式来编写的。
DB2中的递归查询使用WITH字句实现,也成为公共表达式。 公共表达式与临时视图非常类似,然而,临时视图仅在定义它的单条SQL语句执行期间有效。 递归查询通常有三个部分:
一个公共表达式形式的虚拟表。 一个初始化表。 一个与虚拟表进行完全内连接的辅助表。 参考:《IBM DB2 高级管理指南》 -----------------第二部分:DB2 SQL定制和增强-----------------
14、用户定义类型:
创建一个PAY的单值类型,与内部数据类型DECIMAL(9,2)有相同的表示。 CREATE DISTINCT TYPE PAY AS DECIMAL(9,2) WITH COMPARISONS 15、用户定义函数:
CREATE FUNCTION MAX(PAY) RETURNS PAY SOURCE MAX(DECIMAL) CREATE FUNCTION关键字用于向数据库注册用户自定义的函数MAX(PAY),以后就可以直接在sql中使用该函数。 16、大对象(LOB)
二进制大对象(BLOB)是变长字符串,最大长度2G。主要用来保存非传统数据,如图片、声音及混合媒体等。 字符大对象(CLOB)是变长字符串,最大长度2G。用于存储大的单字节字符集数据。被认为是字符串。 双字节大对象(DBLOB)是双字节的变长字符串,用于存储大的双字节字符集数据。如文档等。 参考文档: 本文出自 51CTO.COM技术博客http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0503melnyk/index.html http://www-128.ibm.com/developerworks/cn/db2/zones/basics/index.html 《IBM DB2 高级管理指南》 |



leizhimin
博客统计信息
热门文章
最新评论
友情链接