錛?錛?nbsp;
ORACLE閲囩敤鑷笅鑰屼笂鐨勯『搴忚В鏋怶HERE瀛愬彞,鏍規嵁榪欎釜鍘熺悊,琛ㄤ箣闂寸殑榪炴帴蹇呴』鍐欏湪鍏朵粬WHERE鏉′歡涔嬪墠, 閭d簺鍙互榪囨護鎺夋渶澶ф暟閲忚褰曠殑鏉′歡蹇呴』鍐欏湪WHERE瀛愬彞鐨勬湯灝?
浣跨敤DECODE鍑芥暟鍙互閬垮厤閲嶅鎵弿鐩稿悓璁板綍鎴栭噸澶嶈繛鎺ョ浉鍚岀殑琛?
濡傛灉浣犳湁鍑犱釜綆鍗曠殑鏁版嵁搴撴煡璇㈣鍙?浣犲彲浠ユ妸瀹冧滑鏁村悎鍒頒竴涓煡璇腑(鍗充嬌瀹冧滑涔嬮棿娌℃湁鍏崇郴)
FROM EMP X WHERE X.EMP_NO = E.EMP_NO);
COMMIT鎵閲婃斁鐨勮祫婧?
a. 鍥炴粴孌典笂鐢ㄤ簬鎭㈠鏁版嵁鐨勪俊鎭?
b. 琚▼搴忚鍙ヨ幏寰楃殑閿?nbsp;
c. redo log buffer 涓殑絀洪棿
d. ORACLE涓虹鐞嗕笂榪?縐嶈祫婧愪腑鐨勫唴閮ㄨ姳璐?br style="word-break: break-all; line-height: normal !important; " />
鍦ㄥ惈鏈夊瓙鏌ヨ鐨凷QL璇彞涓?瑕佺壒鍒敞鎰忓噺灝戝琛ㄧ殑鏌ヨ.渚嬪瓙錛?br style="word-break: break-all; line-height: normal !important; " />SELECT TAB_NAME FROM TABLES WHERE (TAB_NAME,DB_VER) = ( SELECT
TAB_NAME,DB_VER FROM TAB_COLUMNS WHERE VERSION = 604)
渚嬪瓙錛?br style="word-break: break-all; line-height: normal !important; " />錛堥珮鏁堬級SELECT * FROM EMP (鍩虹琛? WHERE EMPNO > 0 AND
(浣庢晥)SELECT * FROM EMP (鍩虹琛? WHERE EMPNO > 0 AND DEPTNO
铏界劧鐩墠鍚勭鍏充簬SQL浼樺寲鐨勫浘褰㈠寲宸ュ叿灞傚嚭涓嶇┓,浣嗘槸鍐欏嚭鑷繁鐨凷QL宸ュ叿鏉ヨВ鍐抽棶棰樺緇堟槸涓涓渶濂界殑鏂規硶錛?br style="word-break: break-all; line-height: normal !important; " />SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
FROM V$SQLAREA
WHERE EXECUTIONS>0
AND BUFFER_GETS > 0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8
ORDER BY 4 DESC;
錛?7錛?nbsp;
绱㈠紩鏄〃鐨勪竴涓蹇甸儴鍒?鐢ㄦ潵鎻愰珮媯绱㈡暟鎹殑鏁堢巼錛孫RACLE浣跨敤浜嗕竴涓鏉傜殑鑷鉤琛-tree緇撴瀯. 閫氬父,閫氳繃绱㈠紩鏌ヨ鏁版嵁姣斿叏琛ㄦ壂鎻忚蹇? 褰揙RACLE鎵懼嚭鎵ц鏌ヨ鍜孶pdate璇彞鐨勬渶浣寵礬寰勬椂, ORACLE浼樺寲鍣ㄥ皢浣跨敤绱㈠紩. 鍚屾牱鍦ㄨ仈緇撳涓〃鏃朵嬌鐢ㄧ儲寮曚篃鍙互鎻愰珮鏁堢巼. 鍙︿竴涓嬌鐢ㄧ儲寮曠殑濂藉鏄?瀹冩彁渚涗簡涓婚敭(primary key)鐨勫敮涓鎬ч獙璇?銆傞偅浜汱ONG鎴朙ONG RAW鏁版嵁綾誨瀷, 浣犲彲浠ョ儲寮曞嚑涔庢墍鏈夌殑鍒? 閫氬父, 鍦ㄥぇ鍨嬭〃涓嬌鐢ㄧ儲寮曠壒鍒湁鏁? 褰撶劧,浣犱篃浼氬彂鐜? 鍦ㄦ壂鎻忓皬琛ㄦ椂,浣跨敤绱㈠紩鍚屾牱鑳芥彁楂樻晥鐜? 铏界劧浣跨敤绱㈠紩鑳藉緱鍒版煡璇㈡晥鐜囩殑鎻愰珮,浣嗘槸鎴戜滑涔熷繀欏繪敞鎰忓埌瀹冪殑浠d環. 绱㈠紩闇瑕佺┖闂存潵瀛樺偍,涔熼渶瑕佸畾鏈熺淮鎶? 姣忓綋鏈夎褰曞湪琛ㄤ腑澧炲噺鎴栫儲寮曞垪琚慨鏀規椂, 绱㈠紩鏈韓涔熶細琚慨鏀? 榪欐剰鍛崇潃姣忔潯璁板綍鐨処NSERT , DELETE , UPDATE灝嗕負姝ゅ浠樺嚭4 , 5 嬈$殑紓佺洏I/O . 鍥犱負绱㈠紩闇瑕侀澶栫殑瀛樺偍絀洪棿鍜屽鐞?閭d簺涓嶅繀瑕佺殑绱㈠紩鍙嶈屼細浣挎煡璇㈠弽搴旀椂闂村彉鎱?銆傚畾鏈熺殑閲嶆瀯绱㈠紩鏄湁蹇呰鐨?錛?br style="word-break: break-all; line-height: normal !important; " />ALTER INDEX <INDEXNAME> REBUILD <TABLESPACENAME>
SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D , EMP E
WHERE D.DEPT_NO = E.DEPT_NO
(楂樻晥):
SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT ‘X'
FROM EMP E WHERE E.DEPT_NO = D.DEPT_NO);
鎴戜滑瑕侀伩鍏嶅湪绱㈠紩鍒椾笂浣跨敤NOT, NOT浼氫駭鐢熷湪鍜屽湪绱㈠紩鍒椾笂浣跨敤鍑芥暟鐩稿悓鐨勫獎鍝? 褰揙RACLE”閬囧埌”NOT,浠栧氨浼氬仠姝嬌鐢ㄧ儲寮曡漿鑰屾墽琛屽叏琛ㄦ壂鎻?
WHERE瀛愬彞涓紝濡傛灉绱㈠紩鍒楁槸鍑芥暟鐨勪竴閮ㄥ垎錛庝紭鍖栧櫒灝嗕笉浣跨敤绱㈠紩鑰屼嬌鐢ㄥ叏琛ㄦ壂鎻忥紟
涓句緥:
浣庢晥錛?nbsp;
SELECT … FROM DEPT WHERE SAL * 12 > 25000;
楂樻晥:
SELECT … FROM DEPT WHERE SAL > 25000/12;
楂樻晥:
SELECT * FROM EMP WHERE DEPTNO >=4
浣庢晥:
SELECT * FROM EMP WHERE DEPTNO >3
涓よ呯殑鍖哄埆鍦ㄤ簬, 鍓嶈匘BMS灝嗙洿鎺ヨ煩鍒扮涓涓狣EPT絳変簬4鐨勮褰曡屽悗鑰呭皢棣栧厛瀹氫綅鍒癉EPTNO=3鐨勮褰曞茍涓斿悜鍓嶆壂鎻忓埌絎竴涓狣EPT澶т簬3鐨勮褰?
閫氬父鎯呭喌涓? 鐢║NION鏇挎崲WHERE瀛愬彞涓殑OR灝嗕細璧峰埌杈冨ソ鐨勬晥鏋? 瀵圭儲寮曞垪浣跨敤OR灝嗛犳垚鍏ㄨ〃鎵弿. 娉ㄦ剰, 浠ヤ笂瑙勫垯鍙拡瀵瑰涓儲寮曞垪鏈夋晥. 濡傛灉鏈塩olumn娌℃湁琚儲寮? 鏌ヨ鏁堢巼鍙兘浼氬洜涓轟綘娌℃湁閫夋嫨OR鑰岄檷浣? 鍦ㄤ笅闈㈢殑渚嬪瓙涓? LOC_ID 鍜孯EGION涓婇兘寤烘湁绱㈠紩.
楂樻晥:
SELECT LOC_ID , LOC_DESC , REGION
FROM LOCATION
WHERE LOC_ID = 10
UNION
SELECT LOC_ID , LOC_DESC , REGION
FROM LOCATION
WHERE REGION = “MELBOURNE”
浣庢晥:
SELECT LOC_ID , LOC_DESC , REGION
FROM LOCATION
WHERE LOC_ID = 10 OR REGION = “MELBOURNE”
濡傛灉浣犲潥鎸佽鐢∣R, 閭e氨闇瑕佽繑鍥炶褰曟渶灝戠殑绱㈠紩鍒楀啓鍦ㄦ渶鍓嶉潰.
榪欐槸涓鏉$畝鍗曟槗璁扮殑瑙勫垯錛屼絾鏄疄闄呯殑鎵ц鏁堟灉榪橀』媯楠岋紝鍦∣RACLE8i涓嬶紝涓よ呯殑鎵ц璺緞浼間箮鏄浉鍚岀殑錛庛
浣庢晥:
SELECT…. FROM LOCATION WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30
楂樻晥
SELECT… FROM LOCATION WHERE LOC_IN IN (10,20,30);
閬垮厤鍦ㄧ儲寮曚腑浣跨敤浠諱綍鍙互涓虹┖鐨勫垪錛孫RACLE灝嗘棤娉曚嬌鐢ㄨ绱㈠紩錛庡浜庡崟鍒楃儲寮曪紝濡傛灉鍒楀寘鍚┖鍊鹼紝绱㈠紩涓皢涓嶅瓨鍦ㄦ璁板綍. 瀵逛簬澶嶅悎绱㈠紩錛屽鏋滄瘡涓垪閮戒負絀猴紝绱㈠紩涓悓鏍蜂笉瀛樺湪姝よ褰?銆濡傛灉鑷沖皯鏈変竴涓垪涓嶄負絀猴紝鍒欒褰曞瓨鍦ㄤ簬绱㈠紩涓紟涓句緥: 濡傛灉鍞竴鎬х儲寮曞緩绔嬪湪琛ㄧ殑A鍒楀拰B鍒椾笂, 騫朵笖琛ㄤ腑瀛樺湪涓鏉¤褰曠殑A,B鍊間負(123,null) , ORACLE灝嗕笉鎺ュ彈涓嬩竴鏉″叿鏈夌浉鍚孉,B鍊鹼紙123,null錛夌殑璁板綍(鎻掑叆). 鐒惰屽鏋滄墍鏈夌殑绱㈠紩鍒楅兘涓虹┖錛孫RACLE灝嗚涓烘暣涓敭鍊間負絀鴻岀┖涓嶇瓑浜庣┖. 鍥犳浣犲彲浠ユ彃鍏?000 鏉″叿鏈夌浉鍚岄敭鍊肩殑璁板綍,褰撶劧瀹冧滑閮芥槸絀? 鍥犱負絀哄間笉瀛樺湪浜庣儲寮曞垪涓?鎵浠HERE瀛愬彞涓绱㈠紩鍒楄繘琛岀┖鍊兼瘮杈冨皢浣縊RACLE鍋滅敤璇ョ儲寮?
浣庢晥: (绱㈠紩澶辨晥)
SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;
楂樻晥: (绱㈠紩鏈夋晥)
SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;
濡傛灉绱㈠紩鏄緩绔嬪湪澶氫釜鍒椾笂, 鍙湁鍦ㄥ畠鐨勭涓涓垪(leading column)琚玾here瀛愬彞寮曠敤鏃?浼樺寲鍣ㄦ墠浼氶夋嫨浣跨敤璇ョ儲寮? 榪欎篃鏄竴鏉$畝鍗曡岄噸瑕佺殑瑙勫垯錛屽綋浠呭紩鐢ㄧ儲寮曠殑絎簩涓垪鏃?浼樺寲鍣ㄤ嬌鐢ㄤ簡鍏ㄨ〃鎵弿鑰屽拷鐣ヤ簡绱㈠紩
褰揝QL璇彞闇瑕乁NION涓や釜鏌ヨ緇撴灉闆嗗悎鏃?榪欎袱涓粨鏋滈泦鍚堜細浠NION-ALL鐨勬柟寮忚鍚堝茍, 鐒跺悗鍦ㄨ緭鍑烘渶緇堢粨鏋滃墠榪涜鎺掑簭. 濡傛灉鐢║NION ALL鏇夸唬UNION, 榪欐牱鎺掑簭灝變笉鏄繀瑕佷簡. 鏁堢巼灝變細鍥犳寰楀埌鎻愰珮. 闇瑕佹敞鎰忕殑鏄紝UNION ALL 灝嗛噸澶嶈緭鍑轟袱涓粨鏋滈泦鍚堜腑鐩稿悓璁板綍. 鍥犳鍚勪綅榪樻槸瑕佷粠涓氬姟闇姹傚垎鏋愪嬌鐢║NION ALL鐨勫彲琛屾? UNION 灝嗗緇撴灉闆嗗悎鎺掑簭,榪欎釜鎿嶄綔浼氫嬌鐢ㄥ埌SORT_AREA_SIZE榪欏潡鍐呭瓨. 瀵逛簬榪欏潡鍐呭瓨鐨勪紭鍖栦篃鏄浉褰撻噸瑕佺殑. 涓嬮潰鐨凷QL鍙互鐢ㄦ潵鏌ヨ鎺掑簭鐨勬秷鑰楅噺
浣庢晥錛?nbsp;
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = '31-DEC-95'
UNION
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = '31-DEC-95'
楂樻晥:
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = '31-DEC-95'
UNION ALL
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = '31-DEC-95'
ORDER BY 瀛愬彞鍙湪涓ょ涓ユ牸鐨勬潯浠朵笅浣跨敤绱㈠紩.
ORDER BY涓墍鏈夌殑鍒楀繀欏誨寘鍚湪鐩稿悓鐨勭儲寮曚腑騫朵繚鎸佸湪绱㈠紩涓殑鎺掑垪欏哄簭.
ORDER BY涓墍鏈夌殑鍒楀繀欏誨畾涔変負闈炵┖.
WHERE瀛愬彞浣跨敤鐨勭儲寮曞拰ORDER BY瀛愬彞涓墍浣跨敤鐨勭儲寮曚笉鑳藉茍鍒?
渚嬪:
琛―EPT鍖呭惈浠ヤ笅鍒?
DEPT_CODE PK NOT NULL
DEPT_DESC NOT NULL
DEPT_TYPE NULL
浣庢晥: (绱㈠紩涓嶈浣跨敤)
SELECT DEPT_CODE FROM DEPT ORDER BY DEPT_TYPE
楂樻晥: (浣跨敤绱㈠紩)
SELECT DEPT_CODE FROM DEPT WHERE DEPT_TYPE > 0
褰撴瘮杈冧笉鍚屾暟鎹被鍨嬬殑鏁版嵁鏃? ORACLE鑷姩瀵瑰垪榪涜綆鍗曠殑綾誨瀷杞崲.
鍋囪 EMPNO鏄竴涓暟鍊肩被鍨嬬殑绱㈠紩鍒?
SELECT … FROM EMP WHERE EMPNO = ‘123'
瀹為檯涓?緇忚繃ORACLE綾誨瀷杞崲, 璇彞杞寲涓?
SELECT … FROM EMP WHERE EMPNO = TO_NUMBER(‘123')
騫歌繍鐨勬槸,綾誨瀷杞崲娌℃湁鍙戠敓鍦ㄧ儲寮曞垪涓?绱㈠紩鐨勭敤閫旀病鏈夎鏀瑰彉.
鐜板湪,鍋囪EMP_TYPE鏄竴涓瓧絎︾被鍨嬬殑绱㈠紩鍒?
SELECT … FROM EMP WHERE EMP_TYPE = 123
榪欎釜璇彞琚玂RACLE杞崲涓?
SELECT … FROM EMP WHERETO_NUMBER(EMP_TYPE)=123
鍥犱負鍐呴儴鍙戠敓鐨勭被鍨嬭漿鎹? 榪欎釜绱㈠紩灝嗕笉浼氳鐢ㄥ埌! 涓轟簡閬垮厤ORACLE瀵逛綘鐨凷QL榪涜闅愬紡鐨勭被鍨嬭漿鎹? 鏈濂芥妸綾誨瀷杞崲鐢ㄦ樉寮忚〃鐜板嚭鏉? 娉ㄦ剰褰撳瓧絎﹀拰鏁板兼瘮杈冩椂, ORACLE浼氫紭鍏堣漿鎹㈡暟鍊肩被鍨嬪埌瀛楃綾誨瀷
鏌愪簺SELECT 璇彞涓殑WHERE瀛愬彞涓嶄嬌鐢ㄧ儲寮? 榪欓噷鏈変竴浜涗緥瀛?
鍦ㄤ笅闈㈢殑渚嬪瓙閲? (1)‘!=' 灝嗕笉浣跨敤绱㈠紩. 璁頒綇, 绱㈠紩鍙兘鍛婅瘔浣犱粈涔堝瓨鍦ㄤ簬琛ㄤ腑, 鑰屼笉鑳藉憡璇変綘浠涔堜笉瀛樺湪浜庤〃涓? (2) ‘||'鏄瓧絎﹁繛鎺ュ嚱鏁? 灝辮薄鍏朵粬鍑芥暟閭f牱, 鍋滅敤浜嗙儲寮? (3) ‘+'鏄暟瀛﹀嚱鏁? 灝辮薄鍏朵粬鏁板鍑芥暟閭f牱, 鍋滅敤浜嗙儲寮? (4)鐩稿悓鐨勭儲寮曞垪涓嶈兘浜掔浉姣旇緝,榪欏皢浼氬惎鐢ㄥ叏琛ㄦ壂鎻?
b. 鍦ㄧ壒瀹氭儏鍐典笅, 浣跨敤绱㈠紩涔熻浼氭瘮鍏ㄨ〃鎵弿鎱? 浣嗚繖鏄悓涓涓暟閲忕駭涓婄殑鍖哄埆. 鑰岄氬父鎯呭喌涓?浣跨敤绱㈠紩姣斿叏琛ㄦ壂鎻忚鍧楀嚑鍊嶄箖鑷沖嚑鍗冨?
甯︽湁DISTINCT,UNION,MINUS,INTERSECT,ORDER BY鐨凷QL璇彞浼氬惎鍔⊿QL寮曟搸
鎵ц鑰楄垂璧勬簮鐨勬帓搴?SORT)鍔熻兘. DISTINCT闇瑕佷竴嬈℃帓搴忔搷浣? 鑰屽叾浠栫殑鑷沖皯闇瑕佹墽琛屼袱嬈℃帓搴? 閫氬父, 甯︽湁UNION, MINUS , INTERSECT鐨凷QL璇彞閮藉彲浠ョ敤鍏朵粬鏂瑰紡閲嶅啓. 濡傛灉浣犵殑鏁版嵁搴撶殑SORT_AREA_SIZE璋冮厤寰楀ソ, 浣跨敤UNION , MINUS, INTERSECT涔熸槸鍙互鑰冭檻鐨? 姣曠珶瀹冧滑鐨勫彲璇繪у緢寮?br style="word-break: break-all; line-height: normal !important; " />
鎻愰珮GROUP BY 璇彞鐨勬晥鐜? 鍙互閫氳繃灝嗕笉闇瑕佺殑璁板綍鍦℅ROUP BY 涔嬪墠榪囨護鎺?涓嬮潰涓や釜鏌ヨ榪斿洖鐩稿悓緇撴灉浣嗙浜屼釜鏄庢樉灝卞揩浜嗚澶?
浣庢晥:
SELECT JOB , AVG(SAL)
FROM EMP
GROUP JOB
HAVING JOB = ‘PRESIDENT'
OR JOB = ‘MANAGER'
楂樻晥:
SELECT JOB , AVG(SAL)
FROM EMP
WHERE JOB = ‘PRESIDENT'
OR JOB = ‘MANAGER'
GROUP JOB