支持常见数据库差异对照说明
类 | 项 | Oracle | SQLServer 2005(+) | MYSQL 4.x | OSCAR | DB2 |
服务 | JDBC端口 | 1521 | 1433(需要补丁) | 3306 | 2003 |
|
字段类型 | 字符 | VARCHAR2 | VARCHAR | VARCHAR or TEXT | VARCHAR | VARCHAR |
数值 | NUMBER | NUMERIC | DECIMAL | NUMERIC/DECIMAL | NUMERIC | |
布尔 | NUMBER(1) | NUMERIC(1) | DECIMAL(1) | NUMERIC(1) | NUMERIC | |
日期时间 | DATE | DATETIME | DATETIME | TIMESTAMP (DATE只能存储日期值) | DATE | |
函数 | 系统时间函数 | sysdate | getdate() | now() | getdate() or current_date | current date |
长日期转换函数 | to_date(‘值’,’YYYY-mm-dd hh24:mi:ss’) | ‘值’ | ‘值’ | to_timestamp(‘值’,’YYYY-mm-dd hh24:mi:ss’) | ‘值’ | |
短日期转换函数 | to_date(‘值’,’YYYY-mm-dd’) | ‘值’ | ‘值’ | to_date(‘值’,’YYYY-mm-dd’) | ‘值’ | |
SQL语法 | 创建字段 | ALTER TABLE … ADD … | ALTER TABLE … ADD … | ALTER TABLE … ADD … | ALTER TABLE … ADD … | ALTER TABLE … ADD COLUMN … |
修改字段 | ALTER TABLE … MODIFY(…) | ALTER TABLE … ALTER COLUMN … | ALTER TABLE … CHANGE … | ALTER TABLE … ALTER COLUMN … | ALTER TABLE … ALTER COLUMN … | |
删除字段 | ALTER TABLE … DROP COLUMN | ALTER TABLE … DROP COLUMN … | ALTER TABLE … DROP … | ALTER TABLE … DROP … |
| |
创建表 | CREATE TABLE … () | CREATE TABLE … () | CREATE TABLE … () | CREATE TABLE … () | CREATE TABLE … () | |
创建普通索引 | CREATE INDEX … ON … () | CREATE INDEX … ON … () | CREATE INDEX … ON … () | CREATE INDEX … ON … () | CREATE INDEX … ON … () | |
创建唯一索引 | CREATE UNIQUE INDEX … ON …() | CREATE UNIQUE INDEX … ON …() | CREATE UNIQUE INDEX … ON …() | CREATE UNIQUE INDEX … ON …() | CREATE UNIQUE INDEX … ON …() | |
删除索引 | DROP INDEX indexname | DROP INDEX table.indexname | ALTER TABLE … DROP INDEX indexname | DROP INDEX indexname | DROP INDEX indexname |
其他:
DB Provider | SQL分页语法 | JDBC URL Sample |
Oracle | select * from (select rownum r,t1.* from tableName t1 where 其他条件 and rownum <(当前页*每页行数+1) order by id) t2 where t2.r>((当前页-1)*每页行数) | oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@192.168.0.3:1521:prj |
SQLServer | select * from (select rownum r,t1.* from tableName t1 where 其他条件 and rownum <(当前页*每页行数+1) order by id) t2 where t2.r>((当前页-1)*每页行数) | net.sourceforge.jtds.jdbc.Driver jdbc:jtds:sqlserver://192.168.0.2:1433/finaltest;characterEncoding=gb2312 |
MYSQL | select * from tableName t1 where 其他条件 order by id limit 返回记录行的偏移量,返回记录行的最大数目 偏移量起始值为0 | com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/aws40_test1?characterEncoding=gb2312 |
Oscar | select * from tableName t1 where 其他条件 order by id limit count OFFSET offset count至多返回count行 offset在开始返回第一行之前要忽略的行数 | com.oscar.Driver jdbc:oscar://localhost:2003/osrdb |
DB2 | SELECT * FROM (Select rownumber() over() as row,taball.* from ( select * from tableName where 其他条件 order by id) as taball) AS tabpage WHERE tabpage.row BETWEEN 起始行数 AND 结束行数 | com.ibm.as400.access.AS400JDBCDriver jdbc:as400://172.16.16.7/AWS |