註釋
oracle使用的是 –(兩個 ) 批量註釋 /**/
mysql使用的是 # 批量註釋 /**/
通配符的使用
mysql和oracle都支持通配符 % 用以模糊查詢 mysql還可以用instr(para para )函數來做匹配查詢 速度更快 para 是原字符串 可以是表的字段 para 是需要匹配到的字符串
自增長數據類型的處理
oracel沒有自動增長的數據類型 需要建立序列號 插入記錄時 對該序列號使用nextval方法獲取數據值
mysql有自動增長的數據類型 插入記錄時不用操作該字段 自動獲取增長值
字符串單引號雙引號的處理
oracel只能使用單引號包起字符串
mysql對字符串可以使用單引號和雙引號 兩個都支持
按位與函數
oracle的按位與操作是 bitand() 按位或 bitor() 按位異或 bitxor()
eg select bitand( ) from dual ;
mysql的按位與是 & 按位或 | 按位異或 ^
eg select & ;
from子句
mysql可以沒有from字句 oracle則是需要的 如查詢系統當前時間:
oracle:
select sysdate from dual
mysql:
select sysdate();
查詢結果數據分頁
orale使用rowmum限制查詢返回的總行數 是oracle系統順序分配查詢返回的行的編號 返回的第壹行分配的是
因為rownum總是從 開始 當rownum=n或rownum>n時(n> 的自然數) 系統認為是false條件 所以無法查到 即rownum只支持小於判斷 用於返回多少條以內的記錄 如果想要返回的記錄是壹個區間 需要定義壹個子查詢 並且為子查詢的rownum命名壹個別名 如想要返回壹個表的第二條和第三條記錄:
select * from (select rownum no col col from table where rownum=
另外 rownum不能以任何表的名稱作為前綴
mysql使用limit分頁 limit 子句可以被用於強制 select語句返回指定的記錄數 limit接受壹個或兩個數字參數 參數必須是壹個整數常量 第壹個參數指定第壹個返回記錄行的偏移量 可缺省 默然為 第二個參數指定返回記錄行的最大數目 初始記錄行的偏移量是
eg select * from table limit ; #檢索記錄行
#為了檢索從某壹個偏移量到記錄集的結束所有的記錄行 可以指定第二個參數為
select * from table limit ; # 檢索記錄行 last
#如果只給定壹個參數 它表示返回最大的記錄行數目
select * from table limit ; # 檢索前 個記錄行 換句話說 limit n 等價於 limit n
日期字段處理
orale日期字段只有date mysql日期字段分date和time兩種
oracle的時間系統函數是sysdate
mysql:
current_date/curdate() 以 YYYY MM DD 或YYYYMMDD格式返回今天日期值 取決於函數是在壹個字符串還是數字上下文被使用
current_time/curtime() 以 HH:MM:SS 或HHMMSS格式返回當前時間值 取決於函數是在壹個字符串還是在數字的上下文被使用
now()/sysdate() 以 YYYY MM DD HH:MM:SS 或YYYYMMDDHHMMSS格式返回當前的日期和時間 取決於函數是在壹個字符串還是在數字的上下文被使用
now()/sysdate()函數以 YYYY MM DD HH:MM:SS 返回當前的日期時間 可以直接存到datetime字段中 curdate()以 YYYY MM DD 的格式返回今天的日期 可以直接存到DATE字段中 CURTIME()以 HH:MM:SS 的格式返回當前的時間 可以直接存到TIME字段中
查詢壹個表 其日期字段date_col的值系統時間 天以內
oracle
SELECT * FROM table WHERE date_col >= sysdate –
mysql:
select * from table where to_days(date_col) >= to_days(now()) – ;
select date_sub(now() interval day); # select date_add(now() interval day); date_add 是增加
日期格式
oracle 使用to_char()函數
select to_char(sysdate yyyy mm dd ) from dual;
select to_char(sysdate hh :mi:ss ) from dual;
mysql 使用date_format() 或 time_format()
select date_format(now() %Y %m %d );
lishixinzhi/Article/program/Oracle/201311/18066