Oracle和MySQL語句上的一些區別

2021-10-05 22:49:56 字數 1529 閱讀 8094

oracle: 使用nvl(exp1,exp2) 函式

select nvl('',1) from dual; -- returns:1

select nvl(null,1) from dual; -- returns: 1

mysql:使用ifnull(exp1,exp2)函式

select ifnull(null,1); -- returns: 1

select ifnull('',1); -- returns: ''

操作

oracle

mysql

轉字元to_char(exp,『yyyy-mm-dd』)

date_format(exp,』%y-%m-%d』)

轉字元to_char(exp,『yyyy-mm-dd hh:mm:ss』)

date_format(exp,』%y-%m-%d %t』)

轉時間to_date(exp,『yyyy-mm-dd』)

str_to_date(exp,』%y-%m-%d』)

轉時間to_date(exp,『yyyy-mm-dd hh24:mi:ss』)

str_to_date(exp,』%y-%m-%d %t』)

取月份to_char(exp,『mm』)

month(exp)

取時間sysdate

now()

日期相減

date1 - date2

datediff(date1,date2)

oracle: 可使用 || 符號,可用concat(exp1,exp2)函式

select '1'||'2' from dual; -- returns '12'

select concat('1','2') from dual; -- returns '12'

select concat('1','2','3') from dual; -- returns error 引數個數無效

mysql: 只能用concat(exp1,exp2,...), || 符號在mysql表示 或 ,mysql的concat函式可有n個引數,oracle只有兩個引數

select concat('1','2') from dual; -- returns '12'

select concat('1','2','3') from dual; -- returns '123'

oracle:

oracle自帶有表連線的(+)功能,也可用left(right) join on

mysql:

mysql 沒有(+)使用功能,只能用left(right) join on,否則就會報錯

oracle : 換行符是chr(10),回車符是chr(13)

mysql : 換行符是char(10),回車符是char(13)

oracle : order by 預設排序時,空值在下;mysql空值在上。

mysql和oracle分頁語句

分頁是常見的提高查詢效率的方法,因此熟練掌握不同資料庫的分頁語句很重要 mysql的分頁如下 select from table name where 1 1 limit start,end 最好換成需要查詢的字段,不要用 start 頁數 從0開始計算 end 每頁條數 oracle 的分頁如下 ...

ORACLE語句優化 上

1.選擇最有效率的表名順序 oracle的解析器按照從右到左的順序處理from子句中的表名,from子句中寫在最後的表 基礎表 driving table 將被最先處理,在from子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。如果有3個以上的表連線查詢,那就需要選擇交叉表 inte...

oracle 語句轉mysql語句

oracle to date 06 08 2019 16 20 50 dd mm yyyy hh24 mi ss mysql str to date 06 08 2019 16 20 50 d m y h i s mysql 類似to char to date 函式 mysql日期和字元相互轉換方法...