泛微培训教材:SQL语句基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

SQL基础单击此处编辑母版标题样式目录泛微软件股份-协同管理解决方案泛微软件股份-新员工入职培训课件第一部分:SQL语句分类第二部分:SELECT专题第三部分:数据操纵语言DML第四部分:数据定义语言DDL泛微软件股份—LearningDay课件SQL语句分类查询语句SELECT数据操纵语言(DataManipulationLanguage,DML)语句INSERTUPDATEDELETE数据定义语言(DataDefinitionLanguage,DDL)语句CREATEALTERDROPRENAMETRUNCATE事务控制(TransactionControl,TC)语句COMMITROLLBACKSAVEPOINT数据控制语言(DataControlLanguage,DCL)语句GRANTREVOKE泛微软件股份—LearningDay课件目录泛微软件股份-协同管理解决方案泛微软件股份-新员工入职培训课件第一部分:SQL语句分类第二部分:SELECT专题第三部分:数据操纵语言DML第四部分:数据定义语言DDL泛微软件股份—LearningDay课件查询记录基本语法SELECT[ALL|DISTINCT]column|expression[,column|expression]···FROMtable|view[,table|view]···[WHEREcondition(s)][GROUPBYcolumn1[HAVINGcondition(s)_1]][ORDERBYcolumn2[ASC|DESC]]泛微软件股份—LearningDay课件SQL语句书写规范SQL语句对大小写不敏感SQL语句可以写成一行或多行关键字不能简写或分开折行子句通常放在不同的行缩进用于增强可读性泛微软件股份—LearningDay课件查询记录示例1查询所有员工的基本信息示例2查询所有员工的基本信息,结果:姓名,联系电话,邮箱select*fromhrmresourceselectlastname,mobile,emailfromhrmresource泛微软件股份—LearningDay课件查询记录示例3对查询结果记性计算:总金额=单价*数量-----算术表达式-----运算符优先级selectdanjia*shuliangfromformtable_main_2泛微软件股份—LearningDay课件算数运算符算术表达式运算符的优先级--乘法和除法比加法和减法的优先级高--相同优先级的运算符从左到右计算--圆括号用于强制优先计算,并且使语句更清晰*/+-泛微软件股份—LearningDay课件查询记录示例4对查询结果的多个字段进行拼接显示SQLserverOracleselectdeparmentname+’(‘+departmentcode+’)’fromhrmdepartmentselectdeparmentname||’(‘||departmentcode||’)’fromhrmdepartment泛微软件股份—LearningDay课件查询记录示例5给查询结果指定列明selectlastnameas‘姓名’,emailas‘邮箱’fromhrmresource泛微软件股份—LearningDay课件过滤查询结果WHERE子句中经常使用的操作符--比较操作符--SQL操作符--逻辑操作符泛微软件股份—LearningDay课件过滤查询结果比较操作符操作符说明=等于或!=不等于小于大于=大于或等于=小于或等于泛微软件股份—LearningDay课件过滤查询结果SQL操作符SQL操作符可以用来对字符串或者值列表、值范围以及空值进行模式匹配来限制所返回的行操作符说明LIKE匹配字符串中的模式IN匹配值列表BETWEEN匹配值范围ISNULL匹配空值泛微软件股份—LearningDay课件过滤查询结果逻辑操作符逻辑操作符允许使用逻辑条件来限制所查询的结果操作符说明xANDy当x和y都为true时,返回truexORy当x和y有一个为true时,返回trueNOTx若x为true,返回false;若x为false,返回true泛微软件股份—LearningDay课件过滤查询结果示例1查询2014-01-01这一天新建的流程示例2查询2014-01这个月新建的流程select*fromworkflow_requestbasewherecreatedate=‘2014-01-01’Select*fromworkflow_requestbasewherecreatedate=‘2014-01-01’andcreatedate=‘2014-01-31’或者Select*fromworkflow_requestbasewherecreatedatebetween‘2014-01-01’and‘2014-01-31’泛微软件股份—LearningDay课件过滤查询结果示例3查询系统有效用户示例4查询分部id=5的有效用户示例5查询分部id=5且登录名以dl开头的有效用户select*fromhrmresourcewherestautsin(0,1,2,3)select*fromhrmresourcewherestautsin(0,1,2,3)Andsubcompanyid1=5select*fromhrmresourcewherestautsin(0,1,2,3)Andsubcompanyid1=5andloginidlike‘dl%’泛微软件股份—LearningDay课件过滤查询结果示例6查询员工姓名第二字是‘刚’的员工示例7查询哪些有效用户还未设置登录名select*fromhrmresourcewherelastnamelike‘_刚%’select*fromhrmresourcewherestautsin(0,1,2,3)Andloginidisnull泛微软件股份—LearningDay课件改变记录顺序改变查询结果显示顺序默认正序ASC(可缺省),倒序DESC单列排序多列排序select*fromworkflow_requestbaseorderbycreatedatedescselect*fromworkflow_requestbaseorderbycreatedatedesc,requestleveldesc泛微软件股份—LearningDay课件排除重复记录排除重复记录关键字:distinct查询某个员工参与过的流程selectdistinctrequestidfromworkflow_currentoperatorwhereuserid=员工idorderbyrequestid泛微软件股份—LearningDay课件连接查询普通连接–内连接(用于返回满足连接条件的记录)•相等连接•不等连接•自连接–外连接(内连接的扩展,不仅会返回满足连接条件的记录,而且会返回不满足连接条件的记录)•左连接(LEFT[OUTER]JOIN)•右连接(RIGHT[OUTER]JOIN)•全连接(FULL[OUTER]JOIN)•(+)连接其他类型连接–连接运算符(用于连接多个SELECT语句的结果)•UNION•UNIONALL•INTERSECT•MINUS泛微软件股份—LearningDay课件连接查询内连接内连接用于返回满足连接条件的所有记录。默认情况下,在执行连接查询时如果没有指定任何连接操作符,那么这些连接查询都属于内连接。另外,可以通过FROM子句中指定INNERJOIN选项,也可以指定内连接。泛微软件股份—LearningDay课件连接查询内连接-相等连接使用相等比较符(=)指定连接条件的连接查询例:显示部门名称为‘客服部’的员工发起的流程,显示流程标题,创建日期SELECTrequestname,createdateFROMworkflow_requestbasea,hrmdepartmentb,hrmresroucecWHEREa.create=c.idandb.id=c.departmentidANDb.DepartmentNameLIKE‘%客服部%’;泛微软件股份—LearningDay课件连接查询内连接-不等连接在连接条件中使用除相等比较符外的其他比较符的连接查询,主要用于在不同表之间显示特定范围的信息。示例:显示部门名称不是‘客服部’的员工发起的流程,显示流程标题,创建日期SELECTrequestname,createdatefromworkflow_requestbasea,(selecth.IDfromHrmResourceh,HrmDepartmentdwhereh.departmentid=d.idandd.departmentnamelike‘%客服部%')cwherea.creater!=c.id泛微软件股份—LearningDay课件连接查询内连接-自连接指在同一张表之间的连接查询,主要用在自参照表上显示上下级关系或者层次关系例:找到“某某“的上级领导是谁SELECTb.lastnameFROMhrmresourcea,hrmresourcebWHEREa.managerid=b.idANDa.lastname=‘某某’;泛微软件股份—LearningDay课件连接查询外连接外连接是内连接的扩展,它不仅会返回满足连接条件的所有记录,而且还会返回不满足连接条件的记录。类型–左连接–右连接–全连接实现语法–{LEFT|RIGHT|ALL}[OUTER]JOIN–(+)泛微软件股份—LearningDay课件连接查询示例:查询所有员工发起流程的总数,从大到小排序selecta.lastname,casewhennumISnullthen'0'whennumisnotnullthennumendfromHrmResourcealeftouterjoin(selectcreater,COUNT(*)asnumfromworkflow_requestbasegroupbycreater)bona.id=b.createrorderbynumdesc泛微软件股份—LearningDay课件介绍两个函数Casewhen示例:显示员工姓名,性别NVL(string1,replace_with)。Oracle特有selectlastname,casewhensex='0'then'男'whensex='1'then'女'endfromHrmResource泛微软件股份—LearningDay课件分组查询在实际应用中,经常需要把数据划分成几个组,最终统计每个组的数据结果。比如说统计不同部门的员工总数,按工作性质统计员工的平均工资等。在关系数据库中,数据分组是通过使用GROUPBY子句,HAVING子句以及分组函数共同实现的。其中,GROUPBY用于指定分组列,HAVING用于限制分组结果,分组函数用于得到统计结果泛微软件股份—LearningDay课件分组查询GROUPBY和HAVINGSELECT[ALL|DISTINCT]column|expression[,column|expression]···FROMtable|view[,table|view]···[WHEREcondition(s)][GROUPBYcolumn1[HAVINGcondition(s)_1]][ORDERBYcolumn2[ASC|DESC]]泛微软件股份—LearningDay课件分组查询练习:查询某个时间段员工的登录次数,从大到小排序selectrelatedid,(selectlastnamefromhrmresourcewhereid=relatedid)aslastname,COUNT(*)asnumfromSysMaintenanceLog

1 / 60
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功