oracle和MySQL两个数据库的区别
2018-02-23 14:41
357 查看
上一次面试的时候,面试经理问我oracle和MySQL的区别,由于以前没有总结过,所以回答的并不是特别好,只是凭借使用这两个数据库的感觉,简单说了一下。现在总结如下:
1、oracle是大型数据库,市场占有率达到40%,而MySQL是中小型数据库,市场占有率也只有20%左右;
2、MySQL是开源数据库,而oracle价格非常高;
3、oracle支持大并发,大访问量,是OLTP最好的工具;
4、安装使用的空间:MySQL只需要152M,而oracle则需要3G左右,且使用的时候oracle占用特别大的内存空间和机器性能;
5、oracle和MySQL在操作上的区别:
1)主键
MySQL一般使用自动增长类型,创建表时制定表的主键为auto increment,插入数据库时,MySQL将自动增长;而oracle中没有自动增长类型,主键一般使用的序列,插入序列号时将序列号的下一个值赋给该字段即可(ORM框架只要是native主键生成策略即可);
2)单引号的处理
MySQL中的字符串使用双引号,oracle中的字符串需使用单引号;
3)长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果插入更大字节,请考虑字段使用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
4)空字符串的处理
MySQL的非空字段也有空的内容,oracle中定义的非空字段就不可以有空的内容。按MySQL的NOT NULL来定义oracle的表结构,导数据的时候会产生错误,因此导数据时要对空字符进行判断,如果为NULL或者空字符,需要把它改成一个空格的字符串;
5)字符串的模糊比较
MySQL里用 字段名 like ‘%字段名%’,oracle里也可以用 字段名 like ‘%字段名%’,但这种方法不能使用索引,速度不快;
6)翻页的SQL语句的处理
MySQL处理翻页的SQL语句非常简单,用limit开始位置,记录个数;oracle处理翻页的SQL语句就比较复杂了 。每个
4000
结果集只有一个ROWNUM字段表明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80;
7)oracle实现了ANSII SQL中大部分功能,如:事物的隔离级别,传播特性等;而MySQL在这方面还比较若。
1、oracle是大型数据库,市场占有率达到40%,而MySQL是中小型数据库,市场占有率也只有20%左右;
2、MySQL是开源数据库,而oracle价格非常高;
3、oracle支持大并发,大访问量,是OLTP最好的工具;
4、安装使用的空间:MySQL只需要152M,而oracle则需要3G左右,且使用的时候oracle占用特别大的内存空间和机器性能;
5、oracle和MySQL在操作上的区别:
1)主键
MySQL一般使用自动增长类型,创建表时制定表的主键为auto increment,插入数据库时,MySQL将自动增长;而oracle中没有自动增长类型,主键一般使用的序列,插入序列号时将序列号的下一个值赋给该字段即可(ORM框架只要是native主键生成策略即可);
2)单引号的处理
MySQL中的字符串使用双引号,oracle中的字符串需使用单引号;
3)长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果插入更大字节,请考虑字段使用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
4)空字符串的处理
MySQL的非空字段也有空的内容,oracle中定义的非空字段就不可以有空的内容。按MySQL的NOT NULL来定义oracle的表结构,导数据的时候会产生错误,因此导数据时要对空字符进行判断,如果为NULL或者空字符,需要把它改成一个空格的字符串;
5)字符串的模糊比较
MySQL里用 字段名 like ‘%字段名%’,oracle里也可以用 字段名 like ‘%字段名%’,但这种方法不能使用索引,速度不快;
6)翻页的SQL语句的处理
MySQL处理翻页的SQL语句非常简单,用limit开始位置,记录个数;oracle处理翻页的SQL语句就比较复杂了 。每个
4000
结果集只有一个ROWNUM字段表明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80;
7)oracle实现了ANSII SQL中大部分功能,如:事物的隔离级别,传播特性等;而MySQL在这方面还比较若。
相关文章推荐
- 数据库的迁移总结及区别比较(Oracle,MySQL,SQLServer)
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
- 数据库学习之道:ORACLE 与 mysql 的区别
- 数据库oracle与mysql在语法上的区别
- 数据库(oracle、mysql)中的count(*)和count(列名)的区别
- 数据库oracle与mysql在语法上的区别
- 数据库迁移及及区别(Oracle,MySQL,SQLServer)
- 数据库 --> SQL Server 和 Oracle 以及 MySQL 区别
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
- 数据库oracle与mysql在语法上的区别
- 简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两个方面)(新浪)
- 数据库(MySQL,Oracle中)‘’和null的区别
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
- Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
- Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
- SQL Server 和 Oracle 以及 MySQL 数据库的区别
- MySQL、SqlServer、ORACLE三大数据库常用语句之间的区别整理
- mybatis的分页插件pagehelper-fix使用、数据库分页查询模板sql、总结mysql与oracle语句的区别
- 关系型数据库MySQL和SQL Server、Oracle的区别
- 数据库oracle与mysql在语法上的区别