您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > OracleSQL基础培训
1OracleSQL基础培训李建国2013.03.162目录课程介绍DML基础SQL介绍DCL基础DDL基础TL基础3课程介绍•教程概述•本教程假设读者已了解关系型数据库基本原理,明白表、视图、主键、索引、外键、约束、关联等基本概念•本教程定位是OracleSQL简明、实用教程,偏向于SQL开发,若进一步学习Oracle数据库设计,请参阅其他教程或书籍文档•课程目标是完成课程后可进行项目中大部分OracleSQL开发•适用对象•学习过标准SQL,未使用过Oracle数据库的读者•适用过SQLServer或其他数据库,未使用过Oracle数据库的读者4目录课程介绍DML基础SQL介绍DCL基础DDL基础TL基础5SQL介绍•概述•SQL是StructuredQueryLanguage简写•SQL用于组织、访问和处理数据库中的数据标准的计算机语言•SQL具有第四代语言的特征,程序关注要告诉DBMS要得做什么操作,及其相应条件,至于如何得到数据,如何使用索引,如何关联多表,由DBMS完成•分类•DataDefinitionLanguage(DDL数据定义语言)•DataManipulationLanguage(DML数据操作语言)•DataControlLanguage(DCL数据控制语言)•TransactionLanguage(TL数据事务语言)6目录课程介绍DML基础SQL介绍DCL基础DDL基础TL基础7DML基础•算术运算符•关系运算符•逻辑运算符•SELECT语句:查询数据•集合运算符:复合查询•SUBQUERY子查询•LEVEL、PRIOR与CONNECTBY…STARTWITH•ROWNUM与分页查询•INSERT语句:插入数据•UDATE语句:更新数据•DELETE语句:删除数据•SELECT与INSERT、UPDATE、DELETE8DML基础•算术运算符号•+加1+1•-减2-1•*乘2*3•/除4/2•||字符连接‘Beijing’||‘2008’9DML基础•关系运算符号•=等于,1=1•不等于,21•大于,21•小于,12•=大于等于,2=1•=小于等于,1=2•ISNULL为空,没有值,不是空字符串•ISNOTNULL不为空,有值•BETWEENAND检索两值之间的内容,2BETWEEN1AND3•IN检索匹配列表中的值•LIKE检索匹配字符样式的数据10DML基础•逻辑运算符号•AND两个为真则结果为真•OR一个为真即为真•NOT取相反的逻辑值11DML基础•SELECT语句•完整SELECT语句•基本SELECT语句•ORDERBY从句•DISTINCT从句•WHERE从句•AND条件•OR条件•AND、OR复合条件•IN与NOTIN•BETWEEN与NOTBETWEEN•LIKE与NOTLIKE•EXISITS与NOTEXISITS•GROUPBY从句•HAVING从句•JOINS关联12DML基础-SELECT语句-完整SELECT语句SELECT[ALL|DISTINCT[ON(expression[,...])]]*|expression[ASoutput_name][,...][INTO[TEMPORARY|TEMP][TABLE]new_table]FROMfrom_item[,...][WHEREcondition][GROUPBYexpression[,...]][HAVINGcondition[,...]][{UNION|INTERSECT|EXCEPT[ALL]}select][ORDERBYexpression[ASC|DESC|USINGoperator][,...]][FORUPDATE[OFclass_name[,...]]][LIMIT{count|ALL}[{OFFSET|,}start]]13DML基础-SELECT语句-基本SELECT语句•用途•SELECT语句用于查询数据库表或视图的数据•通常在表名或字段后加上空格as别名,其中as可省略,用别名引用表,可节省长度;•语法•SELECTcolumnsFROMtables[WHEREpredicates];•示例•查询所有供应商,返回所有列数据项SELECTsp.*FROMsupplierssp;•查询所有供应商,返回指定列数据项SELECTsp.supplier_name,sp.cityassupplier_cityFROMsupplierssp;14DML基础-SELECT语句-ORDERBY从句•用途•ORDERBY从句用于对SELECT语句返回的数据进行排序,ASC是升序,DESC是降序,不明写时默认是ASC,ORDERBY不能用于INSERT、UPDATE、DELETE语句中;•语法•SELECTcolumnsFROMtables[WHEREpredicates]ORDERBYcolumnASC/DESC;•示例•SELECTcityFROMsuppliersORDERBYcitydesc;•SELECTcityFROMsuppliersORDERBY1desc;•SELECTcity,stateFROMsuppliersORDERBYcitydesc,stateasc;15DML基础-SELECT语句-DISTINCT从句•用途•DISTINCT从句用于过滤重复数据;•语法•SELECTDISTINCTcolumnsFROMtables[WHEREpredicates];•示例•查询所有供应商所在城市,城市名不重复SELECTDISTINCTcityFROMsuppliers;•查询所有供应商所在城市、州一组不重复SELECTDISTINCTcity,stateFROMsuppliers;16DML基础-SELECT语句-WHERE从句•用途•WHERE从句用于指定操作条件,还可以用于INSERT、UPDATE、DELETE语句中;•语法•SELECTcolumnsFROMtablesWHEREpredicates;•示例•SELECTcityFROMsuppliersWHEREsupplier_name='IBM';17DML基础-SELECT语句-AND条件•用途•AND条件用于指定2个或者以上操作条件同时满足,与WHERE从句一起使用;•语法•SELECTcolumnsFROMtablesWHEREcolumn1=‘value1‘ANDcolumn2='value2‘[ANDcolumn3=‘value3’];•示例•SELECT*FROMsuppliersWHEREcity=‘NewYork‘ANDtype=‘PCManufacturer’;18DML基础-SELECT语句-OR条件•用途•OR条件用于指定2个或者以上操作条件只要一个满足,与WHERE从句一起使用•语法•SELECTcolumnsFROMtablesWHEREcolumn1=‘value1‘ORcolumn2=‘value2’[ORcolumn3=‘value3’];•示例•SELECT*FROMsuppliersWHEREcity=‘NewYork’ORcity=‘Newark’;19DML基础-SELECT语句-OR/AND条件复合•用途•OR条件与AND条件可同时与WHERE从句一起使用,用于指定复杂条件,通常需用括号指明关系;•语法•SELECTcolumnsFROMtablesWHEREcolumn1=‘value1‘OR/ANDcolumn2=‘value2’[OR/ANDcolumn3=‘value3’];•示例•SELECT*FROMsuppliersWHERE(city=‘Chicago’ANDname=‘IBM’)OR(city=‘Seattle’);20DML基础-SELECT语句-IN与NOTIN•用途•IN用于多个OR条件,NOTIN为IN的相反;•语法•SELECTcolumnsFROMtablesWHEREcolumn1in(value1,value2,....value_n);•示例•SELECT*FROMsuppliersWHEREsupplier_nameIN('IBM','HewlettPackard','Microsoft');与以下SQL返回相同数据:SELECT*FROMsuppliersWHEREsupplier_name='IBM'ORsupplier_name='HewlettPackard'ORsupplier_name='Microsoft';•SELECT*FROMsuppliersWHEREsupplier_nameNOTIN('IBM','HewlettPackard','Microsoft');21DML基础-SELECT语句-BETWEEN与NOTBETWEEN•用途•BETWEEN用于查询一个范围的数据;•语法•SELECTcolumnsFROMtablesWHEREcolumn1betweenvalue1andvalue2;•示例•SELECT*FROMsuppliersWHEREsupplier_idbetween10000AND10002;•SELECT*FROMordersWHEREorder_datebetweento_date('2003-01-01','yyyy-mm-dd')ANDto_date('2003-12-31','yyyy-mm-dd');•SELECT*FROMsuppliersWHEREsupplier_idNOTbetween10001AND10002;22DML基础-SELECT语句-LIKE与NOTLIKE•用途•LIKE用于模糊匹配查询,结合%与_一起使用,其中%匹配大于等于1个字符,_只匹配一个字符•使用!%‘escape’!或者!_‘escape’!分别转义%和_;•语法•SELECTcolumnsFROMtablesWHEREcolumn1like‘%_value_%’;•示例•查询名称以Hew开头(Hew前面没有其他任何字符,Hew后面是任意字符或没有字符)的供应商Select*FromsuppliersWheresupplier_nameLike'Hew%';•查询名称包含cro的供应商(名称中cro前后可能有任意字符,也可能没有字符)Select*FromsuppliersWheresupplier_nameLike'%cro%';23DML基础-SELECT语句-LIKE与NOTLIKE•示例•查询名称不是以Hew开头的供应商Select*FromsuppliersWheresupplier_nameNOTLike'Hew%';•查询名称为Smith或Smath或其他类似名称的供应商(名称中m与t之间有一个字符)Select*FromsuppliersWheresupplier_nameLike'%Sm_th%';•查询名称是以H开头,%结尾,H与%之间有任意字符的供应商,如Hello%Select*FromsuppliersWheresupplier_nameLike'H%!%'escape'!';•查询名称是以H开头,_结尾,H与_之间有任意字符的供应商,如Hello_Select*FromsuppliersWheresupplier_nameLike'H%!_'escape'!';24DML基础-SELECT语句-EXISTS与NOTEXISTS•用途•EXISTS判断子查询是否有数据返回,有则为TURE,否则为FALSE,EXISTS也可用于INSERT、UPDATE、DELETE;•语法•SELECTcolumnsFROMtablesWHEREEXISTS(subquery);•示例•SELECT*FROMsuppliersspWHEREEXISTS(select*fromordersodwhereod.supplier_i
本文标题:OracleSQL基础培训
链接地址:https://www.777doc.com/doc-10333 .html