近期使用Oracle数据库的一些吐槽(兼与MySQL的对比)

mysql 和 oracle (11g版本)的一些差异

mysql的写法比oracle自由很多,兼容性比较强

  1. oracle的表名起别名不能用as,列的别名可以用as;mysql没有限制
  2. oracle的日期时间只有两种类型,1date(精确到时分秒),2timestamp(更高精度)
    而且,存储的时间格式比较怪,要转为习惯的格式的话,是这样的写的 to_char(date,‘yyyy-mm-dd hh24:mi:ss‘)
    对应的Java是这样的 yyyy-MM-dd HH:mm:ss
  3. 用了聚合函数,group by要接很多字段(几乎全部)
  4. Oracle和mysql的很多函数不一样,字符和时间转换相关的,Oracle中是to_char和to_date
  5. Oracle表建立后,字段位置不允许改变,而MySQL可以,参见 https://blog.csdn.net/ttxsely/article/details/74842716
  6. MySQL和Oracle自增字段的不同。MySQL默认innodb引擎,可以实现主键自增;而Oracle要实现相同的功能则比较麻烦,需要创建列对应的序列,并创建列对应的触发器
    此外,Oracle的插入语句,自增主键也不能为空,需要填入自增的主键值,要用序列来获得,序列名.nextval。
  7. Oracle和mysql的字符串连接方式不一样。Oracle多个字符串连接,使用||连接符 或 concat函数(concat函数只能连接两个字符串);
    mysql中的+号仅作运算符,故mysql中的字符串连接使用concat函数,可以连接多个字符串

oracle的一些保留字:
date、user

  1. Oracle实现自增长主键比较麻烦,需要创建对应字段的序列sequence,还要创建对应的触发器;不像MySQL那样可以简单的auto increase(且Oracle进行insert的时候,不能忽略主键,具体参见上面的6)
    所以,Oracle主键的话,个人感觉,适合使用UUID(oracle的sql developer软件,可以使用列序列,这样可以一键创建自增长主键)
  2. Oracle中可变字符串类型,推荐使用varchar2

原文地址:https://www.cnblogs.com/ihaokun/p/11115051.html

时间: 2024-11-13 10:18:40

近期使用Oracle数据库的一些吐槽(兼与MySQL的对比)的相关文章

.net(C#)访问Oracle数据库的几种免安装组件的对比

Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件.它们用来存取Oracle关系数据库系统.与BDE类似, ODAC 也是一种可供选择的处理数据的方法之一. ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API). OCI 通过一个动态运行库(ORA*.DLL)

近期学习oracle 数据库总结

这次总结只是把一些刚接触到的新东西列出来,方便以后升入学习时查看 1.常量表示方式 : constant 2.类型 %Type;例:表名.列名%Type;--表示该变量的类型为这一列的类型 3.%rowType 4.自定义类型 Type a is table of .. 和 Type a  is record(..); 5.forall循环比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换. 6.bulk collection into一次取出一个数据集合,比用游

利用AMP(Alibaba Migration Platfrom)神器轻松把Oracle数据库中的数据迁移到MySQL数据库

转载请注明出处: http://blog.csdn.net/guoyjoe/article/details/44926187 上传AMP包并解压:tar -jxvf amp.2.1.0.tar 启动AMP:nohup sh start.sh > /tmp/log.txt 1 & >2 1.我把AMP迁移工具部署到了192.168.1.8上,在192.168.1.8上也装了MySQL数据库,可以正常连接,如下: 2.配置AMP,如下 3.点保存并预检查,报错如下 目标库的大小写敏感设置 

使用Oracle SQL Developer迁移MySQL至Oracle数据库

Oracle SQL Developer是Oracle官方出品的数据库管理工具.本文使用Oracle SQL Developer执行从MySQL迁移至Oracle数据库的操作. 2017年3月6日 操作步骤: 1.在Oracle数据库中创建移植资料档案库用户 资料档案库用户不是用来接收MySQL迁移数据的用户,而是进行数据迁移配置的用户. Oracle创建用户命令如下: create user migrater identified by migrater; alter user migrate

Oracle数据库初接触

Oracle数据库是世界上最大的数据库服务商Oracle公司所开发,是目前最主流的商业数据库服务器产品之一,被广泛应用于企业级的应用程序开发中,也是我们在开发企业级应用系统时,最常用的关系型数据库管理系统之一 oracle是一个跨平台的数据库,但是在unix/linux/windows平台上 体系结构都是一样的. 这里要提到oracle的体系架构,所谓oracle体系架构,是指oracle数据库管理系统的组成部分和这些组成部分之间的相互关系,包括内存结构.后台进程.物理与逻辑结构等. 一般来说,

Robot Framework操作MySQL数据库和Oracle数据库

一.Robot Framework连接MySQL数据库 1.安装databaselibrary.pymsql 通过cmd命令执行pip install robotframework-databaselibrary==1.1.1,安装指定版本 通过cmd命令执行pip install PyMySQL==0.9.2 2.导入DatabaseLibrary包到Robotframework 3.使用关键字对数据库进行操作 连接数据库关键字:Connect To Database Using Custom

本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案

因为要更新数据库加个表,远程桌面又无法连接...所以就远程到另外一台电脑,然后用navicat通过内网修改目标数据库. 一直用着navicat操作数据库,所以很速度的弄好然后新建连接进入数据库. 然而意外就发生了,Cannot create oci environment !!!什么鬼??? 用了这么久第一次碰到这个问题,各种百度发现是oci.dll文件版本不对,然后就是更换oci文件 因为远程的是Oracle 11g所以选择下面那个文件夹内的oci.dll文件,更新后成功. 在百度上也是翻了好

新课程上线:Oracle数据库11gR2(之五):性能调优

购买Oracle数据库课程套餐,享八五折优惠!! 套餐地址:http://edu.51cto.com/pack/view/id-807.html Oracle 11g R2 数据库的性能优化 数据库的性能问题是数据库领域里讨论最多的话题,因其而其牵扯到数据库原理.IO存储.服务器性能.前台应用等等,故性能问题十分考验优化者内功.本课程将讲述ORACLE数据库在各种应用环境下的调优方案,让你内(优化原理,优化思路)外(优化工具,技巧)兼修,早日成为优化达人. Oracle 数据库系列课程,共包含以

在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘

最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不是开发,也不想在自己的电脑上安装庞大的oracle数据库,因此寻思着只通过数据库管理工具连接数据库进行一些常用的查询操作. 运行环境 服务器:windows server 2008 64位 服务器oracle版本:oracle 11g R2 64位,字符集是ZHS16GBK. 本机:windows 7 64位 需要准备的软件 1.Instant Client 12.1.0.2.0 32位和64位 Instant Cl