ORACLE--知识点②--函数
Functions:
- single row functions 单行函数*
- multiple row functions 多行函数
一、单值函数 可嵌套 (nest) ;
函数名 +(列|表达式,[参数1,参2...])
- lower : 变小写
select lower(upper(last_name))from s_emp; //嵌套
- upper : 变大写
- initcap 首字母大写
- concat 连接两个字符串 (类似之前的||的作用)
select first_name||last_name
from s_emp; //连接起来select concat(first_name,last_name)
from s_emp;
- substr : 截取字符串
select last_name,substr(last_name,3) //从3号下标位置开始截取 包括3号 lisa -> safrom s_emp;//正数从前数 负数从后往前数
注:正数从前数 负数从后往前数
select last_name,substr(last_name,-3,3) //从 倒数第三个开始,截取3个长度
- length : 返回字符串长度
select length(last_name) as len
from s_emp
order by len;
- nvl : 替换列中为null的值
处理空值 如果值为空 可使用默认值代替
select nvl(commission_pct,0) //用0来代替空值
- dual 哑表 (sys) 不能存储查询 是一个虚拟表 一般用于构成select查询语法规则,oracle保证dual里面永远只有一条记录。
二、Number functions 数字函数:
1、round 四舍五入
round(参1,参2)
参1:第一个参数表示要进行【四舍五入】操作的数字
参2:表示保留到哪一位 0 -1 分别表示个位、十位
select round(45.923,2)
from dual; //45.92
round(45.923,0) //46
select round(45.923,-1) //0是个位 -1 十位 到4 5进1
from dual; //50
2、 trunc截取到某一位
trunc(arg1,arg2)
和round的用法一样,但是trunc只舍去不进位
select trunc(45.929,2)
from dual; //45.92 //舍去 不入(与round差别)
3、mod 取余
mod(arg1,arg2)
第一个参数表示要进行取余操作的数字
第二个参数表示参数1和谁取余
select mod(3,10)
from dual; //3 3/10余3
三、Oracle Date Format //日期格式
//切换环境
- alter session set nls_language='simplified chinese'; //切换中文环境
- alter session set nls_language=english;//切换英文环境
日期函数:
1、sysdate 返回日期和时间
select sysdate from dual;
select sysdate+1 from dual; //后一天 显示明天这个时间
select sysdate+1/24 from dual; //一个小时后的时间
2、months_between() 俩日期之间差多少个月 单位是月
select months_between(sysdate+30,sysdate)
from dual; // 1
3、add_months() 返回一个日期数据,
select add_months(sysdate,2) from dual;//两个月后 时期
4、next_day() 返回一个日期数据,表示一个日期后的星期几是哪一天
select next_day(sysdate,'星期五') from dual; //下个星期五是哪一天
5、last_day() 表示一个日期所在月份最后一天
select last_day(sysdate) from dual; // 9-30
6、round
select round(sysdate,'month') from dual; //01-9月-19 //四舍五入
// *15号16号分别是舍弃还是进位 ? 15号舍去
7、 trunc
select trunc(sysdate,'year') from dual;
// 01-1月 -19 全部截取按照(year)年初
【注意:
如果要使用'FRIDAY',那么需要把当前会话的语言环境修改为英文】
四、Conversion Functions 转换函数
1、to_char(date,'fmt') //将日期按照format格式转换成字符串显示出来
2、to_char(number,'fmt') //将数字按照format格式转换成字符串显示出来
3、 to_number 把字符转换成数字
4、to_date //将字符串转换成日期类型
select to_date('95/5月/25','yy/month/dd')
from dual;
日期格式:
yyyy:四位数的年份
rrrr:四位数的年份
yy:两位数的年份 //千年虫问题
rr:两位数的年份
mm:两位数的月份(数字)
D:一周的星期几
DD:一月的第几天
DDD :一年的第几天
YEAR:英文的年份
MONTH:英文全称的月份
mon:英文简写的月份
ddsp:英文的第几天(一个月的)
ddspth:英文序列数的第几天(一个月的)
DAY:全英文的星期
DY:简写的英文星期
hh:小时
mi:分钟
ss:秒
select to_char(sysdate,'hh mi ss') from dual;// 字符串
五、Multiple Tables 多表查询
一条sql语句涉及到多张表
笛卡尔积: 直接查询两张表,查询结果会产生笛卡尔积
连接查询:
1、内连接:
1>等值连接
可起别名
2>不等值连接
salgrade
losal 列 表示这季节的最低工资数
hisal 列表示这个级别的最高工资数
2、外连接
1>左外连接 left outer join 哪边数据少 哪边添 ‘+’ 虚拟一条数据来对应 //本地写法只有oracle支持
select last_name,dept_id,name
from s_emp,s_dept
where s_emp.dept_id=s_dept.id(+);
或者 俩者是等价的==
select last_name,dept_id,name
from s_emp left outer join s_dept
on s_emp.dept_id=s_dept.id;
2>右外连接 rigth outer join
3>全连接 full join
//标准写法
select last_name,dept_id,name
from s_emp left outer join s_dept //左外连接
on s_emp.dept_id=s_dept.id;
//左外连接 解决 左边的表多余的数据 可以显示出来
// outer 可以省略不写
3、自连接
六、
- on 连接的限制条件
- where : 筛选
七、ORACLE中的支持正则表达式的函数主要有下面四个:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同, 但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。
- POSIX 正则表达式由标准的元字符(metacharacters)所构成:
1、'^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。
2、'$' 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。
3、'.' 匹配除换行符之外的任何单字符。
4、'?' 匹配前面的子表达式零次或一次。
5、'+' 匹配前面的子表达式一次或多次。
6、'*' 匹配前面的子表达式零次或多次。
7、'|' 指明两项之间的一个选择。例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串。
8、'( )' 标记一个子表达式的开始和结束位置。
9、'[]' 标记一个中括号表达式。
10、'{m,n}' 一个精确地出现次数范围,m=<出现次数<=n,’{m}’表示出现m次,’{m,}’表示至少出现m次。
11、\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。
- 字符簇:
1、[[:alpha:]] 任何字母。
2、[[:digit:]] 任何数字。
3、[[:alnum:]] 任何字母和数字。
4、[[:space:]] 任何白字符。
5、[[:upper:]] 任何大写字母。
6、[[:lower:]] 任何小写字母。
7、[[:punct:]] 任何标点符号。
8、[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。
各种操作符的运算优先级
/转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序
|
*/
ORACLE--知识点②--函数相关推荐
- oracle中函数怎么使用方法,Oracle中函数的使用
1.decode () 例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示c, ...
- oracle中的循环函数,Oracle日期函数和循环总结
一,日期相关的函数 Select to_char(sysdate,'Q') from dual;--指定日期的季度 Select to_char(sysdate,'MM') from dual;--月 ...
- Oracle round函数是什么意思?怎么运用?
如何使用 Oracle Round 函数 (四舍五入) 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果. SELECT ROUND( number, [ decimal_p ...
- oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…
Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...
- oracle+cast函数+长度,oracle cast() 函数问题
oracle cast() 函数问题 关键字: oracle cast() 函数问题 SQL> create table t1(a varchar(10)); Table created. SQ ...
- Oracle trunc()函数的用法
--Oracle trunc()函数的用法 /**************日期********************/ 1.select trunc(sysdate) from dual --20 ...
- oracle显示当天日期函数,oracle日期函数
oracle日期函数 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当 ...
- ORACLE时间函数(SYSDATE)深入理解
ORACLE时间函数(SYSDATE)深入理解 加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,a ...
- 十、oracle 常用函数
一.字符函数 字符函数是oracle中最常用的函数,我们来看看有哪些字符函数: lower(char):将字符串转化为小写的格式. upper(char):将字符串转化为大写的格式. length(c ...
- 【转】【CUBE】Oracle分组函数之CUBE魅力
[转][CUBE]Oracle分组函数之CUBE魅力 http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是 ...
最新文章
- 独家 | 年度盘点!必看AI顶会论文、Github高星项目大合集(附链接)
- 题解——洛谷 P2680 NOIP提高组 2015 运输计划
- f60gen command
- 趣图:当我捕获Bug的时候
- python open函数 创建变量文件_python的open函数怎么用
- 如何在mysql命令窗口获取到程序正在执行的sql语句
- Eclipse安装教程
- 用曲率,挠率反求曲线方程!(作业捷径篇 续集)
- 深度桌面操作系统架构设计
- 桌面放大镜、演示工具推荐——ZoomIt
- 虚拟机安装Ubuntu后的问题(不能全屏、不能上网;换源挂代理;安装搜狗输入法;pycharm的sudo模式启动快捷方式)
- 基于51单片机的关于7SEG-MPX8-CA,7SEG-MPX6-CA,7SEG-MPX4-CA的使用
- php操作主从mysql_PHP 操作MySQL数据库
- 每周一磁 · 磁滞回曲线和内禀退磁曲线(B-H曲线和J-H曲线)
- Swing学习笔记目录
- 软件著作权和高新技术企业的关系
- 易中天品汉代风云人物08:韩信成败之谜
- L1-044 稳赢(15分) java
- Android设置屏幕保持长亮
- 信号处理之圆周卷积与DFT频率分辨率分析