版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赣东学院《微生物与发酵工程》2023-2024学年第一学期期末试卷
- 2022年上海审计师(初级)《审计理论与实务》考试题库(含典型题)
- 《心电图的临床应用》课件
- 三年级科学上册13风教案冀教版
- 2021年消防工程师综合能力模拟题及答案
- 《森林环境微生物》课件
- 《信息系统运作》课件
- 2021年试验检测师(含助理)-道路工程-集料试题
- 2021年度证券从业资格证券发行与承销预热阶段综合测试题(含答案)
- 国家安全线上教育课件
- 四川省泸州市2023-2024学年高二上学期期末考试语文试题
- 个人简历电子版表格下载
- 2024年新疆生产建设兵团第十三师淖毛湖经济技术开发区管委会招聘笔试冲刺题
- 市级实施高水平医院建设“登峰计划”工作实施方案
- 南京航空航天大学宣传
- 中职班主任培训课件
- 居民骨干培训课件
- 《冠脉痉挛指南》课件
- 《经济学方法论》课件
- 环境土壤学课件
- 《计算机组装与维护》课件
评论
0/150
提交评论