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

     1   FROM PRICE_INFO A LEFT JOIN SALEROOM C ON A.SALESROOM_ID = C.SALESROOM_ID
     2                     LEFT JOIN  PRICE_NAME D ON A.PRICE_NAME_ID = D.PRICE_NAME_ID
     3                     LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_JR JR ON A.PRICE_ID = JR.PRICE_ID
     4                     LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_KR KR ON  A.PRICE_ID = KR.PRICE_ID
     5                     LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_MR MR ON A.PRICE_ID = MR.PRICE_ID
     6                     LEFT JOIN SUSLIKS_TEST.V_GOODS_PRICE_VIEW_G  G ON  D.DICTIONARY_ID = G.DICTIONARY_ID,
     7     
     8        PRICE_DETAIL B,
     9        BASE_SUPPLIER E,
    10        GOODS_INFO H,
    11        GOODS_BRAND I 
    12        
    13  WHERE A.PRICE_ID = B.PRICE_ID
    14    AND B.GOODS_ID = H.GOODS_ID
    15    AND H.SUPPLIER_ID = E.SUPPLIER_ID
    16    AND H.BRAND_ID = I.BRAND_ID
    17    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

    自信与努力 用心坚持
  • 相关阅读:
    fullCalendar改造计划之带农历节气节假日的万年历(转)
    Linked List Cycle
    Remove Nth Node From End of List
    Binary Tree Inorder Traversal
    Unique Binary Search Trees
    Binary Tree Level Order Traversal
    Binary Tree Level Order Traversal II
    Plus One
    Remove Duplicates from Sorted List
    Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/kyxyes/p/3463303.html
Copyright © 2011-2022 走看看