数据库oracle与mysql在语法上的区别
转⾃blog.csdn/huanghm88/article/details/8009048
数据库oracle与mysql在语法上的区别不是很多,但是也有⼀些。下⾯是部分参考:
1,oracle没有offet,limit,在mysql中我们⽤它们来控制显⽰的⾏数,最多的是分页了。oracle要分页的话,要换成rownum。
2,oracle建表时,没有auto_increment,所有要想让表的⼀个字段⾃增,要⾃⼰添加序列,插⼊时,把序列的值,插⼊进去。
3,oracle有⼀个dual表,当select后没有表时,加上的。不加会报错的。select 1 这个在mysql不会报错的,oracle下会。select 1 from dual 这样的话,oracle就不会报错了。
4,对空值的判断,name != ""这样在mysql下不会报错的,但是oracle下会报错。在oracle下的要换成name is not null
5,oracle下对单引号,双引号要求的很死,⼀般不准⽤双引号,⽤了会报
ERROR at line 1:
ORA-00904: "t": invalid identifier记住我
⽽mysql要求就没有那么严格了,单引号,双引号都可以。
6,oracle有to_number,to_date这样的转换函数,oracle表字段是number型的,如果你$_POST得到的参数是123456,⼊库的时候,你还要to_number来强制转换⼀下,不然后会被当成字符串来处理。⽽mysql却不会。
7,group_concat这个函数,oracle是没有的,如果要想⽤⾃已写⽅法。
8,mysql的⽤户权限管理,是放到mysql⾃动带的⼀个数据库mysql⾥⾯的,⽽oracle是⽤户权限是根着表空间⾛的。
9,group by,在下oracle下⽤group by的话,group by后⾯的字段必须在select后⾯出现,不然会报错的,⽽mysql却不会。
10,mysql存储引擎有好多,常⽤的mysiam,innodb等,⽽创建oracle表的时候,不要这样的,好像只有⼀个存储引擎。
11,oracle字段⽆法选择位置,alter table add column before|after,这样会报错的,即使你⽤sql*plus
这样的⼯具,也没法改字段的位置。12,oracle的表字段类型也没有mysql多,并且有很多不同,例如:mysql的int,float合成了oracle的number型等。
13,oracle查询时from 表名后⾯不能加上as 不然会报错的,select t.username from test as t⽽在mysql下是可以的。
14,oracle中是没有substring这个函数的,mysql有的。
发布评论