




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
OracleSQL語句基礎培訓2/4/20231目錄1SQL介紹2DML基礎3DDL基礎4DCL基礎5TL基礎2/4/20232概述SQL是StructuredQueryLanguage簡寫SQL用于組織、訪問和處理數據庫中的數據標準的計算機語言SQL具有第四代語言的特征,程序關注要告訴DBMS要得做什么操作,及其相應條件,至于如何得到數據,如何使用索引,如何關聯多表,由DBMS完成分類DataDefinitionLanguage(DDL數據定義語言)DataManipulationLanguage(DML數據操作語言)DataControlLanguage(DCL數據控制語言)TransactionLanguage(TL數據事務語言)
SQL介紹3目錄1SQL介紹2DML基礎3DDL基礎4DCL基礎5TL基礎2/4/20234算術運算符關系運算符邏輯運算符SELECT語句:查詢數據集合運算符:復合查詢SUBQUERY子查詢INSERT語句:插入數據UDATE語句:更新數據DELETE語句:刪除數據
5DML基礎5算術運算符號+加1+1-減2-1*乘2*3/除4/2||字符連接‘Beijing’||‘2008’邏輯運算符號AND兩個為真則結果為真OR一個為真即為真NOT取相反的邏輯值DML基礎6關系運算符號=等于,1=1<>不等于,2<>1>大于,2>1<小于,1<2>=大于等于,2>=1<=小于等于,1<=2ISNULL為空,沒有值,不是空字符串ISNOTNULL不為空,有值BETWEENAND檢索兩值之間的內容,2BETWEEN1AND3IN檢索匹配列表中的值LIKE檢索匹配字符樣式的數據DML基礎7SELECT語句完整SELECT語句基本SELECT語句ORDERBY從句DISTINCT從句WHERE從句AND條件OR條件AND、OR復合條件IN與NOTINBETWEEN與NOTBETWEENLIKE與NOTLIKEEXISITS與NOTEXISITSGROUPBY從句HAVING從句JOINS關聯DML基礎8完整的SELECT語句8SELECT
9[ALL|DISTINCT[ON(expression[,...])]]*|expression[ASoutput_name][,...]10[INTO[TEMPORARY|TEMP][TABLE]new_table]1
FROMfrom_item[,...]3[INNER|LEFT|RIGHT]JOIN2ON<condition>4[WHEREcondition]5[GROUPBYexpression[,...]]6[WITH{CUBE|ROLLUP}]
7[HAVINGcondition[,...]]
[{UNION|INTERSECT|EXCEPT[ALL]}select]11[ORDERBYexpression[ASC|DESC|USINGoperator][,...]]12[FORUPDATE[OFclass_name[,...]]]
[LIMIT{count|ALL}[{OFFSET|,}start]]DML基礎9用途SELECT語句用于查詢數據庫表或視圖的數據通常在表名或字段后加上空格as別名,其中as可省略,用別名引用表,可節省長度;語法SELECTcolumn1,column2,column3,……
FROMtables[WHEREpredicates];示例查詢所有組織機構,返回所有列數據項SELECT*FROMPSBW_J_JG查詢所有組織機構,返回指定列數據項SELECTDMAS機構代碼,MC機構名稱,LXDHFROMPSBW_J_JGDML基礎—SELECT10用途ORDERBY從句用于對SELECT語句返回的數據進行排序,ASC是升序,DESC是降序,不明寫時默認是ASC,ORDERBY不能用于INSERT、UPDATE、DELETE語句中;Oracle在Orderby時認為null是最大值,所以如果是ASC升序則排在最后,DESC降序則排在最前。當然,你也可以使用nullsfirst或者nullslast語法來控制NULL的位置。語法SELECTcolumnsFROMtables[WHEREpredicates]
ORDERBYcolumnASC/DESC;示例SELECT*FROMPSBW_J_JGORDERBYDMASC;(單列升序)SELECT*FROMPSBW_J_JGORDERBYDMDESC;(單列降序)SELECT*FROMPSBW_J_JGORDERBY1;(單列升序,第一列)SELECT*FROMPSBW_J_JGORDERBYSJJGDMASC,DMDESC;(多列混合排序)DML基礎—ORDERBY11用途DISTINCT從句用于過濾重復數據,但往往只用它來返回不重復記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重循環查詢來解決,而這樣對于一個數據量非常大的表來說,無疑是會直接影響到效率的。語法SELECTDISTINCTcolumnsFROMtables[WHEREpredicates];SELECT*,COUNT(DISTINCTCOL1)FROMTABLEGROUPBYCOL1示例selectDISTINCTXMFROMpsbw_j_yhWHEREXM='胡斌';selectDISTINCTXM,DMFROMpsbw_j_yhWHEREXM='胡斌';DML基礎—DISTINCT從句12用途WHERE從句用于指定操作條件,還可以用于INSERT、UPDATE、DELETE語句中;語法SELECTcolumnsFROMtablesWHEREpredicates;示例selectDM,XMfrompsbw_j_yhWHEREXM='胡斌';PS:ORACLE采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前,那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。DML基礎—WHERE從句13用途AND條件用于指定2個或者以上操作條件同時滿足,與WHERE從句一起使用;語法SELECTcolumnsFROMtablesWHEREcolumn1=‘value1’ANDcolumn2='value2‘[ANDcolumn3=‘value3’];示例selectDM,XMfrompsbw_j_yhWHEREXM='胡斌'ANDGMSFHM=;DML基礎—AND條件14用途OR條件用于指定2個或者以上操作條件只要一個滿足,與WHERE從句一起使用語法SELECTcolumnsFROMtablesWHEREcolumn1=‘value1’ORcolumn2=‘value2’[ORcolumn3=‘value3’
];示例SELECT*FROMpsbw_j_yhWHEREXM=‘李軍’ORXM='于波'DML基礎—OR條件15用途OR條件與AND條件可同時與WHERE從句一起使用,用于指定復雜條件,通常需用括號指明關系;語法SELECTcolumnsFROMtablesWHEREcolumn1=‘value1‘OR/ANDcolumn2=‘value2’[OR/ANDcolumn3=‘value3’
];示例SELECT*FROMPSBW_J_YHWHERE(XM='胡斌'ANDGMSFHM=)ORXM='于波';DML基礎—AND/OR16用途IN用于多個OR條件,NOTIN為IN的相反;語法SELECTcolumnsFROMtablesWHEREcolumn1in(value1,value2,....value_n);示例SELECTMCFROMPSBW_J_SQWHEREMCIN('人東社區','綠云社區','勞動社區');SELECTMCFROMPSBW_J_SQWHEREMC=‘人東社區’
ORMC=‘綠云社區’
ORMC='勞動社區';SELECTMCFROMPSBW_J_SQWHEREMCNOTIN('人東社區','綠云社區','勞動社區');DML基礎—in/notin17用途BETWEEN用于查詢一個范圍的數據;語法SELECTcolumnsFROMtablesWHEREcolumn1betweenvalue1andvalue2;示例SELECT*FROMPSBW_RKJBXXWHERERIDBETWEEN6015451AND6015493;SELECT*FROMPSBW_RKJBXXWHERECSRQBETWEENTO_DATE('1986-01-01','YYYY-MM-DD')ANDTO_DATE('1986-01-03','YYYY-MM-DD');SELECT*FROMPSBW_RKJBXXWHERERIDNOTBETWEEN6015451AND6015493;DML基礎—BETWEEN18用途LIKE用于模糊匹配查詢,結合%與_一起使用,其中%匹配大于等于1個字符,_只匹配一個字符使用!%escape'!'
或者!_escape'!'分別轉義%和_;(10g以上版本可用正則表達式,如,select*fromtbl_1whereregexp_like(name,'abc_');)語法SELECTcolumnsFROMtablesWHEREcolumn1like‘%_value_%’;示例SELECT*FROMPSBW_J_JGWHEREMCLIKE'%銅官山分局%';SELECT*FROMPSBW_J_JGWHEREMCLIKE'銅陵縣%';SELECT*FROMPSBW_J_JGWHEREMCLIKE'銅%隊';SELECT*FROMPSBW_J_JGWHEREMCLIKE'%銅官山分局__科%';SELECT*FROMPSBW_J_JGWHEREMCNOTLIKE'%銅官山分局%';DML基礎—LIKE19用途EXISTS判斷子查詢是否有數據返回,有則為TURE,否則為FALSE,EXISTS也可用于INSERT、UPDATE、DELETE;語法SELECTcolumnsFROMtablesWHEREEXISTS
(subquery);示例SELECT*FROMPSBW_J_YHWHEREEXISTS(SELECT*FROMPSBW_J_SQYHWHEREYHDM=DM);SELECT*FROMPSBW_J_YHWHERENOTEXISTS(SELECT*FROMPSBW_J_SQYHWHEREYHDM=DM);DML基礎—EXISTS20用途GROUPBY用于將結果集按指定列分組,并進行聚合;語法SELECTcolumn1,column2,...column_n,aggregate_function(expression)FROMtablesWHEREpredicates
GROUPBYcolumn1,column2,...column_n;aggregate_function是匯聚函數,通常為SUM,COUNT,MIN,MAX示例SELECTSJJGDM,COUNT(1)FROMPSBW_J_JGGROUPBYSJJGDMSELECTJGDM,COUNT(1)FROMPSBW_J_SQGROUPBYJGDMDML基礎—GROUPBY21用途HAVING從句與GROUPBY從句一起使用,用于聚合條件的判斷,如COUNT(*)>1,因聚合條件不能在WHERE指明;語法SELECTcolumn1,column2,...column_n,aggregate_function(expression)FROMtablesWHEREpredicatesGROUPBYcolumn1,column2,...column_n;HAVINGaggregate_condition1...condition_n;aggregate_function是匯聚函數,通常為SUM,COUNT,MIN,MAX,AVG示例selectCOUNT(XM),XMfrompsbw_j_yhtGROUPBYXMHAVINGCOUNT(XM)>1;DML基礎—HAVING從句22用途JOIN將多表數據關聯起來,JOIN是關系型數據庫的魅力所在語法SELECTcolumnsFROMtable1,table2,[table3][WHEREpredicates];只要把幾個表放于FROM子句后,這些表就會自動關聯起來分類CROSS-JOIN:不在WHERE從句指定任何關聯條件,返回的記錄數為各個表記錄數的笛卡爾乘積。INNERJOIN:在WHERE從句指定表之間關聯條件,返回符合關聯條件的指定的各個表記錄數及其各列值;OUTERJOIN:在WHERE從句指定表之間關聯條件,返回符合關聯條件的指定的各個表記錄數及各列值,不符合關聯條件的“外連表”列返回空;DML基礎—JOIN23示例SELECTY.XM,J.MCFROMPSBW_J_YHY,PSBW_J_JGJORDERBYY.DM;--CROSSJOINSELECTY.XM,S.SQIDFROMPSBW_J_YHY,PSBW_J_SQYHSWHEREY.DM=S.YHDM;--INNERJOINSELECTY.XM,S.SQIDFROMPSBW_J_YHY,PSBW_J_SQYHSWHEREY.DM=S.YHDM(+);--OUTERJOINLEFTSELECTY.XM,S.SQIDFROMPSBW_J_YHY,PSBW_J_SQYHSWHEREY.DM(+)=S.YHDM;--OUTERJOINRIGHTSELECTY.XM,S.SQIDFROMPSBW_J_YHYLEFTJOINPSBW_J_SQYHSONY.DM=S.YHDM;--LEFTJOINSELECTY.XM,S.SQIDFROMPSBW_J_YHYRIGHTJOINPSBW_J_SQYHSONY.DM=S.YHDM;--RIGHTJOINSELECTY.XM,S.SQIDFROMPSBW_J_YHYFULLJOINPSBW_J_SQYHSONY.DM=S.YHDM;--RIGHTJOINSELECTY.XM,S.SQID,Q.MCFROMPSBW_J_YHY,PSBW_J_SQYHS,PSBW_J_SQQWHEREY.DM=S.YHDMANDS.SQID=Q.SQID;SELECTY.XM,S.SQID,Q.MCFROMPSBW_J_YHY,PSBW_J_SQYHS,PSBW_J_SQQWHEREY.DM=S.YHDM(+)ANDS.SQID=Q.SQID(+);+總是放在非主表一方,并且要有where子句,不能有outerjoin關鍵字,建議不使用。DML基礎—JOIN24用途將多個SELECT語句的結果集加起來,去掉重復的數據(集合并運算),限制:參與UNION的每個SELECT語句的相應列必須是相同數據類型語法selectfield1,field2,.field_nfromtablesUNIONselectfield1,field2,.field_nfromtables;示例SELECT*FROMPSBW_J_YHWHEREXM=‘王輝’
UNIONSELECT*FROMPSBW_J_YHWHEREXM='王輝';DML基礎—UNION25用途將多個SELECT語句的結果集加起來,不去掉重復的數據限制:參與UNIONALL的每個SELECT語句的相應列必須是相同數據類型語法selectfield1,field2,.field_nfromtablesUNIONALLselectfield1,field2,.field_nfromtables;示例SELECT*FROMPSBW_J_YHWHEREXM='李群‘UNIONALLSELECT*FROMPSBW_J_YHWHEREXM=‘王輝’;intersectminusDML基礎—UNIONALL26概念在一個主SELECT、INSERT、UPDATE、DELETE語句中,嵌套的、用括號括起來的SELECT語句,稱為子查詢分類相關子查詢:子查詢中引用外部表非相關子查詢:子查詢中不引用外部表示例SELECTMCFROMPSBW_J_SQWHEREJGDMIN(SELECTDMFROMPSBW_J_JGWHERESJJGDM='340702000000');--銅關山分局轄區內的社區SELECTMCSQMC,(SELECTMCFROMPSBW_J_JGWHEREDM=JGDM)JGMC
FROMPSBW_J_SQ;SELECT*FROM(SELECTMCFROMPSBW_J_JG);DML基礎—子查詢27INSERT語句基本INSERT語句INSERT與SELECTUPDATE語句基本UPDATE語句DELETE語句基本DELETE語句DML基礎28用途將數據插入到指定表中語法INSERTINTOtable(column-1,column-2,...column-n)VALUES(value-1,value-2,...value-n);示例insertintopsbw_d_dm(DM,MC,BS,LXBM)values('00','測試','y','05');DML基礎—基本INSERT29用途將數據插入到指定表中語法INSERTINTOtable(column-1,column-2,...column-n)SELECTColumn-1,column-2...column-nFROMTables[WhEREpredicates];示例INSERTINTOPSBW_D_DM1(DM,MC,BS,LXBM)SELECTDM,MC,BS,LXBMFROMPSBW_D_DMWHERELXBM='05';DML基礎—INSERT/SELECT30用途UPDATE用于更新指定表符合條件的數據;語法UPDATEtableSETcolumn1=value1,column2=value2…WHEREpredicates;示例UPDATEPSBW_D_DM1SETMC='測試',BS='y'WHERELXBM='05';DML基礎—UPDATE基本31用途DELETE用于將數據從指定表刪除;語法DELETEFROMtables[WHEREpredicates];示例DELETEFROMPSBW_D_DM1WHERELXBM='05';DML基礎—基本DELETE32目錄1SQL介紹2DML基礎3DDL基礎4DCL基礎5TL基礎2/4/202333語句CREATE創建數據庫對象DROP刪除數據庫對象TRUNCATE刪除指定表全部數據,不可回滾ALTER修改數據庫對象COMMENT給表、字段添加備注RENAME重命名數據庫對象分類表相關視圖相關DDL基礎34用途在數據庫中建立表語法createtableTable_NAME(Column_1CHAR(10)notnull,Column_2NUMBER,constraintPK_Table_NAMEprimarykey("Column_1"));示例createtablePSBW_D_DM1(DMNVARCHAR2(6)notnull,MCNVARCHAR2(64)notnull,BSNVARCHAR2(1)notnull,LXBMNVARCHAR2(2)notnull,primarykey(DM))DDL基礎—建表語句35用途在數據庫中建立表,并將相應查詢返回的數據插入至新建表中。但查詢相關表的索引、主鍵等不會復制到新建表中語法CREATEtabletable_nameasselectquery示例CREATETABLEPSBW_D_DM1ASSELECTDM,MC,BS,LXBMFROMPSBW_D_DMWHERELXBM='05';創建臨時表:createglobaltemporarytabletttas...oncommitdeleterows;DDL基礎—查詢創建表36用途在數據庫中對已有表修改語法ALTERTABLETABLE_NAMERENAMETONEW_TABLE_NAME;ALTERTABLETABLE_NAMEADDCOLUMNCOLUMN-DEFINITION;ALTERTABLETABLE_NAMEMODIFYCOLUMN_NANECOLUMN_TYPE;ALTERTABLETABLE_NAMEDROPCOLUMNCOLUMN_NANE;示例ALTERTABLEPSBW_D_DM1RENAMETOPSBW_D_DM2;ALTERTABLEPSBW_D_DM2RENAMETOPSBW_D_DM1;ALTERTABLEPSBW_D_DM1ADDZTCHAR(1);ALTERTABLEPSBW_D_DM1MODIFYZTCHAR(10);ALTERTABLEPSBW_D_DM1DROPCOLUMNZT;DDL基礎—修改表37用途在數據庫中刪除指定表數據(全部數據,不可回滾)語法TRUNCATETABLEtable_name;示例TRUNCATE
TABLEPSBW_D_DM1;DDL基礎—刪除表數據38用途在數據庫中刪除指定表結構語法DROPTABLEtable_name;示例
DROPTABLEPSBW_D_DM1;DDL基礎—刪除表結構39視圖創建視圖修改視圖刪除視圖DDL基礎—視圖40用途在數據庫中創建視圖語法CREATEVIEWVIEW_NAMEASSELECTCOLUMNSFROMTABLEWHEREPREDICATES示例CREATEVIEWV_DMASSELECTDM,MC,BS,LXBMFROMPSBW_D_DMWHERELXBM='05';DDL基礎—創建視圖41用途在數據庫中修改視圖語法CREATEORREPLACEVIEWVIEW_NAMEASSELECTCOLUMNSFROMTABLEWHEREPREDICATES示例CREATEORREPLACEVIEWV_DMASSELECTDM,MC,BS,LXBMFROMPSBW_D_DMWHERELXBM='05';DDL基礎—修改視圖42用途在數據庫中刪除指定視圖語法DROPVIEWview_name;示例DROPVIEWV_DM;DDL基礎—刪除視圖43目錄1SQL介紹2DML基礎3DDL基礎4DCL基礎5TL基礎2/4/202344DCL基礎—權限清單授權語句GrantRevoke45語法grantprivilegesonobjecttousers;示例授指定表一個權限,給指定用戶grantselectonPSBW_D_DM1topsbw_hs;授指定表多個權限,給指定用戶grantselect,insert,update,delteons
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國育嬰師行業發展潛力分析及投資方向研究報告
- 2024年全球及中國外延片檢測系統行業頭部企業市場占有率及排名調研報告
- 2025-2030年中國四耳接線盒項目投資可行性研究分析報告
- 2024年全球及中國商業養老服務中心行業頭部企業市場占有率及排名調研報告
- 洪洞格賓石籠施工方案
- 2025年海上風電場工程項目可行性研究報告
- 進度分析報告示例
- 證券知識培訓課件
- 中國制傘市場深度調查及發展前景研究預測報告
- 2025年中國彈性水泥防水涂料行業市場發展前景及發展趨勢與投資戰略研究報告
- 腹腔鏡下腎盂輸尿管成形術
- 醫療器械公司咨詢培訓記錄表(全套)-
- JJG 1000-2005電動水平振動試驗臺
- 天津地理會考知識要點精華版
- 綠殼蛋雞的養殖課件
- 小學語文擴句、縮句專題
- 農村公路安全生命防護工程施工方案
- (部編版)統編版小學語文教材目錄(一至六年級上冊下冊齊全)
- 抗滑樁專項的施工組織方案[專家評審]
- 常用彈簧鋼號對照表
- 小學二年級下冊勞動教案
評論
0/150
提交評論