Oracle学习笔记(六)
八、函数
1、函数的作用
(1)方便数据的统计
(2)处理查询结果,让数据显示更清楚
2、函数分类(提供很多内置函数,也可自定义函数)
(1)数值函数 平均值,四舍五入
a、四舍五入
表达式 round(n[,m])
省略m:0 m>0:小数点后m位,m<0:小数点前m位
n表示要进行四舍五入的值
m表示保留小数点后几位或前几位
例子:运用Oracle默认表dual,取整,保留一位小数,小数点前面的1位
select round(23.4),round(23.45,1),round(23.4,-1) from dual;
b、取整函数
ceil(n)取整时最大值(上限)
floor(n)取整时最小值(下限)
事例:
select ceil(23.45),floor(23.45) from dual;
c、常用计算
abs(n)取绝对值
select abs(23.45),abs(-23),abs(0) from dual;
mod(m,n)取余数(取模),如果m和n中有一个值为null值,则结果返回null值
select mod(5,2) from dual;
select mod(5,null) from dual;
power(m,n) 表示返回m的n次幂
select power(2,3),power(null,2) from dual;
sqrt(n)求平方根
select sqrt(16) from dual;
d、三角函数
sin(n)求正弦
select sin(3.1415926/6) from dual;
asin(n)求反正弦
select asin(1) from dual;
cos(n)余弦
select cos(3.1415926/6) from dual;
acos(n)反余弦
select acos(1) from dual;
tan(n)正切
select tan(1) from dual;
atan(n)反正切
select atan(3.1415926/6) from dual;
(2)字符函数(用的最多)大小写专函,替换
a、大小写转换函数
upper(char)小写转大写
lower(char)大写转小写
initcap(char)首字符转大写
select upper('abcd'),lower('ADEd'),initcap('asd') from dual;
用途:取出值时可以转换成大写小写
b、获取子字符串函数
substr(char,[m,[,n]])
char源字符串
m 取子串的开始位置
n 截取子串的位数
select substr('abcde',2,3) from dual;
注意:
n是可以省略的,当n省略时表示从m的位置截取到字符串末尾
select substr('abcde',2) from dual;
m为0,表示从字符串的首字母开始截取
select substr('abcde',0) from dual;
m为负数,表示从字符串的尾部开始截取
select substr('abcde',-2,1) from dual;
c、获取字符串长度函数
length(char)获取长度,空格也算
select length('acd ') from dual;
d、字符串连接函数
concat(char1,char2)两个字符连接,与||操作符的作用一样
select conncat('ab','cd') from dual;
select 'ab'||'cd' from dual;
e、去除子串函数
trim(c2 from c1) 从字符串c1中去除字符c2
select trim('b' from 'abcde') from dual;
ltrim(c1[,c2])从头部开始去除一个
select ltrim('ababaaa','a') from dual;
rtrim(c1[,c2])从尾部开始去除一个
select rtrim('ababaaa','a') from dual;
trim(c1)去除首位空格
f、替换函数(可以替换多个字符)
说明:
replace(char,s_string[,r_string])
select replace('abcde','a','A') from dual;
省略r_string用空格替换
select replace('abcde','a') from dual;
替换ab替换成一个字符A
select replace('abcde','ab','A') from dual;
(3)日期函数
a、系统时间
sysdate
默认格式:DD—MON-RR
显示默认时间
select sysdate from dual;
b、日期操作
add_months(date,i)
返回在指定日期上添加的月份,i可以是任何整数,如何i是小数,则截取整数部分,如何i是负数,则相当于为原日期减去月份
select add_months(sysdate,3),add_months(sysdate,-3) from dual;
next_day(date,i)
作用:
如果char的值是'星期一',则返回date指定日期的下周一是哪天
select next_day(sysdate,'星期一') from dual;
last_day(date) 可以查看每个月的最后一天是几号
select last_day(sysdate) from dual;
months_between(date1,date2)表示两个日期之间相隔的月份
select months_between('20-5月-16','10-1月-16') from dual;
extract(date from datetime)
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
select extract(day from sysdate) from dual;
select extract(hour from timestamp '2015-10-1 17:25:13') from dual;
(4)转换函数
a、日期转换成字符的函数
格式:
to_char(date[,fmt[,params]])
参数说明:
date:将要转换的日期
fmt:转换的格式
params:日期的语言(通常可以buxie)
格式定义:
YY YYYY Year
MM month
DD day
HH24 HH12
MI SS
事例:
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
select to_char(sysdate,'YYYY-MM-DD HH12:MI:SS') from dual;
b、字符转换成日期的函数
格式:
to_date(char[,fmt[,params]])
参数解释:
params:用于指定日期的语言(通常不写)
事例:
select to_date('2017-07-22','YYYY-MM-DD') from dual;
注意:
to_date()按照系统默认格式显示日期
c、数字转换成字符的函数
格式:
to_char(number[,fmt])
说明:
9:显示数字并忽略前面的0
0:显示数字,位数不足,用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
S:加正负号(前后都可以)
事例:
select to_char(12345.678,'$99,999.999') from dual;
没有小数点用的,号,会四舍五入
select to_char(12345.678,'$99,999,999') from dual;
前面加S
select to_char(12345.678,'S99,999.999') from dual;
d、字符转换成数字的函数
格式:
to_number(char[,fmt])
说明:
fmt:是转换的格式,可以省略
事例:
select to_number('$1,000','$9999') from dual;
3、在查询中使用字符函数
(1)将小写字母装换成大写
a、在员工信息表查询出员工的生日(根据员工身份证号码得到员工生日)
create table users(
id varchar2(10),
name varchar2(11),
cardid varchar2(18),
deptno varchar2(10),
regdate date,
age number(4,0)
);
insert into users values('1','zhubajie','12345619920505','01','12-7月-2017',null);
查询:
select substr(cardid,7,8) as 员工生日 from users;
b、将部门号01全部替换成‘信息技术’
select replace(deptno,'1','信息技术') as 信息技术 from users;
(2)查询时间间隔
a、取得员工入职的年份
select extract(year from regdate) as 员工入职年份 from users;
b、查询出5月份入职的员工信息
insert into users values('3','沙僧','12345619920505','03','12-5月-2017',15);
select * from users where extract(month from regdate)=5;
(3)四舍五入
a、将员工信息表中的年龄字段与10取余数
insert into users values('2','zhubajie','12345619920505','02','12-7月-2017',15);
select mod(age,10) from users;
总结:
1、四舍五入:ROUND(n[,m])
2、取整:floor(n)
3、绝对值:ABS(n)
4、取余数:Mod(m.n)
5、平方根:Sqrt(n)
6、三角函数:sin(n)、asin(n)等
7、数值函数
8、字符函数
9、日期函数:获取当前时间sysdate add_month last_day(date) month_between() extract(date from date)
10、转换函数
11、在查询语句中使用函数
Oracle学习笔记(六)的更多相关文章
- Oracle学习笔记六 SQL常用函数
函数的分类 Oracle 提供一系列用于执行特定操作的函数 SQL 函数带有一个或多个参数并返回一个值 以下是SQL函数的分类:
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Typescript 学习笔记六:接口
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- python3.4学习笔记(六) 常用快捷键使用技巧,持续更新
python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- Oracle学习笔记——点滴汇总
Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster
随机推荐
- 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...
- 解决Mybatis没有代码提示
MyBatis xml文件中代码自动提示 工具/原料 eclipse,maven 方法/步骤 1 一.获得mybatis-3-config.dtd.mybatis-3-mapper.dtd 这 ...
- pthread信号
信号是典型的异步事件.内核在某个信号出现时有三种处理方式: 忽略信号,除了SIGKILL和SIGSTOP信号不能忽略外,其他大部分信号都可以被忽略: 捕捉信号,也就是在信号发生时调用一个用户函数,注意 ...
- 使用纯生js实现图片轮换
效果图预览. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- CSS: body{font-size: 62.5%;}设置原因
参考博客:http://www.cnblogs.com/daxiong/articles/2772276.html 在网页设计中我们经常看见body{font-size: 62.5%;}这样的设置,为 ...
- Hive任务优化--控制hive任务中的map数和reduce数
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务.主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文 ...
- py基础4--迭代器、装饰器、软件开发规范
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1. 列表生成式,迭代器&生成器 列表生成式 我现在有个需求, ...
- py基础3--函数,递归,内置函数
本节内容 函数基本语法及特性 参数与局部变量 返回值 嵌套函数 递归 匿名函数 函数式编程介绍 高阶函数 内置函数 1. 函数基本语法及特性 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况 ...
- 第九章 自定义mixer adapter
1 install/kubernetes/helm/istio/templates/crds.yaml 序号 名称 用途 分类 归属 virtualservices.networking.istio. ...
- pythonNET day05
孤儿进程 父进程先于子进程退出,此时子进程就会成为孤儿进程. 孤儿进程会被系统指定的进程收养,即系统进程会成为该孤儿进程新的父进程.孤儿进程退出时该父进程会处理退出状态 僵尸进程 子进程先于父进程退出 ...