- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle函数与高级查询
二 Oracle的函数
2.1 什么是函数
函数:指对一堆逻辑的打包,能够支持传入的参数,根据参数得到一定的结果;
那么,在oracle中,都有什么函数,有什么类型的函数,函数有什么分类?
2.2 函数的分类
2.2.1 单行与多行
除了聚合(组)函数,其它全是单行函数
Oracle的函数咱们可以简单分成再种:多行函数与单行函数,如下图:
什么是单行函数
简单理解:对单行数据进行是操作,得到单行数据 ; 比如concat连接函数
concat 连接函数得到的效果; 使用concat 不会影响行数,以前100行,使用concat之后得到的结果也是100行。
单行函数 :在执行获得结果后。可以支持传入参数【列和表达式】,针对每一行单独做运算。最终不会影响结果的行数。
单行函数特点:
1接收参数返回一个值
2对每一行返回行起作用
3每一行返回一个结果
4可以修改数据类型
5可以使用嵌套 concat(concat(col1,col2),col2)
除了concat 这样的单行函数以外,还有其他的单行函数,比如字符处理函数;
比如有时要求用户名全部大写或者小写,或者需要得到一个人的姓,这些都需要字符函数进行处理,字符函数中,也存在分类
什么是多行函数
多行函数:简单理解对多行数据进行操作,最后返回一个数据
比如count函数:
Count 针对过滤后的结果 支持传入表的列名或者常量,对所有行的记录统一处理。最终只会得到一个结果,会影响结果行数;
多行函数 : 在执行获得结果后。可以支持传入参数【列和表达式】,针对每一行整体统计做运算。最终只会产生1行数据
咱们所说的单行与多行是指这个函数操作的数据是单行还是多行(不是说的结果)
单行、多行分别用在哪?
扩展理解与练习
比如concat 用在哪里? 可以放在select 后,把它的姓和名连接起来;
单行函数:
select 关键字之后
where 之后的条件上
(where 之后单行函数 如下)
姓名中有e或者a的员工?
把姓名组合起来查询
select * from employees
where first_name || last_name like %e%
or first_name || last_name like %a%
使用函数
Select * from employees
Where concat(first_name,last_name) like ‘%e%’
Or first_name || last_name like ‘%a%’;
多行函数:
针对Select 关键之后 ;比如count函数 统计所有行 ,放在select之后
使用多行函数 得到就一个结果,那我放在where 后面 有意义吗?
Where 是针对每一行, 而多行函数 返回结果只有一行,如果放在where 之后,执行一次,是一个结果,执行二次还是同一个结果,所以没有意义.
2.2.2 函数功能分类
可以分为:字符函数、数字函数,转换函数,日期函数,组函数,其它函数
字符(串)函数:拼接字符串,截取字符串,全变大写,全变小写,首字母大写...
数字(number)函数:四舍五入,舍掉
转换函数:字符《--》日期 字符《--》数字
日期函数:拿到年,月,日,时,分,秒
组函数:sum,count,max....
其它函数:
2.3 字符函数
字符函数分为大小写转换函数与字符处理函数
2.3.1 大小写转换函数
大小写转换函数:
Lower(列|表达式) 全部转换小写
Upper(列|表达式) 全部转换大写
Initcap(列|表达式) 首字母大写
练习案例: select Hello world from dual; 大写:select upper(Hello world) from dual; 小写:select lower(Hello world) from dual;
练习案例: 1,查询first_name为randall的员工工资; 分析:我们查询的时候不需要关心名称中的大小写问题 select * from employees where lower(first_name) =randall;
练习案例: 2,客户在输入名字的时候,可以不会在意名称的大小写,比如,Wang Xiaoer,假设现在在发送邮件,需要按照正规的格式输出姓名;请使用SQL处理 分析:我们可以插入一条小写的名字,然后使用首字母大写查询出来,格式更完整 insert into employees
(employee_id,first_name
您可能关注的文档
最近下载
- 新能源汽车整车控制系统检测与维修高职PPT完整全套教学课件.pptx VIP
- 人教版一年级数学上册《比大小》课件(共38张PPT).pptx VIP
- 血管活性药物静脉输注护理---团体标准解读.pptx VIP
- 2025年全国质量月培训讲座PPT课件.pptx VIP
- 自考《文学概论》第五章-抒情作品教学课件.ppt VIP
- 北师大版九年级数学上册全册教案教学设计.pdf VIP
- 恶心与呕吐腹泻.ppt VIP
- 2025年中国学生床上用品数据监测研究报告.docx
- 1.1 地球的自转和公转 课件-2024-2025学年中图版初中地理八年级上册.pptx VIP
- EduSoho系统功能说明书v7.2(1231).doc VIP
文档评论(0)