隨筆-15  評論-3  文章-0  trackbacks-0

          有時候用這兩種數據庫很頭痛, 總結了一些它們的不同。希望有心人更正補全,方便自己,方便大家*.

          *. 做單獨的查詢時, Orcale使用一個叫DUAL的偽表, 而MySQL不需要.

          *. MySQL別名不區分大小寫, MySQL字符比較也不區別大小寫.

          *. 包含null的任何運算(is null 除外), 包括null = null, MySQL返回NULL, Oracle(........待定..).

          *. Oracle中, 如果列名長于列限定字符數, 那么輸出的列名會被截斷.

          *. MySQL 4.0以后的版本支持UNION和UNION ALL, 但仍不支持INTERSECT和MINUS.

          日期:

          *. MySQL只支持類似于2002-3-12或者96-12-1的日期格式.

          *. 日期運算MySQL是用DATE_ADD(date, interval 2 month)這樣的函數運算, 而Oracle用類似于ADD_MONTHS(date, 2)這樣樣的函數來運算.

          *. Oracle可以使用MONTHS_BETWEEN, NEW_TIME, NEXT_DAY這樣的函數計算日期.

          *. Oracle使用SYSDATE獲得當前時間, MySQL使用NOW();

          字符

          *. 字符串引用, Oracle只能用單引號, MySQL還可以用雙引號.

          *. 用字符型數據使用算術運算符, Oracle報錯, MySQL會先將此數據轉換為數值.

          *. MySQL中"||"符號默認是"或"運算符, 連接字符串用函數CONCAT.

          *. MySQL中取得字符ASCII碼用函數ASCII(), Oracle用CHR();

          *. Oracle可以使用INITCAP函數讓字符串首字母大字.

          *. MySQL中使用REPLACE函數時必須要寫全三個參數.

          *. REPLACE函數中, 第二個和第三個任一參數為NULL, MySQL返回NULL; 而Oracle在第二個參數為NULL時會返回字符串, 第三個參數缺少或為NULL時會刪除與第二個參數匹配的字符.

          *. Oracle中可以使用translate來進行字符串替換.

          *. Oracle中不可以對數值使用length函數. MySQL自動將數值轉換為字符.

          GROUP BY 和 HAVING

          *. Oracle中, 有GROUP BY子句的查詢, SELECT后只能出現聚合函數或者GROUP BY子句中作為分組條件的列. MySQL可以使用其它列, 該列的值將等于指分組條件在查詢時第一個出現的行的該列的值.

          *. MySQL中, 同時包含GROUP BY和HAVING的子句, 只可以在HAVING中使用聚合函數或者SELECT中作為列表的列; Oracle中可以使用其它列, 這個列是指該分組的所有行的列. 比如 HAVING col < 5, 指該分組所有行的col列均小于5.


          剛開始寫博客! 呵呵,主要是記錄下自己的一些東西,期望和大家交流.
          posted on 2008-03-06 14:41 pinuo 閱讀(1594) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 武冈市| 平凉市| 郎溪县| 宽城| 镇安县| 咸宁市| 铁岭市| 英德市| 惠东县| 启东市| 安康市| 涟水县| 德惠市| 中方县| 耒阳市| 华容县| 四川省| 铜川市| 盐源县| 石阡县| 屏南县| 东阳市| 新乐市| 林芝县| 资源县| 莒南县| 永年县| 昌都县| 南阳市| 广平县| 安乡县| 蓝田县| 南平市| 淳化县| 偏关县| 栖霞市| 岗巴县| 巴林左旗| 镇平县| 安化县| 汕尾市|