单表查询及函数.

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

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

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

资源描述

查询SQL培训——单表查询及函数培训要点查询语句整体结构关于SELECT子句关于ORDERBY子句关于WHERE子句•运算符•表达式关于GROUPBY子句关于HAVING子句查询语句的整体结构SELECT字段清单FROM表名【WHERE查询条件】【GTOUPBY分组表达式】【HAVING分组查询条件】【ORDERBY排序表达式】可选子句SELECT语句From子句Where子句GroupBy子句Having子句Select子句OrderBy子句查询语句的执行顺序SELECT语句关于Select子句SELECT字段清单FROM表名指定多列时,各列之间用逗号分开;指定表中所有列时,可用*实现;AS:在列名后使用此关键字来指定列的别名;Distinct:在字段清单中使用此关键字,可去除查询结果中的重复信息。SelectDistinctRiskcodeAs险种,KindcodeFromPrpcitemkind例SELECT语句selectt.uuidas编号,t.username名称fromtb_user_infot关于OrderBy子句SELECT字段清单FROM表名ORDERBY排序表达式OrderBy子句要放在所有子句的最后;排序表达式可以指定多列,各列之间用逗号分开,按列名顺序确定优先级;ASC:升序(默认);DESC:降序。SelectDistinctRiskcode,KindcodeFromPrpcitemkindOrderByRiskcodeDESC,Kindcode例SELECT语句selectt.uuidas编号,t.username名称,t.addtimefromtb_user_infotorderbyt.addtimedesc关于Where子句SELECT字段清单FROM表名WHERE查询条件ORDERBY排序表达式查询条件可以是单条件,也可以是组合条件;构成查询条件时要使用运算符。查询条件中字符串和日期要用单引号扩起来;字符串是大小写敏感的;日期值是格式敏感的,缺省的日期格式是'DD-MON-RR'SelectDistinctRiskcode,KindcodeFromPrpcitemkindWhereRiskcode=‘2701’OrderByRiskcodeDESC,Kindcode例SELECT语句selectt.lotteryid彩种,t.lotteryissue期号,fromtb_lottery_infotwheret.starttimestampto_date('2012-03-06','yyyy-mm-dd')orderbyt.lotteryidasc,t.lotteryissuedesc比较运算符运算符说明=等于大于小于=大于等于=小于等于或!=不等于!不小于!不大于列名运算符常量值Select*FromPrpcfeeWhereCurrecy1=‘CNY’列名运算符列名Select*FromPrpcfeeWhereCurrecy1=Currency例运算符selectt.unionorderid方案号fromtb_lotteryschemeinfotwheret.bonusvalue10000selectt.unionorderid方案号fromtb_lotteryschemeinfotwheret.bonusvaluet.schemevalueBETWEEN…AND…运算符在两值(包含)间进行比较筛选,例:selectt.unionorderid方案号fromtb_lotteryschemeinfotwheret.bonusvalue/100between500and50000selectt.unionorderid方案号fromtb_lotteryschemeinfotwheret.bonusvalue/100=500andt.bonusvalue/100=50000运算符IN运算符在指定的多个条件值中进行比较筛选,只要满足其中一个值即条件成立,例:selectt.lotteryid,t.descriptionfromtd_lotterytwheret.lotteryidin(214,215,216,217)selectt.lotteryid,t.descriptionfromtd_lotterytwheret.lotteryid=214ort.lotteryid=215ort.lotteryid=216ort.lotteryid=217运算符LIKE运算符查询条件部分匹配即可得查询结果,实现模糊查询;需与通配符一同使用;SQL提供的通配符有:“%”、“-”;•%:可表示0个或多个字符;•-:可表示一个字符只有CHAR、VARCHAR、TEXT类型的数据才能使用Like运算符和通配符;运算符LIKE运算符CNOCNAMECTIMESCOUNT1应用数学基础481202生物工程32803计算机软件基础32704计算机硬件基础24805模拟电路设计28906机械设计实践48687数据库设计16808设计理论28459计算机入门24150Course运算符Select*FromCourseWhereCnameLIKE‘%设计%’ISNULL运算符查询包含空值的记录;Select*FromPrplclaimWhereendcasedateISNULL例运算符selectt.uuid,t.realusername,t.usermobilefromtb_user_privateinfotwheret.cardidisnullselectt.lotterylevel2id,t.lotteryvalue/100,t.bonusvalue/100fromtb_lottery_orderdetailstwheret.lotteryvalue/1005000andt.bonusvalue/1005000逻辑运算符AND、OR、NOT表示“与”的关系,即AND连接的条件表达式均为“True”时,Where子句的查询结果才为“True”AND运算符selectt.lotterylevel2id,t.lotteryvalue/100,t.bonusvalue/100fromtb_lottery_orderdetailstwheret.lotteryvalue/1005000ort.bonusvalue/1005000表示“或”的关系,即OR连接的条件表达式中只要有一个为“True”时,Where子句的查询结果即为“True”OR运算符逻辑运算符AND、OR、NOT逻辑运算符AND、OR、NOT•用于对搜索条件的布尔值求反;•NOT运算符不能单独应用,而要与其他运算符联合使用NOTNOTBETWEEN……AND……NOTINNOTLIKEISNOTNULLselectt.uuid,t.username,t.emailfromtb_user_infotwheret.emailisnotnull运算符算术运算符运算符号说明+加-减*乘/除%求余对NUMBER型数据可以使用的算术运算符号有(+-*/)对DATE型数据可以使用的算术运算符号有(+-)算术表达式可用于Select子句、Where子句例表达式selectt.lotterylevel2id,t.uuidfromtb_lottery_orderdetailstwhere(t.bonusvalue-t.lotteryvalue)/100500andt.tickettimesysdate-10运算符的优先级1算术运算2比较运算3NOT4AND5OR括号可以改变优先级运算符selectt.lotterylevel2id,t.uuidfromtb_lottery_orderdetailstwhere(t.bonusvalue-t.lotteryvalue)/100500andt.tickettimesysdate-10例连接符(||)作用:将列或字符与其它列连结;相连接的列必须有相同或相近的数据类型;可用于Select子句、Where子句SelectPolicyno保单号,Currency||’’||Sumpremium保费FromPrpcmainWhereRiskcode=‘0101’例表达式Select‘彩民’||t.username||‘于’||t.wintime||‘日中奖’||t.bonusvalue||'元'fromtb_lottery_winnertWheret.wintime='2012-02-29‘关于GroupBy子句SELECT字段清单FROM表名WHERE查询条件GroupBY列名[,列名…]既可以按照单列分组,也可以按照多列分组;出现在SELECT子句中的字段,如果不是用在组函数中,那么必须出现在GROUPBY子句中;Selectjob,avg(sal)FromempWhereGroupByjob;例SELECT语句关于Having子句SELECT字段清单FROM表名WHERE查询条件GroupBY列名[,列名…]Having分组查询条件Having子句的作用是对分组结果进行筛选,去除不满足条件的组;包含在Having子句中的列必须是组列,即通过分组函数构成的条件;Selectjob,avg(sal)FromempWhereGroupByjobHavingavg(sal)2000;例SELECT语句Having子句与Where子句Having子句与Where子句的相似之处在于,两者都定义了筛选条件。但Having子句与Where子句不同在于,Having子句与组有关,而Where与单个行有关;SELECT语句单行函数单行函数字符函数数字函数日期函数转换函数其他函数函数字符函数函数格式参数及功能说明LOWER(字符串)把字符串全部转换为小写UPPER(字符串)把字符串全部转换为大写LTRIM(字符串)把字符串头部的空格去掉RTRIM(字符串)把字符串尾部的空格去掉LENGTH(字符串)返回指定字符串的长度函数格式举例结果LOWER(字符串)LOWER(’aBc’)abcUPPER(字符串)UPPER(’aBc’)ABCLTRIM(字符串)LTRIM(’aBc’)aBcRTRIM(字符串)RTRIM(’aBc’)aBcLENGTH(字符串)LENGTH(‘aBc’)3单行函数字符函数函数格式参数及功能说明SUBSTR(字符串,n,m)返回部分字符串,返回的子串是从字符串左边第n个字符起,m个字符函数格式举例结果SUBSTR(字符串,n,m)SUBSTR('abcde',2,3)bcd单行函数数字函数函数格式参数及功能说明ABS(数字表达式)返回表达式的绝对值ROUND(数字表达式,n)四舍五入到指定的小数位TRUNC(数字表达式,n)将数字表达式截断到指定的小数位MOD(被除数,除数)返回相除后的余数函数格式举例结果ABS(数字表达式)ABS(-190)190ROUND(数字表达式,n)ROUND(45.926,2)45.93TRUNC(数字表达式,n)TRUNC(45.926,2)45.92MOD(被除数,除数)MOD(1600,300)100单行函数日期函数函数格式参数及功能说明SYSDATE返回系统当前日期TRUNC(date,格式)按照给出的格式要求将日期截断,如:fmt=mi表示保留分,截断秒格式—YY(年),MM(月),DD(日),HH(时),MI(分)函数格式举例结果SYSDATESelectsysdateFromdual2010/5/1215:22:21TRUNC(date,格式)trunc(sysdate,’hh’)2010/5/1215:00:00单行函数转换函数TO_CHAR(表达式,‘格式’)将日期型或数值型的表达式,按指定格式转换为字符型;•在转换日期为字符串的时候,日期中的年,月,日,时,分,秒都需要按相应的

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

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

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

×
保存成功