• 近期使用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
  • 相关阅读:
    关于C++顺序容器一致初始化的问题
    44. 通配符匹配(Wildcard Matching)
    76. 最小覆盖子串(Minimum Window Substring)
    72. 编辑距离(Edit Distance)
    首入大观园
    删除链表的倒数第N个节点
    目标和
    克隆图
    最长回文子串
    旋转矩阵
  • 原文地址:https://www.cnblogs.com/ihaokun/p/11115051.html
Copyright © 2020-2023  润新知