mysql与oracle在一些基本的sql中存在差异
表结构如下
create table test( id int, name varchar(10), subject varchar(10), score varchar(10), primary key( id ) );
1:获取值的差异。
在MySQL可以使用如下查询
select 1 , '张三' , '语文' , '89'
查询结果如下
而对于oracle不支持该语法。
如果oracle要查询则使用一下语法
select 1 , '张三' , '语文' , '89' from dual
2:插入多条数据的差异
在MySQL中可以使用insert语句将多条记录一起插入
例如
insert into test values( 1 , '张三' , '语文' , '89'),( 2 , '李四' , '数学' , '90'),( 3 , '张三' , '数学' , '78'),( 4 , '李四' , '语文' , '75')
mysql还可以使用该种方式插入
insert into test select 1 , '张三' , '语文' , '89' union select 2 , '李四' , '数学' , '90' union select 3 , '张三' , '数学' , '78' union select 4 , '李四' , '语文' , '75'
对于Oracle来说没有该语法结构,那么该怎么处理只能使用select与union 或者union all组合插入,也可以使用insert一条一条插入
insert into test ( select 1 , '张三' , '语文' , '89' from dual union select 2 , '李四' , '数学' , '90' from dual union select 3 , '张三' , '数学' , '78' from dual union select 4 , '李四' , '语文' , '75' from dual )
3:as后接中文的差异
MySQL 使用as关键字后接中文除了第一个 as 后接的中文可以不用''引起来,其他的都应使用''引起
Oracle则不应使用''引起来
例如
以下前两个在MySQL中是正确的,而对于Oracle中是错误的,最后一个Oracle中是正确,MySQL中错误
select name as 姓名, score as '分数' from test select name as '姓名', score as '分数' from test -- select name as 姓名, score as 分数 from test
4:group by 的差异
对于MySQL来说,查询中字段可以不存在group by中,Oracle,查询的所有字段都应在group by 中
例如
select id ,name from test group by name
在MySQL中是正确的,但在Oracle中会提示 不是Oracle GROUP BY表达式的错误
在Oracle只能这样查询
select id ,name from test group by name, id
即查询的字段都应存在group by 中
5:锁差异
Oracle锁加在数据块上,InnoDB锁加在主键索引上,所以InnoDB总是有主键索引,myisam锁加在表上。
相关推荐
Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。
mysql和oracle和sql语句 mysql和oracle和sql语句
Oracle数据库sql转换mysql数据库工具,用需要的同学可以下载
Mysql的表对象Sql语句转换单表,转换成Oracle创建表sql,在样本.txt粘贴Mysql的单表所有字段信息,输入表名。就会在控件台输出转换后的Oracle语句。
支持Mysql与oracle自动在excel中生成创建sql语句,非常强大,如果想使用sqlserver看我上一资源
对ORACLE-SQL进行一些布局优化,更新它的格式
执行带一个存储过程参数的的SQL语句。 向数据库里插入图像格式的字段 执行一条计算查询结果语句,返回查询结果 执行查询语句,返回MySqlDataReader 执行查询语句,返回DataSet 执行SQL语句,返回影响的记录数 执行多...
excel自动生成创建表语句,支持MySql,Oracle,SQLServer三种创建方式,自动生成目录文档,方便查看与管理。
一个可以从oralce转换为mysql语句的客户端,操作简单,按照向导只需要几步即可完成,各位小伙伴记得给个好评哦!
使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 Dbmover for Mysql to Oracle 可以定时,定周期自动运行。 支持 Oracle 8i 以后...
oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本
数据库 Mysql转oracle sql脚本转oracle脚本
本猿最近做数据库迁移,修改了大量sql语句,对oracle和MySQL语法之间的一些不同之处总结了一些。
在excel中编写表结构后,可以在首页生成对应数据库脚本,包括MySQL、oracle、sqlserver,然后把该脚本在数据库中运行就可以了,还包括首页生成目录结构,有助于数据库表文档的编写
此完档自动生成SQL代码支持mysql/oracle/sqlserver,Excel自动生成mysql及oracle及sqlserver语句。
创建表空间,创建表结构,对于表的增删改查等基本操作,只有基础部分,没有进阶,表结构与MySQL基本一致,只有表空间有所不同
mysql虚拟了一个rowid(类似跟oracle的rowid)--SQL语句
解压之后安装使用,内部是mysql和oracle数据库生成工具,可以生成sql语句,连接查询。解压之后安装使用,内部是mysql和oracle数据库生成工具,可以生成sql语句,连接查询
sql语句优化.chmmssql优化 mysql优化 oracle优化
数据库转换工具,可实现oracle,mysql,sqlserver,sybase,db2相互转换