mysql与
oracle常见的几个区别,先说几个重要的(后续慢慢补上),如下:
a.插入多条数据的区别
oracle(10g)
1.begin...end
begin
insert into ta(id,name)values(1,'a');
insert into ta(id,name)values(2,'b');
end;
2.insert all into
insert all into ta(id,name)values(1,'a')
into ta(id,name)values(2,'b')
into ta(id,name)values(3,'c')
select 1 from dual; ###这句很重要,不能省略,注意前三句无分号
mysql
insert into ta(id,name)values(1,'a'),(2,'b');
b.连接字符串的区别
oracle(10g)
select 字段1 ||','||字段2 from ta;
mysql
1.select concat(字段1,字段2)from ta;(无缝连接)
2.select concat(',',字段1,字段2)from ta;(分隔符连接)
c.主键问题
主键 Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长; Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;
d.单引号
单引号的处理 MYSQL里可以用双引号包起字符串;
ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号;
e.翻页
翻页的SQL语句的处理 MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用ROWNUM<100, 不能用ROWNUM>80;
f.模糊查询速度
字符串的模糊比较 MYSQL里用 字段名 like '%字符串%';
ORACLE里也可以用 字段名 like '%字符串%' 但这种方法不能使用索引, 速度不快。
表重命名:
mysql:
rename table a to b == alter table a rename (to) b;
oracle:
rename a to b;