Oracle与Mysql有什么区别,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Oracle与Mysql的区别:
Oracle:客户端与命令窗口都是由用户决定的;是大型数据库,市场占有率达40%;价格非常高,占据特别大的内存空间和其他机器性能,安装完后又3G左右;
Mysql:客户端与命令窗口都是由数据库决定的;是中小型数据库,市场占有率是20%,开源且免费的,安装完后152M。
操作上的区别:
1、组函数用法规则:
MySQL中组函数在select语句中可以随意使用,但在Oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错。
2、自动增长的数据类型处理:
MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
3、单引号的处理:
mySql用双引号包起字符串,Oracle里用单引号包起字符串,在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
4、翻页的SQL语句的处理:
语句一:
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 条件3;
语句二:
SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (SELECT [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 条件3;
5、长字符串的处理:
插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告。
6、主键:
MySQL一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,MySQL将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。
7、字符串的模糊比较:
mySql里字段名like%'字符串'%,用字符串比较函数instr(字段名,'字符串')>0会得到更精确的查找结果。
8、空字符的处理:
MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不容许有空的内容。按MySQL的NOT NULL来定义Oracle表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。