時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
注釋
oracle使用的是:–(兩個(gè)-) ,批量注釋 /**/ 。
mysql使用的是:# ,批量注釋 /**/ 。
通配符的使用
mysql和oracle都支持通配符’%',用以模糊查詢,mysql還可以用instr(para1,para2)函數(shù)來(lái)做匹配查詢,速度更快,para1是原字符串,可以是表的字段,para2是需要匹配到的字符串。
自增長(zhǎng)數(shù)據(jù)類(lèi)型的處理
oracel沒(méi)有自動(dòng)增長(zhǎng)的數(shù)據(jù)類(lèi)型,需要建立序列號(hào),插入記錄時(shí),對(duì)該序列號(hào)使用nextval方法獲取數(shù)據(jù)值。
mysql有自動(dòng)增長(zhǎng)的數(shù)據(jù)類(lèi)型,插入記錄時(shí)不用操作該字段,自動(dòng)獲取增長(zhǎng)值。
字符串單引號(hào)雙引號(hào)的處理
oracel只能使用單引號(hào)包起字符串。
mysql對(duì)字符串可以使用單引號(hào)和雙引號(hào),兩個(gè)都支持。
按位與函數(shù)
oracle的按位與操作是: bitand(),按位或:bitor() 、按位異或:bitxor() 。
eg:select bitand(3,2) from dual ;
mysql的按位與是 & ,按位或:| 、按位異或: ^ 。
eg:select 3&2 ;
from子句
mysql可以沒(méi)有from字句,oracle則是需要的,如查詢系統(tǒng)當(dāng)前時(shí)間:
oracle:
select sysdate from dual
mysql:
select sysdate();
查詢結(jié)果數(shù)據(jù)分頁(yè)
orale使用rowmum限制查詢返回的總行數(shù),是oracle系統(tǒng)順序分配查詢返回的行的編號(hào),返回的第一行分配的是1。
因?yàn)閞ownum總是從1開(kāi)始,當(dāng)rownum=n或rownum>n時(shí)(n>1的自然數(shù)),系統(tǒng)認(rèn)為是false條件,所以無(wú)法查到。即rownum只支持小于判斷,用于返回多少條以內(nèi)的記錄.如果想要返回的記錄是一個(gè)區(qū)間,需要定義一個(gè)子查詢,并且為子查詢的rownum命名一個(gè)別名.如想要返回一個(gè)表的第二條和第三條記錄:
select * from (select rownum no,col1,col2 from table where rownum=2
另外,rownum不能以任何表的名稱(chēng)作為前綴。
mysql使用limit分頁(yè),limit 子句可以被用于強(qiáng)制 select語(yǔ)句返回指定的記錄數(shù)。limit接受一個(gè)或兩個(gè)數(shù)字參數(shù)。參數(shù)必須是一個(gè)整數(shù)常量。第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量,可缺省,默然為0,第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目。初始記錄行的偏移量是 0。
eg:select * from table limit 5,10; #檢索記錄行 6-15
#為了檢索從某一個(gè)偏移量到記錄集的結(jié)束所有的記錄行,可以指定第二個(gè)參數(shù)為 -1 :
select * from table limit 95,-1; # 檢索記錄行 96-last.
#如果只給定一個(gè)參數(shù),它表示返回最大的記錄行數(shù)目:
select * from table limit 5; # 檢索前 5 個(gè)記錄行,換句話說(shuō),limit n 等價(jià)于 limit 0,n。
日期字段處理
orale日期字段只有date,mysql日期字段分date和time兩種。
oracle的時(shí)間系統(tǒng)函數(shù)是sysdate。
mysql:
current_date/curdate() ,以’YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取決于函數(shù)是在一個(gè)字符串還是數(shù)字上下文被使用。
current_time/curtime() ,以’HH:MM:SS’或HHMMSS格式返回當(dāng)前時(shí)間值,取決于函數(shù)是在一個(gè)字符串還是在數(shù)字的上下文被使用。
now()/sysdate(),以’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回當(dāng)前的日期和時(shí)間,取決于函數(shù)是在一個(gè)字符串還是在數(shù)字的上下文被使用.
now()/sysdate()函數(shù)以’YYYY-MM-DD HH:MM:SS’返回當(dāng)前的日期時(shí)間,可以直接存到datetime字段中。curdate()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。CURTIME()以’HH:MM:SS’的格式返回當(dāng)前的時(shí)間,可以直接存到TIME字段中。
查詢一個(gè)表,其日期字段date_col的值系統(tǒng)時(shí)間30天以內(nèi)
oracle
SELECT * FROM table WHERE date_col >= sysdate – 30
mysql:
select * from table where to_days(date_col) >= to_days(now()) – 30;
select date_sub(now(),interval 30 day); # select date_add(now(),interval 1 day); date_add 是增加
日期格式
oracle 使用to_char()函數(shù)
select to_char(sysdate,’yyyy-mm-dd’) from dual;
select to_char(sysdate,’hh24:mi:ss’) from dual;
mysql 使用date_format() 或 time_format()
select date_format(now(),’%Y-%m-%d’);
select time_format(now(),’%H-%i-%S’);
關(guān)鍵詞標(biāo)簽:mysql,oracle
相關(guān)閱讀
熱門(mén)文章 Xbox Game Pass 10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫(kù)啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié)
人氣排行 10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫(kù)啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯(cuò)誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實(shí)際操作步驟匯總 MySQL無(wú)法啟動(dòng)、無(wú)法停止各種解決方法總結(jié) 三種常用的MySQL建表語(yǔ)句