*. MySQL别名不区分大小写, MySQL字符比较也不区别大小写.
*. 包含null的任何运算(is null 除外), 包括null = null, MySQL返回NULL, Oracle(........待定..).
*. Oracle中, 如果列名长于列限定字符数, 那么输出的列名会被截断.
*. MySQL 4.0以后的版本支持UNION和UNION ALL, 但仍不支持INTERSECT和MINUS.
日期:
*. MySQL只支持类似于2002-3-12或者96-12-1的日期格式.
*. 日期运算MySQL是用DATE_ADD(date, interval 2 month)这样的函数运算, 而Oracle用类似于ADD_MONTHS(date, 2)这样样的函数来运算.
*. Oracle可以使用MONTHS_BETWEEN, NEW_TIME, NEXT_DAY这样的函数计算日期.
*. Oracle使用SYSDATE获得当前时间, MySQL使用NOW()
字符
*. 字符串引用, Oracle只能用单引号, MySQL还可以用双引号.
*. 用字符型数据使用算术运算符, Oracle报错, MySQL会先将此数据转换为数值.
*. MySQL中"||"符号默认是"或"运算符, 连接字符串用函数CONCAT.
*. MySQL中取得字符ASCII码用函数ASCII(), Oracle用CHR()
*. Oracle可以使用INITCAP函数让字符串首字母大字.
*. MySQL中使用REPLACE函数时必须要写全三个参数.
*. REPLACE函数中, 第二个和第三个任一参数为NULL, MySQL返回NULL而Oracle在第二个参数为NULL时会返回字符串, 第三个参数缺少或为NULL时会删除与第二个参数匹配的字符.
*. Oracle中可以使用translate来进行字符串替换.
*. Oracle中不可以对数值使用length函数. MySQL自动将数值转换为字符.
GROUP BY 和 HAVING
*. Oracle中, 有GROUP BY子句的查询, SELECT后只能出现聚合函数或者GROUP BY子句中作为分组条件的列. MySQL可以使用其它列, 该列的值将等于指分组条件在查询时第一个出现的行的该列的值.
*. MySQL中, 同时包含GROUP BY和HAVING的子句, 只可以在HAVING中使用聚合函数或者SELECT中作为列表的列Oracle中可以使用其它列, 这个列是指该分组的所有行的列. 比如 HAVING col <5, 指该分组所有行的col列均小于5
$ db2 describe table sysibm.sysdummy1Column Type Typename schemaname Length Scale Nulls------------------------------ --------- ------------------ -------- ----- -----IBMREQDSYSIBMCHARACTER 1 0 No1 record(s) selected.
SYSIBM.SYSDUMMY1表是一个内存的特殊表(按照Oracle的术语,习惯称之为“伪表”),常用于访问DB2中的寄存器,从而返回特定需要内容。(此外VALUES也可用于访问寄存器)$ db2 select current timestamp from sysibm.sysdummy11
--------------------------
2007-01-21-14.51.04.891837
1 record(s) selected.
$ db2 values current timestamp
1
--------------------------
2007-01-21-14.51.20.124162
1 record(s) selected.
$
建立DUAL视图:
create view dual as select IBMREQD as DUMMY from SYSIBM.SYSDUMMY1这样查询就可以直接从DUAL中取系统数据了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)