oracle和MySQL两个数据库的区别

上一次面试的时候,面试经理问我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语句就比较复杂了 。每个结果集只有一个ROWNUM字段表明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80;

        7)oracle实现了ANSII SQL中大部分功能,如:事物的隔离级别,传播特性等;而MySQL在这方面还比较若。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值