oracle学习笔记(三)oracle函数

时间:2022-12-25 22:55:14
 --oracle 函数
--lower(char):将字符串转换为小写格式
--upper(char):将字符串转换为大写格式
--length(char):返回字符串的长度
--substr(char,m,n):取字符串的子串
--用户名小写
select lower(ename),sal from emp;
--用户名大写
select upper(ename),sal from emp;
--显示正好为五个字符用户名
select * from emp where length(ename)=5;
--显示所有员工姓名的前三个字符 取的是从第1个字符开始,往数后面3个字符
select substr(ename,1,3)from emp;
--以手字母大写的方式显示所有的员工姓名,
select (upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1))) names from emp;
--以首字母小写,剩下的全部小写
select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;
--replace(char1,search_string,replace_string) 字符串替换
--把'A'换成'我是大A'
select replace(ename,'A','我是大A') from emp;
--insert(char1,char2,[,n[,m]]):找字符串的位子 --数学函数
--round(n,[m]):该函数用于执行四舍五入,如果省掉m,则四舍五入到整数,如果m是正数,则四舍五入到小数点的m位后,如果m是负数则四舍五入到小数点的m位前
--trunc(n,[m]):该函数用去截取数字,如果省掉m,就截取小数部分,如果m是正数,则四舍五入到小数点的m位后,如果m是负数则四舍五入到小数点的m位前
--mod(m,n):取摸的,就是m/n的余数
--floor(n):返回小于或等n的最大整数
--ceil(n):返回大于或是等于n的最小整数
select * from emp;
select round(comm,1),comm from emp where ename='SMITH'
--在做oracle测试时,可以使用dual表。
--显示在一个月为30天的情况下,显示所有员工的日薪资,忽略余数
select ename,trunc(sal/30) from emp;
select ename,floor(sal/30) from emp;
--abs(n):返回一个数字nd 绝对值
select abs(-13) from dual;
--acos(n):返回数字的反余弦值
--asin(n):返回数字的反正弦值
--atan(n):返回数字的反正切
--exp(n):返回e的n次幂
--log(m,n):返回对数值
--power(m,n):返回m的n次幂 --日期函数
--默认情况下日期格式是dd-mon--yy 即:天天--月月-年年
--sysdate:该函数返回系统时间
select sysdate from dual;
--add_months(d,n):增加月的计算
--查询入职时间超过8个月的员工
select * from emp where sysdate>add_months(hiredate,8);
--last_day(d):返回指定日期所在月份的最后一天
--显示满了10年的员工
select * from emp where sysdate>=add_months(hiredate,120);
--对于每个员工,显示其加入公司的天数
select floor(sysdate-hiredate) "入职天数" ,ename from emp;
--找出个月倒数第三天受雇的所有员工
select * from emp where last_day(hiredate)-2=hiredate; --转换函数:用于将数据类型从一种转换为另一种
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
--显示1980年入职的员工
select * from emp where to_char(hiredate,'yyyy')=1980;
--显示12月份入职的员工
select * from emp where to_char(hiredate,'mm')=12; --sql函数
--sys_context
--1.terminal : 当前会话呵护所对应的终端的标示符
select sys_context('userenv','terminal')from dual;
--2.language: 语言
select sys_context('userenv','language')from dual;
--3.db_name:当前数据库的名称
--显示正在使用 的数据库
select sys_context('userenv','db_name')from dual;
--4.nls_date_format 当前会话客户所对应的的日期格式
select sys_context('userenv','nls_date_format')from dual;
--5.session_user:当前会话客户所对应的数据库用户名
select sys_context('userenv','session_user')from dual;
--6.current_schema:当前会话客户端对应的默认方案名
select sys_context('userenv','current_schema')from dual;
--7、host :返回数据库所在的主机名称
select sys_context('userenv','host')from dual;