oracle学习笔记(三)oracle函数

时间:2022-11-16 08:18:09
 1 --oracle 函数
2 --lower(char):将字符串转换为小写格式
3 --upper(char):将字符串转换为大写格式
4 --length(char):返回字符串的长度
5 --substr(char,m,n):取字符串的子串
6 --用户名小写
7 select lower(ename),sal from emp;
8 --用户名大写
9 select upper(ename),sal from emp;
10 --显示正好为五个字符用户名
11 select * from emp where length(ename)=5;
12 --显示所有员工姓名的前三个字符 取的是从第1个字符开始,往数后面3个字符
13 select substr(ename,1,3)from emp;
14 --以手字母大写的方式显示所有的员工姓名,
15 select (upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1))) names from emp;
16 --以首字母小写,剩下的全部小写
17 select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;
18 --replace(char1,search_string,replace_string) 字符串替换
19 --把'A'换成'我是大A'
20 select replace(ename,'A','我是大A') from emp;
21 --insert(char1,char2,[,n[,m]]):找字符串的位子
22
23 --数学函数
24 --round(n,[m]):该函数用于执行四舍五入,如果省掉m,则四舍五入到整数,如果m是正数,则四舍五入到小数点的m位后,如果m是负数则四舍五入到小数点的m位前
25 --trunc(n,[m]):该函数用去截取数字,如果省掉m,就截取小数部分,如果m是正数,则四舍五入到小数点的m位后,如果m是负数则四舍五入到小数点的m位前
26 --mod(m,n):取摸的,就是m/n的余数
27 --floor(n):返回小于或等n的最大整数
28 --ceil(n):返回大于或是等于n的最小整数
29 select * from emp;
30 select round(comm,1),comm from emp where ename='SMITH'
31 --在做oracle测试时,可以使用dual表。
32 --显示在一个月为30天的情况下,显示所有员工的日薪资,忽略余数
33 select ename,trunc(sal/30) from emp;
34 select ename,floor(sal/30) from emp;
35 --abs(n):返回一个数字nd 绝对值
36 select abs(-13) from dual;
37 --acos(n):返回数字的反余弦值
38 --asin(n):返回数字的反正弦值
39 --atan(n):返回数字的反正切
40 --exp(n):返回e的n次幂
41 --log(m,n):返回对数值
42 --power(m,n):返回m的n次幂
43
44 --日期函数
45 --默认情况下日期格式是dd-mon--yy 即:天天--月月-年年
46 --sysdate:该函数返回系统时间
47 select sysdate from dual;
48 --add_months(d,n):增加月的计算
49 --查询入职时间超过8个月的员工
50 select * from emp where sysdate>add_months(hiredate,8);
51 --last_day(d):返回指定日期所在月份的最后一天
52 --显示满了10年的员工
53 select * from emp where sysdate>=add_months(hiredate,120);
54 --对于每个员工,显示其加入公司的天数
55 select floor(sysdate-hiredate) "入职天数" ,ename from emp;
56 --找出个月倒数第三天受雇的所有员工
57 select * from emp where last_day(hiredate)-2=hiredate;
58
59 --转换函数:用于将数据类型从一种转换为另一种
60 select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
61 --显示1980年入职的员工
62 select * from emp where to_char(hiredate,'yyyy')=1980;
63 --显示12月份入职的员工
64 select * from emp where to_char(hiredate,'mm')=12;
65
66
67 --sql函数
68 --sys_context
69 --1.terminal : 当前会话呵护所对应的终端的标示符
70 select sys_context('userenv','terminal')from dual;
71 --2.language: 语言
72 select sys_context('userenv','language')from dual;
73 --3.db_name:当前数据库的名称
74 --显示正在使用 的数据库
75 select sys_context('userenv','db_name')from dual;
76 --4.nls_date_format 当前会话客户所对应的的日期格式
77 select sys_context('userenv','nls_date_format')from dual;
78 --5.session_user:当前会话客户所对应的数据库用户名
79 select sys_context('userenv','session_user')from dual;
80 --6.current_schema:当前会话客户端对应的默认方案名
81 select sys_context('userenv','current_schema')from dual;
82 --7、host :返回数据库所在的主机名称
83 select sys_context('userenv','host')from dual;