我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈
Oracle函数
分类 | 函数 | 说明 | 参数 |
分组函数 | Max | 最大值 | Max(字段名) |
Min | 最小值 | Min(字段名) | |
Sum | 求和 | Sum(字段名) | |
Count | 计数 | Count(字段名) | |
Avg | 平均值 | Avg(字段名) | |
字符函数 | Lower | 将字符串转换为小写 | Lower(char) |
Upper | 将字符串转化为大写 | Upper(char) | |
Length | 返回字符串的长度 | Length(char) | |
Substr | 取字符串的子串 | Substr(char,pos,[len]) | |
Replace | 用新字符串替换部分字符串 | Replace(char,old_char,new_char) | |
Instr | 获取子串在字符串的位置 | Instr(char,findchar[,n[,m]]) | |
Lpad | 字符串左侧补齐到指定长度 | Lpad(char,m,'str') | |
Rpad | 字符串右侧补齐到指定长度 | Rpad(char,m,'str') | |
数学函数 | Round | 四舍五入 | Round(n, [m]) |
Trunc | 截取数字 | Trunc(n, [m]) | |
Mod | 取模 | Mod(m, n) | |
Floor | 返回小于或等于n的最大整数 | Floor(n) | |
Ceil | 返回大于或等于n的最小整数 | Ceil(n) | |
Abs | 返回绝对值 | Abs(n) | |
其他 | Cos、Cosh、exp、ln、log、sin、sinh、sqrt、tan、tanh、acos、asin、atan、power | ||
日期函数 | Sysdate | 返回系统日期 | Sysdate |
Add_months | 返回指定日期d增加指定月数n后的日期 | Add_months(d,n) | |
Last_day | 返回指定日期d所在月份的最后一天 | Last_day(d) | |
转换函数 | to_char | 转换为字符串 | to_char() |
to_date | 将字符串转换为日期 | to_date(char,'yyyy-mm-dd') | |
系统函数 | sys_context | 获取系统信息 | sys_context('userevn','db_name') |
判断函数 | decode | 如果expression=value,则输出result1,否则输出result2 | decode(expression,value,result1,result2) |
如果expression=value1,则输出result1,expression=value2,输出reslut2,expression=value3,输出result3 | decode(expression,value1,result1,value2,result2,value3,result3......,default) | ||
sign() | 参数与0的比较 大于0则返回1,等于0则返回0,小于0则返回-1 |
sign(1-2) |
示例表数据
字符函数
-
Replace函数
-
语法:Replace(char,old_char,new_char)
-
用新字符串(new_char)串替换指定字符串(old_char)
select ename, replace(ename,'A','新') as "new_name" from emp
-
Instr函数
-
语法:Instr(char,findchar[,n[,m]]
-
从字符串(char)中指定位置(n)开始查找指定字符串(findchar)第m次出现的位置
select ename, instr(ename,'A',1, 2) as "new_name" from emp
数学函数
-
Round函数
-
语法:Round(n, [m])
-
用于执行四舍五入
- 如果省略m,则四舍五入到整数
- 如果m是正数,则四舍五入掉小数点m位后的数字
- 如果m是负数,则四舍五入掉小数点前m位数字
select sal,round(sal),round(sal,2),round(sal,-2) from emp where empno in ('8002','8003');
-
Trunc函数
-
语法:Trunc(n, [m])
-
截取数字文章来源:https://www.toymoban.com/news/detail-810122.html
- 如果省略m,则截取整数部分,去掉小数
- 如果m是正数,则截取掉小数点m位后的数字
- 如果m是负数,则截取掉小数点前m位的数字
select sal,trunc(sal),trunc(sal,2),trunc(sal,-2) from emp where empno in ('8002','8003');
-
其他数学函数文章来源地址https://www.toymoban.com/news/detail-810122.html
- acos(n):返回数字的反余旋值
- asin(n):返回数字的反正旋值
- atan(n):返回数字的反正切
- con(n)
- exp(n):返回e的n次幂
- log(m,n):返回对数值
- power(m,n):返回m的n次幂
转换函数
- 转换函数用于将一种数据类型从一种转为另一种。在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型
create table t1(id int); insert into t1 values('10') ——> oracle会自动将'10'转换成10 create table t2(id varchar2(10)); insert into t2 values(10) ——> oracle会自动将10转换为'10'
- 但是隐含转换并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换
- to_char
- dual:oracle自带的临时表,用于数据测试
- yy:两位数的年份
- yyyy:四位数的年份
- mm:两位数的月份
- dd:两位数的天
select to_char(sysdate,'yyyy-mm-dd') as "日期" from dual; 返回结果:20-12-11 select to_char(sysdate,'yyyy-mm-dd') from dual 返回结果:2020-12-11
- hh24:24小时制显示小时
- hh12:12小时制显示小时
- mi:显示分钟
- ss:显示秒
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as "日期" from dual; 返回结果:2020-12-11 22:29:42 select to_char(sysdate,'yyyy-mm-dd hh12:mi:ss') as "日期" from dual; 返回结果:2020-12-11 10:30:17
- 9:显示数字,并忽略前面0
- 0:显示数字,如果位数不足,则用0补齐
- .:在指定位置显示小数点
- ,:在指定位置显示逗号
- $:在数字前加美元符
- L:在数字前加本地货币符号(根据oracle安装语言)
- C:在数字前加国际货币符号
- G:在指定位置显示组分隔符
- D:在指定位置显示小数点符号
select to_char('800','L99999.99'),to_char('800','$99999.99'),to_char('800','C99999.99') from dual; 返回结果:¥800.00 | $800.00 | CNY800.00 select to_char('800','L00000.00') from dual; 返回结果:¥00800.00 select to_char('80000','L99,999.99') from dual; 返回结果:¥80,000.00
- 例:查询1980年入职的员工信息
select * from emp where to_char(HIREDATE,'yyyy')=1980
- 例:查询所有12月份入职的员工信息
select * from emp where to_char(hiredate,'mm')=12
-
TO_DATE函数
- 用于将字符串转换成date类型的数据,按特定格式插入日期值
insert into emp values('9999','小红','MANAGER',7782,'11-11月-2020',1000,100,10); insert into emp values('9998','小明','MANAGER',7782,to_date('2020-12-12','YYYY-MM-DD'),2000,200,20);
- 用于将字符串转换成date类型的数据,按特定格式插入日期值
系统函数
- sys_context
- 系统函数,通过该函数可以查询一些重要信息
- terminal:当前会话客户所对应的终端的标识符
- lanuage:语言
- db_name:当前数据库名称
- nls_date_format:当前会话客户所对应的日期格式
- session_user:当前会话客户锁对应的数据库用户名
- current_schema:当前会话客户所对应的默认方案名
- host:返回数据库所在的主机的名称
- 例:查询当前在使用的数据库名称
select sys_context('userenv','db_name') from dual;
- 例:查询当前用户名
select sys_context('userenv','session_user') from dual;
- 例:查询当前数据库所在主机名称
select sys_context('userenv','host') from dual;
日期函数
-
sysdate函数
- 获取系统日期函数
select sysdate from dual; 返回结果:2020/12/21
- 获取系统日期函数
-
add_months
- 返回指定日期增加指定个月份之后的日期
select sysdate,add_months(sysdate,3) from dual; 返回结果: SYSDATE ADD_MONTHS(SYSDATE,3) ----------- --------------------- 2020/12/21 2021/3/21 22:17:48
- 例:查询入职日期小于8个月的员工信息
select * from emp where sysdate < add_months(HIREDATE,8)
- 例:查询入职满10年的员工信息
select * from emp where sysdate >= add_months(hiredate,120)
- 例:统计所有员工的入职天数
select ename "姓名", trunc(sysdate-hiredate) as "入职天数" from emp
- 返回指定日期增加指定个月份之后的日期
-
last_day
- 获取指定日期所在当月最后一天日期
- 例:找出各月份倒数第三天入职的所有员工
select * from emp where hiredate=(last_day(hiredate)-2)
-
decode
- 判断是否为真,返回指定值
decode(expression,value,result1,result2) // 如果expression=value,则输出result1,否则输出result2 decode(expression,value1,result1,value2,result2,value3,result3......,default) // 如果expression=value1,则输出result1,expression=value2,输出reslut2,expression=value3,输出result3,若expression不等于所列出的所有value,则输出为default
- 判断是否为真,返回指定值
-
sign()
- 判断参数的值大于0则返回1,等于0则返回0,小于0则返回-1
- 将成绩表中分数大于90分的分为优秀,80-90分为良好,70-80分为中等,60-70分为及格,60分以下为不及格
decode(sign(成绩-90),1,"优秀",0,"良好",-1,"及格")
小课堂
- oracle在创建用户的同时会自动创建一个方案,方案名与用户名相同。方案里有很多数据对象(表、视图、触发器、存储过程等)
- oracle是方案的方式来组织数据对象
到了这里,关于007.Oracle函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!