MySQL与Oracle的区别之我见
2013-11-14 10:53
369 查看
1. 大的方面(宏观)
Oracle为商用数据库,行业中占据相当的地位:市场占比2012年为40%。开发、管理资源相当丰富,有自己的metalink,我也曾用过,有什么问题,都能在那里得到较快速度的解决。开发用了近10年,虽然有些功能用起来挺鸡肋的(像分页),但它在OLTP/OLAP等方面确实都非常出色。我们一般项目中至少有两个Oracle数据库:联机事务处理(OLTP)数据库,联机分析处理数据库(OLAP),通过配置实现这两个数据库的同步。Oracle具有良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。
MySQL为非商用开源数据库,虽然目前也有商用版本,但具体情况不了解,没用过商用的,只用过免费版本。也没试过大数据量。所以,感觉还行吧。中、小型项目使用绝对没问题。据说facebook这样的大型网站也用MySQL做数据库了,但我在大型项目中真心没用过,无发言权。
2. 小的方面(语法等)
mysql可以实现自增长主键(通过字段的auto_increment属性);Oracle则需要通过序列(Sequence)来实现。mysql可以用双引号来引用字符串(当然单引号也行);Oracle只能用单引号。
mysql在查询语句中可以通过limit [offset,] <row count>来直接分页;而Oracle需要使用rownum伪列,且需要注意陷阱,具体参考:Oracle中ROWNUM的使用技巧(转)
mysql对于真假的判断,0为假1为真;Oracle则是用true/false。
mysql的查询可以 select sysdate(); ;而Oracle需要引用虚表(select sysdate from dual;)。
mysql一个数据库在我的理解,相当于Oracle的一个用户(schema)。
mysql中备份命令:mysqldump,执行结果是一个sql文件;oracle备份命令:dpdump,执行结果是一个dmp文件。前件是文本sql命令,可以直接导入到其它mysql数据库,甚至可以稍作修改导入到其它类型的数据库;后者导出文件是二进制的,只能Oracle自己用(甚至还有版本限制)。
mysql中的命令默认是直接commit的;Oracle默认不是。
mysql中注释行以“#“开始;Oracle以“--“开始。
mysql中日期的转换用dateformat()函数;Oracle用to_date()与to_char()两个函数。
mysql中多个字符串的连接用concat();一般Oracle中用“||“连接多个字符串,它也有concat(),但它只能有两个参数。
mysql中查询信息多用:show tables;格式的命令;Oracle中用select * from user_tables;格式的命令查询数据。
mysql在Windows环境下大小写是不敏感的;unix/linux环境下,对数据库名、表名大小写敏感,列名大小写不敏感。Oracle则不论环境大小写都不敏感。
mysql执行锐脚本命令:mysql>source a.sql; ;Oracle中执行外部命令:SQL>@a.sql。
mysql支持枚举类型(enum)、集合类型(set);Oracle不直接支持,需要使用外键等其它手段实现。
相关文章推荐
- Mysql与Oracle的区别
- Oracle与MySQL的几点区别
- MYSQL和ORACLE的一些区别
- day23 事务(Mysql和Oracle的区别) 元数据
- Oracle中concat与||区别(以及与mysql中concat函数区别)
- mysql与Oracle语法区别
- Oracle与MySQL的几点区别
- Oracle和MySQL的区别
- 浅析mysql、sql server和oracle的区别
- MySQL、SqlServer、ORACLE三大数据库常用语句之间的区别整理
- Oracle与MySql的几点区别
- mysql与oracle的 sql语句区别
- 数据库(oracle、mysql)中的count(*)和count(列名)的区别
- Oracle与Mysql的区别
- 数据库oracle与mysql在语法上的区别
- 关于oracle与mysql官方jdbc的一些区别
- Oracle 和 mysql的9点区别
- mysql与oracle宏观区别
- Oracle与MySQL的几点区别
- DB2、Oracle、mysql和sql server区别