`

Oracle数据库与MySQL数据库的几点区别

阅读更多

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字段标明它的位置, 并且只能用ROWNUM<100, 不能用ROWNUM>80。

  以下是经过分析后较好的两种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. 程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。

转载自IT168:http://tech.it168.com/a2011/1122/1277/000001277672.shtml

分享到:
评论

相关推荐

    oracle数据库转mysql数据库免费工具

    Oracle数据库和MySQL数据库是两种广泛使用的数据库管理系统,它们在数据存储、查询语法和管理机制上存在显著差异。在需要将Oracle数据库的数据迁移至MySQL时,就需要借助特定的转换工具来实现这一过程。"ora2mysqcn....

    Oracle数据库表转换为Mysql

    Oracle数据库表转换为Mysql是指将Oracle数据库中的表结构转换为Mysql数据库中的表结构,以便在Mysql数据库中使用。这种转换可以使用PowerDesigner工具来实现。 一、Oracle数据库表结构导出 首先,需要使用Oracle...

    Oracle数据库sql转换mysql数据库工具

    Oracle数据库和MySQL数据库是两种广泛使用的数据库管理系统,它们在数据存储、查询语法、数据库结构以及管理方式上存在显著差异。"Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将...

    mysql 数据库转 oracle

    8. **测试与验证**:迁移完成后,需要对Oracle数据库进行测试,确保所有功能都能正常工作,与原有的MySQL环境无明显差异。 在实际操作中,除了使用工具外,还需要考虑以下几个方面: 1. **计划与准备**:详细规划...

    mysql数据库转oracle数据库工具

    MySQL到Oracle数据库转换工具是一种专门用于将数据从MySQL数据库系统迁移至Oracle数据库系统的软件解决方案。在数据库管理系统领域,这样的工具非常关键,因为不同的DBMS(数据库管理系统)可能有着不同的数据结构、...

    Oracle数据库学习指南

    10. Oracle8的不安全因素及几点说明 11. Oracle常见错误代码 12. Oracle常用Script 13. Oracle常用数据字典 14. ORACLE回滚段管理(上) 15. ORACLE回滚段管理(下) 16. Oracle基于Client-Server的性能调整 ...

    从mysql转换到oracle数据库.docx

    在实际项目中,我们需要注意 MySQL 与 Oracle 数据库之间的一些具体差异: 1. 自动增量:Oracle 数据库中没有自动增量,一般采用序列去实现类似功能。 2. Limit:MySQL 中一般采用 `limit` 去实现分页功能,而 ...

    Oracle与MYSQL的几点区别

    ### Oracle与MySQL的区别 在数据库管理系统领域,Oracle与MySQL因其各自独特的优势被广泛应用于不同的业务场景之中。本文将从几个具体的技术角度出发,探讨这两款数据库之间的差异。 #### 1. 分组查询(Group By)...

    mysql和oracle数据库之间的转换工具(支持各种类型数据库)

    标题中的“mysql和oracle数据库之间的转换工具”指的是能够帮助用户将MySQL数据库的数据高效、准确地迁移到Oracle数据库的软件。这样的工具通常提供图形化界面,使得操作更为直观,无需深入理解底层的SQL语法和数据...

    数据库转换mysql to oracle

    本案例中的主题聚焦于“数据库转换:MySQL to Oracle”,这是一个从开源的MySQL数据库转换到商业的Oracle数据库的过程。 MySQL是一种广泛使用的开源关系型数据库管理系统,以其易用性、高性能和低成本而闻名。它...

    mysql数据库驱动包(附加Oracle的

    总的来说,这个压缩包提供了连接MySQL数据库所需的各种驱动,适用于不同的编程语言,尤其是针对Oracle环境进行了优化,对于需要与MySQL交互的开发者来说是非常实用的工具。在具体使用时,应根据项目需求选择合适的...

    pandas与mysql、oracle数据库数据交互(csdn)————程序.pdf

    在使用Pandas与数据库交互时,还需要注意以下几点: 1. 数据库连接字符串格式要正确,包括用户名、密码、主机名、端口和数据库名。 2. 在写入数据到数据库时,`if_exists`参数可以设置为'append'(追加数据)、'...

    Oracle MySQL数据库故障处理应急方案

    通过上述几个方面的故障处理应急方案,可以较为全面地解决Oracle MySQL数据库在运行过程中遇到的诸多常见故障。这些应急方案不仅提供了解决问题的具体操作步骤,而且强调了在执行操作前记录日志的重要性,确保在紧急...

    超级好用的数据库迁移工具(MySQL、Oracle)

    3. **数据加载**:将转换后的数据写入Oracle数据库中,确保数据结构和原MySQL数据库一致。 在实际操作中,我们需要准备DataX的配置文件,明确源数据库和目标数据库的连接信息,指定迁移的表名和字段,以及任何必要...

    简朝阳 - 和谐共存-Oracle与MySQL共同打造高效可靠的数据库架构体系

    简朝阳先生在其2015年Oracle技术嘉年华分会场的演讲中,探讨了如何通过Oracle与MySQL数据库的结合来共同构建一个既高效又可靠的数据库架构体系。 首先,简朝阳提到,要理解为什么一个项目或企业会选择使用Oracle和...

    flowable替换数据库驱动为mysql

    最后,重启Flowable服务,确保其能够正常启动并与MySQL数据库建立连接。 6. **测试验证**:更换数据库驱动和连接池后,需要通过Flowable的各个模块(如flowable-idm、flowable-modeler、flowable-rest、flowable-...

    Oracle数据库进阶-高可用性、性能优化和备份恢复

    GoldenGate是一款异构数据库复制工具,可以在不同版本的Oracle数据库之间进行数据复制,也可以与其他数据库系统如MySQL、SQL Server等进行数据同步。GoldenGate支持实时数据传输和事务一致性,非常适合于需要跨平台...

    mysql-oracle数据同步

    2. **编程方式**:通过编写Java、Python或其他语言的脚本,连接MySQL和Oracle数据库,读取MySQL数据,处理后写入Oracle。这种方式需要对数据库API有深入理解,比如JDBC、ODBC等。 3. **数据库复制服务**:Oracle...

    ORACLE数据库培训教程

    ### ORACLE数据库培训教程知识点详解 #### 引言:Oracle教程背景与意义 在IT行业中,Oracle数据库系统因其卓越的性能、可靠性和安全性而被广泛应用于企业级应用中。随着SUN公司的收购,Oracle不仅获得了MySQL这一...

    oracle迁移mysql说明

    在进行Oracle迁移至MySQL的过程中,需要关注几个关键步骤:首先是使用迁移工具如MetaDB工具完成数据库对象的转换与迁移;接着是通过Navicat等工具进行数据导入;最后是对迁移过程中可能出现的问题进行排查与解决。 ...

Global site tag (gtag.js) - Google Analytics