您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 泛微培训教材: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
本文标题:泛微培训教材:SQL语句基础
链接地址:https://www.777doc.com/doc-981149 .html