SQL,在这里我理解成SQL Server。三者是目前市场占有率最高(依安装量而非收入)的关系数据库,并且颇有表明性。排行第四的DB2(属IBM公司),与Oracle的定位和架构很是类似,就不赘述了。算法
简单的说,同类的软件,不一样的品牌。各有所长,适用范围不一样。
像电信,金融,气象 行业,数据量超大,计算量和周边要求较高的,使用Oracle,就像Linux环境,比较麻烦 ,须要前提条件多,安全性相对高。
像中个企业,须要快速应用,快速解决问题,花费适中,考虑MSSQL。
互联网使用Mysql的多,由于免费,可定制性强。最重要缘由是互联网公司初始创业的时候没有钱买Oralce,鄙视MSSQL,选择MYSQL方便又简单。最终作大了,老的代码不能改,就一直用下去了。sql
MYSQL只是组件没Oracle那么多而已,性能上面差点。可是,能够作到“知足要求”。因此如今用的多。数据库
简单的说,同类的软件,不一样的品牌。各有所长,适用范围不一样。
像电信,金融,气象 行业,数据量超大,计算量和周边要求较高的,使用Oracle,就像Linux环境,比较麻烦 ,须要前提条件多,安全性相对高。
像中个企业,须要快速应用,快速解决问题,花费适中,考虑MSSQL。
互联网使用Mysql的多,由于免费,可定制性强。最重要缘由是互联网公司初始创业的时候没有钱买Oralce,鄙视MSSQL,选择MYSQL方便又简单。最终作大了,老的代码不能改,就一直用下去了。windows
MYSQL只是组件没Oracle那么多而已,性能上面差点。可是,能够作到“知足要求”。因此如今用的多。缓存
做者:晨钟暮鼓
连接:https://www.zhihu.com/question/19866767/answer/125814040
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。安全
Oracle与Mysql的区别:
Oracle:客户端与命令窗口都是由用户决定的;是大型数据库,市场占有率达40%;价格很是高,占据特别大的内存空间和其余机器性能,安装完后又3G左右
Mysql:客户端与命令窗口都是由数据库决定的;是中小型数据库,市场占有率是20%,开源且免费的,安装完后152M
操做上的区别:
一、组函数用法规则:
MySQL中组函数在select语句中能够随意使用,但在Oracle中若是查询语句中有组函数,那其余列名必须是组函数处理过的,或者是group by子句中的列不然报错服务器
二、自动增加的数据类型处理:
MySQL有自动增加的数据类型,插入记录时不用操做此字段,会自动得到数据值。Oracle没有自动增加的数据类型,须要创建一个自动增加的序列号,插入记录时要把序列号的下一个值赋于此字段。
三、单引号的处理:
mySql用双引号包起字符串,Oracle里用单引号包起字符串,在插入和修改字符串前必须作单引号的替换:把全部出现的一个单引号替换成两个单引号。
四、翻页的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;
五、长字符串的处理:
插入修改记录前必定要作进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告
六、主键
MySQL通常使用自动增加类型,在建立表时只要指定表的主键为auto increment,插入记录时,不须要再指定该记录的主键值,MySQL将自动增加;Oracle没有自动增加类型,主键通常使用的序列,插入记录时将序列号的下一个值付给该字段便可;只是ORM框架是只要是native主键生成策略便可。
七、字符串的模糊比较
mySql里字段名like%'字符串'%,用字符串比较函数instr(字段名,'字符串')>0会获得更精确的查找结果。
八、空字符的处理
MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不允许有空的内容。按MySQL的NOT NULL来定义Oracle表结构,导数据的时候会产生错误。所以导数据时要对空字符进行判断,若是为NULL或空字符,须要把它改为一个空格的字符串。并发