基礎(chǔ)查詢:
SELECT columnName FROM tableName WHERE columnName = 'name';
SELECT * FROM tableName WHERE columnName != 'name';
SELECT * FROM tableName WHERE columnName <> 'name';
SELECT * FROM tableName WHERE columnName is not null;
此處如果想進(jìn)行有關(guān)null字段的操作的話莉掂,需要使用is null或者is not null葛圃。
簡(jiǎn)單聯(lián)表查詢:
SELECT * FROM tableName1 a, tableName2 b where a.columnName = b.columnName
AND a.columnName = 'name'
聯(lián)表查詢支持多表聯(lián)查以及靈活的字段表示等,但尤其需要注意的是查詢結(jié)果集的行數(shù)。一般來說库正,當(dāng)a表中存在一條符合要求的記錄曲楚,而b表中存在兩條時(shí),查詢結(jié)果集的行數(shù)是2褥符。其中由a表提供的字段被重復(fù)顯示在第一行和第二行中龙誊。
簡(jiǎn)單分組和排序:
SELECT columnName FROM tableName GROUP BY columnName ORDER BY columnName DESC
同時(shí)使用多種關(guān)鍵字時(shí)需要注意先后順序,用的時(shí)候在SQL運(yùn)行界面試一下就可以了喷楣。
稍微復(fù)雜一點(diǎn)的分組和排序:
以下代碼取出了分組后每一組的第一行數(shù)據(jù)趟大。
SELECT * FROM (SELECT ROW_NUMBER()
OVER(PARTITION BY columnName
ORDER BY columnName DESC) rn, tableName.* FROM tableName)
WHERE rn = 1 AND columnName = 'name'
下面這段代碼中可以比較復(fù)雜的部分是正則表達(dá)式,它可以被用來匹配特定的字符模式铣焊。
SELECT COUNT(*) FROM tableName WHERE columnName LIKE '%1804'
下面這段代碼實(shí)現(xiàn)了日期格式的轉(zhuǎn)換與剩余天數(shù)的計(jì)算逊朽。
SELECT columnName1, columnName2, columnName3,
CEIL(TO_DATE(substr(columnName4,1,8),'yyyymmdd') -
TO_DATE(to_char(TRUNC(SYSDATE),'yyyymmdd'),'yyyymmdd')) AS
REMAININGDAYS FROM tableName WHERE columnName5 = 'IC'
AND columnName6='LIST' AND columnName4<>'0'
下面這段代碼使用的是CASE語句,相當(dāng)于在SQL中做了if判斷曲伊。
SELECT columnName1, columnName2, columnName3,
(CASE WHEN columnName4 = 'B' THEN columnName5
WHEN columnName4 = 'S' THEN columnName6 END) *
(CASE WHEN columnName4 = 'B' THEN columnName7
WHEN columnName4 = 'S' THEN columnName8 END)
AS columnName9 FROM tableName WHERE columnName1 = 'name';
下面這段代碼使用IN關(guān)鍵字對(duì)查詢出來字段的取值范圍做出了限定叽讳。
SELECT * FROM tableName WHERE columnName1
IN (SELECT arbiProjectId FROM tableName GROUP BY columnName1)
ORDER BY columnName2 DESC
以上都是項(xiàng)目能常見的查詢操作,在此記下筆記留作后用坟募。
一般來說岛蚤,除一些特殊字段外,操作時(shí)使用大寫或小寫均可懈糯。這里為了清晰按習(xí)慣將大小寫做了區(qū)分涤妒,大寫為語法格式,小寫為用戶輸入的內(nèi)容赚哗。另外她紫,當(dāng)執(zhí)行多條SQL語句時(shí),需要在每一句SQL后面加上分號(hào)蜂奸。
對(duì)于一些VARCHAR2類型字段的查詢犁苏,可以加單引號(hào)也可以不加,這是因?yàn)镺racle在執(zhí)行SQL語句前會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換扩所,將高級(jí)類型轉(zhuǎn)換成低級(jí)類型围详。此時(shí)的現(xiàn)象就是無論寫成
SELECT * FROM pb_arbiProject WHERE projectStatus = '1';
還是
SELECT * FROM pb_arbiProject WHERE projectStatus = 1;
都可以通過編譯,查詢出想要的結(jié)果祖屏。當(dāng)然助赞,此時(shí)的字符串必須是可轉(zhuǎn)換的,如果里面存儲(chǔ)的是'一長(zhǎng)串字'就不行了袁勺。