1.MySQL中区分关键字和字段名称用的符号是` ,SQL server用的是[] ,Oracle用的是"" 引号之中严格区分大小写 不带引号的字段会全部被默认成大写
2.在Mysql和SQL server中,日期类型的字段可以直接用字符串或者日期类型数值 进行添加和修改该字段的内容 Oracle只可以用日期类型的数值进行添加不可以使用字符串
3.在对日期类型的字段进行like模糊查询时,Mysql可以直接使用 字段名+like+'%%' 的形式查询 ,SQL server和Oracle则需要先将字段名对应数值转换为字符串类型在进行like操作
4.在Oracle中表名不可以使用 表名 AS 别名 的方式操作 ,必须去掉as才可以进行对表名起别名
5.Mysql有show tables like +表名 的操作,SQL server 和 Oracle中没有此种操作方法,只能根据表名到所有表中去查
6.Mysql有show create table+表名的操作,SQL server和Oracle中没有,SQL server和Oracle复制的表中没有原先的索引
7.Mysql有desc 表名 字段名 的操作 , SQL server和Oracle要根据表名和字段名分别去进行查询
8.Mysql的分页方法是用 limit 1,2 的处理 ,SQL server是用 select top 1 的方式处理 ,Oracle 是使用rownum字段
9.Mysql使用GROUP_CONCAT(字段)进行字段名分组拼接,SQL server使用STRING_AGG(字段名,',') , Oracle使用wm_concat(字段名)
10.MySQL和SQL server中的CONCAT('1','2','3')在拼接字符串或者字段时可以在括号内有多个数值,Oracle只可以有两个,需要多个可以内套concat或者使用||符号
11.Mysql中的concat在拼接字段的时候,如果其中一个字段为null则整体返回结果为null,SQL server和Oracle则会返回其中有值s字段的拼接结果
12.MySQL和SQL server和Oracle在添加字段及注解时sql语句不同
13.MySQL和SQL server和Oracle在查询数据库中某个表的信息时,sql不同,并且Oracle中没有table_type这个字段
14.MySQL可以直接使用select * from 表名 group by 字段 进行分组查询,而SQL server和Oracle中group by 后面的字段必须是包含在select的查询字段中,或者包含在函数中
15.MySQL和SQL server查询结果与字段名称一致,Oracle查询结果默认字段名称为大写字母
16.sqlserver和Mysql,oracle的for update的使用方式不同
17.MySQL中的drop table if exists 语法,SQL server和Oracle中没有此语法,需要嵌套内查询来进行操作
18.MySQL中的if函数在SQL server和Oracle中都不可用,如果要判断是否为null,在SQL server中可以用isnull,Oracle中用nvl(a,b)或者nvl2(a,b,c),NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值,
NVL2(Expr1,Expr2,Expr3)如果Expr1为NULL,返回Expr3的值,否则返回Expr2的值
19.MySQL和Oracle中都有lpad函数,SQL server中要使用类似REPLICATE('0',4-LEN(CONVERT(varchar(4),id)))+CONVERT(varchar(4),id)的写法
20.MySQL和Oracle中都有substr函数,SQL server中类似函数为substring,而且其中的后两个参数不能为字符串类型
21.MySQL中有在添加的是否有if then的用法,SQL server和Oracle可能不行(待确认)
22.在Oracle中level字段必须要加上引号,不然会被当成关键字处理。
23.ORACLE中的关键字:level,resource
24.在Oracle中多个insert into 之间要用;隔开,前后要加begin end; (代码块的形式)。只用分号隔开目前会报无效符号的错误(去掉行尾的;也会报同样的错误,推测可能为jdbcTemplate的问题)