当前位置:  数据库>oracle

Oracle与MySQL的使用比较

    来源: 互联网  发布时间:2017-05-09

    本文导语: Oracle与MySQL的使用比较总结: 用mysql与ORACLE有一段时间了,一直都没有做总结,今天有时间做些区别吧: 1.数据库的使用 在使用mysql一段时间以后,再次使用ORACLE时,首先想到的就是数据库名,在hibernate的 url 地址的设置中首先...

Oracle与MySQL的使用比较总结:

用mysql与ORACLE有一段时间了,一直都没有做总结,今天有时间做些区别吧:

1.数据库的使用

在使用mysql一段时间以后,再次使用ORACLE时,首先想到的就是数据库名,在hibernate的 url 地址的设置中首先会牵涉到数据库名的使用,在ORACLE中,每个用户下只会有一个数据库名,这个也是在ORACLE 10g安装中,用户自己设置的,如果用户在后期的使用中,偶尔忘记自己所设置的数据库名,也可以在windows 中管理-服务中可以根据服务名字找到数据库的相应的名字(关于ORACLE此处查询数据库名,本人一直都没找到);

这一点在mysql中直接一个命令: SHOW DATABASES ;   会显示该用户下面的所有数据库。

2.组函数的使用

使用mysql时,没有牵涉到组函数的问题,mysql中组函数在select语句中可以随意使用,

eg: SELECT NAME, SUM(SALARY) FROM BOSS ;        // 会列出table的第一列与SUM相应的记录

  但在ORACLE中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错

eg: SELECT NAME, SUM(SALARY) FROM BOSS ;

 同样的查询语句,在mysql中不会出现问题,但在ORACLE中会报错。

3.语句中的引号的区别

MYSQL里使用单引号包起字符串的同时,也可以用双引号包起字符串,但在ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。

4.增长类型的区别

在建表的时候,MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,但需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。

eg:  CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

其中最大的值按字段的长度来定,如果定义的自动增长的序列号NUMBER(6),最大值为999999

INSERT语句插入这个字段值为:序列号的名称.NEXTVAL

5.模糊查询的区别

  在java JDBC章节中,牵涉到模糊查询的操作。在mysql与oracle中,都可以使用 字段名 like %‘字符串%’的形式,但在oracle中这种方法的使用,在索引操作中速度方面会有所限制,解决方案:用字符串比较函数instr(字段名,‘字符串’)>0会得到更精确的查找结果。

6.空字符的处理

MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串,此处注意,NULL , "" 与 0 的区别。

7.字符串的使用

长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,最好还是考虑字段用CLOB类型,。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。

8. 分页的SQL语句的处理

MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用SEEK定位到结果集的位置。

eg:SELECT * FROM TABLE_NAME LIMIT 10 ;

ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用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;

9.数据类型的比较

这个可以参考两者的基本类型比较的使用。


    
 
 

您可能感兴趣的文章:

  • Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
  • Oracle date如何比较大小分析
  • SAP ERP 与Oracle ERP 比较
  • Oracle In和exists not in和not exists的比较分析
  • Oracle与MySQL学习体会比较
  • Oracle备份功能比较
  • oracle数据库删除数据Delete语句和Truncate语句的使用比较
  • SQL Server和Oracle并行处理比较分析
  • 常见数据库系统比较 Oracle数据库
  • Oracle中spool命令实现的两种方法比较
  • 性能陷阱:Oracle表连接中范围比较
  • DB2常用函数与Oracle比较
  • Oracle与SQL Server在企业应用的比较
  • Oracle8i和Microsoft SQL Server比较
  • oracle下一条SQL语句的优化过程(比较详细)
  • DB2和 Oracle的并发控制(锁)的比较
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • Oracle8i和Microsoft SQL Server比较 iis7站长之家
  • Suse linux使用oracle问题
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • jbuilder中使用oracle的问题
  • 求redhat linux 9.0下可以使用的oracle 10g或9i,还有redhat linux 9.0下可以使用的eclipse下载地址
  • Oracle事务!使用游标提交过程
  • 在Jbuilder7下,使用DbPilot.exe连接oracle,报错!请教高手!
  • AIX 64位系统上如何使用32位OCI oracle driver
  • Oracle中SQL语句连接字符串的符号使用介绍
  • 使用X manager连接oracle数据库的步骤
  • C++使用OCCI连Oracle10g的错误
  • 使用工具 plsqldev将Excel导入Oracle数据库
  • Linux下Oracle的sqlplus使用光标上下左右方法
  • Oracle 数据 使用游标
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle欲收购开源数据库MySQL未果
  • MySQL类似Oracle的dual虚拟表
  • 在linux下是MYSQL好还是ORACLE厉害?
  • Oracle与Mysql主键、索引及分页的区别小结
  • MySQL实现类似Oracle中的decode()函数的功能
  • Linux(redhat)下除了oracle / MySql 外还有哪些稍大型一点的 数据库
  • mysql仿oracle的decode效果查询
  • MySQL 移植到Oracle10 的问题
  • Oracle承诺一出 MySQL 5.5 版就发布
  • 解析mysql与Oracle update的区别
  • oracle与mysql的视频教程下载地址分享
  • 调查服务器系统BSD,SCO,Linux,windows?和数据库mysql,oracle,sqlserver?
  • 取数据库前几条数据(sql server、oracle、mysql)的sql写法
  • Oracle和MySQL对比
  • 调查显示MySQL进一步蚕食Oracle市场
  • 关于MySQL和Oracle转化的问题及解决
  • MySQL数据迁移到Oracle记录
  • Oracle并购SUN应放松对MySQL控制
  • JSP连接MySql/MS SQL Server/Oracle数据库连接方法[整理]
  • Oracle与Mysql自动增长列(id)的区别
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,