zoukankan      html  css  js  c++  java
  • Oracle迁移MySQL笔记

    1,--在oracle代表注释 ,mysql/* */,#

    2,|| oracle里面是表示连接符号,比如 A||B 那么就是AB

    3,databaseLink创建好之后,比如名字为db_link_b 在b数据库中查询则如select * from view_ap_rule@db_link_b, 就ok了,建立databaseLink随便搜下就好了哈,如果用的plsql工具的话,昨天栏有个databaseLink对着他鼠标右键,新建就可以 了 例如 CREATE DATABASE LINK DBL_NAME CONNECT TO sa_fms IDENTIFIED BY sa_fms USING '10.101.22.110:1521/a'; 默认端口情况下 建不见本地服务名一个回事,建了就在using里面直接输本地服务名,没有见就按上面方法输入,2种方法都必须开本地监听

    4,--Oracle trunc()函数的用法
    /**************日期********************/
    1.select trunc(sysdate) from dual  --2011-3-18  今天的日期为2011-3-18
    2.select trunc(sysdate, 'mm')   from   dual  --2011-3-1    返回当月第一天.
    3.select trunc(sysdate,'yy') from dual  --2011-1-1       返回当年第一天
    4.select trunc(sysdate,'dd') from dual  --2011-3-18    返回当前年月日
    5.select trunc(sysdate,'yyyy') from dual  --2011-1-1   返回当年第一天
    6.select trunc(sysdate,'d') from dual  --2011-3-13 (星期天)返回当前星期的第一天
    7.select trunc(sysdate, 'hh') from dual   --2011-3-18 14:00:00   当前时间为14:41  
    8.select trunc(sysdate, 'mi') from dual  --2011-3-18 14:41:00   TRUNC()函数没有秒的精确

    http://www.cnblogs.com/jinzhengquan/archive/2011/08/04/2127353.html

    http://www.cnblogs.com/jinzhengquan/archive/2011/08/04/2127353.html

    5,MySQL

    NOW()函数以'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。
    CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,可以直接存到DATE字段中。
    CURTIME()以'HH:MM:SS'的格式返回当前的时间,可以直接存到TIME字段中。
    6,left join 保留左边表的全部
     right join 保留右边表的全部,即使左边没有
    7,oracle 中的(+) 是什么意思?
    左外连接或右外连接:
    a.id1(+)=b.id2  这是右外边接
    a.id1=b.id2(+)  这是左外连接,总之是左还是右,是与(+)在等号的哪边相反的
    譬如
    SELECT a.*, b.* from a(+) = b就是一个右连接,等同于select a.*, b.* from a right join b
    SELECT a.*, b.* from a = b(+)就是一个左连接,等同于select a.*, b.* from a left join b
    即" (+)"所在位置的另一侧为连接的方向,通常将全量集合与部分集合连接时,在部分集合的列后面带上(+),以达到没有匹配时,也要显示出一个null的效果

    oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方。

    例如左外连接: select A.a,B.a from A LEFT JOIN B ON A.b=B.b; 等价于 select A.a,B.a from A,B where A.b = B.b(+);

    再举个例子,这次是右外连接: select A.a,B.a from A RIGHT JOIN B ON A.b=B.b; 等价于 select A.a,B.a from A,B where A.b (+) = B.b

    8,拼接字符串
    oracle:||
    mysql:concat
    将日期型转换成没有“-”的字符串 2012/9/3 13:41:17---->20120903014117
    oracle:t.logis_order_id || to_char(t.pre_date,'yyyyMMddhhMMss') || to_char(t.cur_date,'yyyyMMddhhMMss') as id
    mysql :select CONCAT(t.logis_order_id , extract(YEAR_MONTH from t.pre_date),extract(DAY_SECOND from t.pre_date) ,
            extract(YEAR_MONTH from t.cur_date), extract(DAY_SECOND from t.cur_date)) as id
     
    9,Oracle中nvl函数的用法和作用是什么?

    select nvl(成绩列,0) from 表,如果表中成绩列有为NULL,就替换成0

    对应

    mysql中IFNULL http://www.sudu.cn/info/index.php?op=article&id=321512

    10,oracle中:

    dbms_random.value():oracle中创建随机数

    round(dbms_random.value(1, 999999999))

    演示:select round(dbms_random.value(1, 999999999))from dual;

    http://oracle.chinaitlab.com/exploiture/897232.html

    lpad:select lpad('3',2,0) from dual; 就是在 3 这个基础上左侧补 0,一共是2位, 结果为 03

    rpad"函数从右边对字符串使用指定的字符进行填充

    mysql: select round(round(rand(),4)*10000);产生10000以内,精确到第四位的随机数

    11,left join on where

    FROM PRICE_INFO A LEFT JOIN SALEROOM C ON A.SALESROOM_ID = C.SALESROOM_ID
                        LEFT JOIN  PRICE_NAME D ON A.PRICE_NAME_ID = D.PRICE_NAME_ID
                        LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_JR JR ON A.PRICE_ID = JR.PRICE_ID
                        LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_KR KR ON  A.PRICE_ID = KR.PRICE_ID
                        LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_MR MR ON A.PRICE_ID = MR.PRICE_ID
                        LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_G  G ON  D.DICTIONARY_ID = G.DICTIONARY_ID,
        
           PRICE_DETAIL B,
           BASE_SUPPLIER E,
           GOODS_INFO H,
           GOODS_BRAND I 
           
     WHERE A.PRICE_ID = B.PRICE_ID
       AND B.GOODS_ID = H.GOODS_ID
       AND H.SUPPLIER_ID = E.SUPPLIER_ID
       AND H.BRAND_ID = I.BRAND_ID
       AND A.Audit_Status = '1';

    12,

    oracle,mysql

    <>:不等于

    13,oracle 中decode啥意思

    decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3

    http://www.cnblogs.com/juddhu/archive/2012/03/07/2383101.html

    对应

    mysql

    case when then

    或者IIf(Logical Expression, Numeric Expression1, Numeric Expression2)

    http://www.68design.net/Development/Database/20506-1.html

     14,mysql错误提示Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)的一个解决办法

    http://blog.csdn.net/chenneu/article/details/7986631

     15,oracle 中:WMSYS.WM_CONCAT

    http://blog.sina.com.cn/s/blog_03c54d100101abqd.html

    mysql中:GROUP_CONCAT

    http://blog.csdn.net/catoop/article/details/8124561

    16,Mysql代替oracle中rownum作用的语句

    Select group_id,(@rowNum:=@rowNum+1) as rowNum

    From v_base_department, (Select (@rowNum :=0) ) b

    17,mysql返回本月第一天

    select DATE_ADD(curdate(),interval-day(curdate())+1 day);

    http://blog.csdn.net/maonongwu/article/details/8530397

    oracle返回本月第一天

    trunc(sysdate - 1,'MM')

    18,mysql中加减(1,2,3...)年,(1,2,3...)月,(1,2,3...)日

    DATE_ADD(OrderDate,INTERVAL 2 DAY)
    http://www.w3school.com.cn/sql/func_date_add.asp
    oracle中
    add_month(sysdate,-1)

    19,Oracle:grouping :空的地方返回1,非空的地方返回0
    http://www.360doc.com/content/10/1231/11/2581091_82872238.shtml

    19
    mysql中
    把时间变成 不同格式的
    H大写是24小时制度,等
    select date_format(now(),'%Y-%m-%d %H:%i:%s')
    oracle
    select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;

       20,group by

    oracle:中cube的作用

    http://www.alixixi.com/Dev/DB/MYSQL/2007/2007021221925.html

    一组是先按照a分组,在a组里面,然后按照b分组(group by cube(a,b))

    还有一组只有单单的a,可以统计a组对应的所以数量

    同理,还有单单的一组b,统计b组对应的所以数量

    还有一组对应所有的数量

    group by cube(a,b,c)

    http://www.itpub.net/thread-972390-1-1.html

    mysql:中没有cube,单只有group by

    group by a,b

    意思就是,先按照a分组,在a组里面,再按照b分组

    http://zccst.iteye.com/blog/1157763

     21,substring(? from 1 for length(phonenum)

    ? 在这里应该是一个输入型变量。 substring表示从该变量的第一个字符起,取到phonenum的长度。如,该变量值为:‘Hello World',phonenum的长度为4 则,substring的结果为:'Hell'

    http://bbs.csdn.net/topics/110175383

    22.oracle:

    sysdate+1就是加一天
    如果要加一小时的话就是sysdate+1/24
    如果要加一分钟的话就是sysdate+1/24/60
    依此类推

    mysql:

    DATE_SUB(NOW(), INTERVAL 1 MINUTE)当前时间减1分钟

  • 相关阅读:
    c语言中限制用户输入整数
    c语言 输入验证(限制输入正数)
    c语言中只读取输入的一行字符的首个字符
    python如何通过代码自动免密登陆ssh
    计算机科学速成课 02:电子计算机、继电器、术语“bug”的来源、真空管、晶体管、发展路径 转
    golang ...用法
    01 _ 程序的运行过程:从代码到机器运行
    深入Golang调度器之GMP模型 转
    golang可视化
    修改默认输入法,用英文标点符号
  • 原文地址:https://www.cnblogs.com/coprince/p/4974826.html
Copyright © 2011-2022 走看看