温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle与Mysql有什么区别

发布时间:2021-08-05 15:12:21 来源:亿速云 阅读:166 作者:Leah 栏目:数据库

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或空字符,需要把它改成一个空格的字符串。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI