mysqloracle区别(mysql与oracle的区别)
本篇文章给大家谈谈mysqloracle区别,以及mysql与oracle的区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、请问下mysql和oracle的区别?
- 2、Oracle与MySQL的几点区别
- 3、mysql数据库和oracle数据库的区别
- 4、请问下mysql和oracle的区别
- 5、oracle数据库和mysql数据库的区别
请问下mysql和oracle的区别?
官方给出的不同点:
The Oracle Database is an object-relational database management system (ORDBMS). MySQL is an open source relational database management system (RDBMS). MySQL is the world's most used RDBMS, and runs as a server providing multi-user access to a number of databases.
翻译过来就是:oracle是一个轮吵面向对象的关系型数据库管携谈理系统,mysql是一个开源的关系型数据库管理系统,mysql在世界范围内被广泛使用,并且提供了多用户使用数据库的腊隐侍能力。
The main difference between Oracle and MySQL is the fact that MySQL is open source, while Oracle is not. However, Oracle is considered to be much more powerful a software than MySQL.
还有一点主要区别是:mysql是开源的免费的,而oracle是不开源的,但是oracle的功能比mysql强大的多。
oracle主要提供给大公司使用,因为授权许可比较昂贵,mysql主要是一些面向互联网的用户系统或者小型商务系统使用。
[img]Oracle与MySQL的几点区别
Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容 希望能够对您有所帮助
组函数用法规则
mysql中组函数在select语句中可以随意使用 但在oracle中 如果查询语句中有组函数 那其他列名必须是组函数处理过的 或者是group by子句中的列 否则报带圆错
eg
select name count(money) from user ;这个放在mysql中没有问题 在oracle中就有问题了
自动增长的数据类型处理
MYSQL有自动增长的数据类型 插入记录时不用操作此字段 会自动获得数据值 ORACLE没有自动增长的数据类型 需要建立一个自动增长的序列号 插入记录时要把序列号的下一个值赋于此字段
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY START WITH MAXVALUE CYCLE NOCACHE;
其中最大的值按字段的长度来定 如果定义的自动增长的序列号 NUMBER( ) 最大值为
INSERT 语句插入这个字段值为: 序列号的名称 NEXTVAL
单引号的处理
MYSQL里可以用双引号包起字符串 ORACLE里只可以用单引号包起字符串 在插入和修改字符串前必须做单引号的替换 把所有出现的一个单引号替换成两个单引号
翻页的SQL语句的处理
MYSQL处理翻页的SQL语句比较简单 用LIMIT 开始位置 记录个数;PHP里还可以用SEEK定位到结果集的位置 ORACLE处理翻页的SQL语句就比较繁琐了 每个结果集只有一个ROWNUM字段标明它的位置 并且只能用ROWNUM 不能用ROWNUM
以下是经过分析后较好的两种ORACLE翻页SQL语句( ID是唯一关键字的字段名 )
语句一
SELECT ID [FIELD_NAME ] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW ID FROM TABLE_NAME WHERE 条件 ORDER BY 条件 ) WHERE NUMROW AND NUMROW ) ORDER BY 条件 ;
语句二
SELECT * FROM (( SELECT ROWNUM AS NUMROW c * from (select [FIELD_NAME ] FROM TABLE_NAME WHERE 条件 ORDER BY 条件 ) c) WHERE NUMROW AND NUMROW ) ORDER BY 条件 ;
逗碧 长字符串的处理
长字符串的处理ORACLE也有它特殊的地方 INSERT和UPDATE时最大可操作的字符串长度小于等于 个单字节 如果要插入更长的字符串 请考虑字段用CLOB类型 方法借用ORACLE里自带的DBMS_LOB程序包 插入修改记录前一定要做进行非空和长度判断 不能为空的字段值和超出长度字段值都应该提出警告 返回上次操作
日期字段的处理
MYSQL日期字段分DATE和TIME两种 ORACLE日期字段只有DATE 包含年月日时分秒信息 用当前数据库的系统时间为SYSDATE 精确到秒 或者用字符串转换成日期型函数TO_DATE( YYYY MM DD )年 月 日 小时:分钟:秒 的格式YYYY MM DD HH :MI:SS TO_DATE()还有很多种日期格山行举式 可以参看ORACLE DOC 日期型字段转换成字符串函数TO_CHAR( YYYY MM DD HH :MI:SS )
日期字段的数学运算公式有很大的不同 MYSQL找到离当前时间 天用 DATE_FIELD_NAME SUBDATE(NOW() INTERVAL DAY)ORACLE找到离当前时间 天用 DATE_FIELD_NAME SYSDATE ;
MYSQL中插入当前时间的几个函数是 NOW()函数以` YYYY MM DD HH:MM:SS 返回当前的日期时间 可以直接存到DATETIME字段中 CURDATE()以 YYYY MM DD 的格式返回今天的日期 可以直接存到DATE字段中 CURTIME()以 HH:MM:SS 的格式返回当前的时间 可以直接存到TIME字段中 例 insert into tablename (fieldname) values (now())
而oracle中当前时间是sysdate
空字符的处理
MYSQL的非空字段也有空的内容 ORACLE里定义了非空字段就不容许有空的内容 按MYSQL的NOT NULL来定义ORACLE表结构 导数据的时候会产生错误 因此导数据时要对空字符进行判断 如果为NULL或空字符 需要把它改成一个空格的字符串
字符串的模糊比较
MYSQL里用 字段名 like %字符串% ORACLE里也可以用 字段名 like %字符串% 但这种方法不能使用索引 速度不快 用字符串比较函数 instr(字段名 字符串 ) 会得到更精确的查找结果
lishixinzhi/Article/program/MySQL/201404/30556
mysql数据库和oracle数据库的区别
1、体积不同。
Oracle它体积比较庞大,一般是用来开发大型应用(例如分布式)的。而MySQL的体积相对来说比较小,较之Oracle更容易安装、维护以及管理,操作也简单,最重要的是它是三个中唯一一个开源数据库,但目前也属于Oracle公司的产品了。
2、容量不同。
Oracle容量无限,根据配置决定;而MySQL使用MyISAM存储引擎,最大表尺寸为65536TB。 MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定。
3、平台支持及速度的区别。
Oracle支持大多数平台;而MySQL支持各种平台,适合Linux。至于速度,Oracle在Linux下的性能,在少量数据时速度低于MySQL,在千万级时速度快于MySQL。
4、数据库崩溃造成的影响不同。
Oracle数据库崩溃后恢复很麻烦,因为他把很多东西放在内存里;数据库连接要慢些,最好用连接池;而MySQL使用缺省的IP端口,但是有时候这些IP也会被一些黑客指枝闯入,使用MyISAM配置,不慎损坏数据库,结果可能会导致所有的数据丢失。
5、性能的区别。
Oracle全面,完整,稳定,但一般数据量大,对硬件要求较高 ;而MySQL使用CPU和内存极少,性能很高,但扩唯旁敏展性较差。
6、授权价格区别。
Oracle价格较贵,例如Oracle 10G/11G 标准版 [10用户]¥25600 ,Oracle 10G/11G 标准版 [1CPU无限用户] ¥157600。而MySQL采用双重授权,他们是GPL和MySQLAB制定的商业许可协议。如果你在一个启橘遵循GPL的自由项目中使用 MySQL,那么你可以遵循GPL协议免费使用MySQL。否则,你需要购买MySQLAB制定的那个商业许可协议。
请问下mysql和oracle的区别
请问下mysql和oracle的区别:
1、价格
价格是两个数据纯答渣库之间最显着的差异。Oracle有一个名为Oracle Express Edition的东西,这个版本完全免费。不幸的是,该版本对这些功能有太多限制。如果你继续购买全功能标准版或企业版,它将花费你数万美元。另一方面,MySQL是一个开源数据库,完全免费。最着名的Facebook社交网站运行在MySQL上。
2、安全
虽然MySQL使用三个参数来验证用举凯户,即用户名做悄,密码和位置,但Oracle使用了许多安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等。
3、对象名称
虽然某些模式对象名称在Oracle和MySQL中都不区分大小写,例如列,存储过程,索引等,但在某些情况下,两个数据库之间的区分大小写不同; Oracle对所有对象名称都不区分大小写,但是,与Oracle不同,某些MySQL对象名称(如数据库和表)区分大小写(取决于底层操作系统)。
4、字符数据类型
两个数据库中支持的字符类型存在一些差异。MySQL为字符类型提供CHAR和VARCHAR,最大长度允许为65,535字节(CHAR最多可以为255字节,VARCHAR为65.535字节)。另一方面,Oracle支持四种字符类型,即CHAR,NCHAR,VARCHAR2和NVARCHAR2; 所有四种字符类型都需要至少1个字节长; CHAR和NCHAR最大可以是2000个字节,NVARCHAR2和VARCHAR2的最大限制是4000个字节。可能会在最新版本中进行扩展。
oracle数据库和mysql数据库的区别
Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。
1.组函数用法规则
mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错
eg:
select name,count(money) from user;这个放在mysql中没有问题在oracle中就有问题了。
2.自动增长的数据类型处理
MYSQL有自动增长的数据类型,插入记肆晌拍录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定,如果定义的自动增长的序列号NUMBER(6),最大值为999999
INSERT语句插入这个字段值为:序列号的名称.NEXTVAL
3.单引号的处理
MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
4.翻页的SQL语句的处理
MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用SEEK定位到结果集的位置。ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM100,不能用ROWNUM80。
以下是经过分析后较好的两种ORACLE翻页SQL语句(ID是唯一关键字的字段名):
语句一:
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.长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
6.日期裂羡字段的处理
MYSQL日期谨世字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE,精确到秒,或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)年-月-日24小时:分钟:秒的格式YYYY-MM-DD
HH24:MI:SS TO_DATE()还有很多种日期格式,可以参看ORACLE
DOC.日期型字段转换成字符串函数TO_CHAR(‘2001-08-01’,’YYYY-MM-DD HH24:MI:SS’)
日期字段的数学运算公式有很大的不同。MYSQL找到离当前时间7天用DATE_FIELD_NAME
SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到离当前时间7天用 DATE_FIELD_NAME
SYSDATE - 7;
MYSQL中插入当前时间的几个函数是:NOW()函数以`'YYYY-MM-DD
HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。CURDATE()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。CURTIME()以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。例:insert
into tablename (fieldname) values (now())
而oracle中当前时间是sysdate
7.空字符的处理
MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
8.字符串的模糊比较
MYSQL里用字段名like%‘字符串%’,ORACLE里也可以用字段名like%‘字符串%’但这种方法不能使用索引,速度不快,用字符串比较函数instr(字段名,‘字符串’)0会得到更精确的查找结果。
9.程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。
=======================================================================================
1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。
2. Oracle支持大并发,大访问量,是OLTP最好的工具。
3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
4.Oracle也Mysql操作上的区别
①主键
Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracle没有自动增长类型,主
键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。
②单引号的处理
MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
③翻页的SQL语句的处理
MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置, 并且只能用
ROWNUM100, 不能用ROWNUM80
④ 长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用
ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
⑤空字符的处理
MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。因此导数据时要对空字符
进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
⑥字符串的模糊比较
MYSQL里用 字段名 like '%字符串%',ORACLE里也可以用 字段名 like '%字符串%' 但这种方法不能使用索引, 速度不快。
⑦Oracle实现了ANSII SQL中大部分功能,如,事务的隔离级别、传播特性等而Mysql在这方面还是比较的弱。
关于mysqloracle区别和mysql与oracle的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。