Functions:

  1. single row functions  单行函数*
  2. 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、自连接

六、

  1. on  连接的限制条件
  2. 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--知识点②--函数相关推荐

  1. oracle中函数怎么使用方法,Oracle中函数的使用

    1.decode () 例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示c, ...

  2. oracle中的循环函数,Oracle日期函数和循环总结

    一,日期相关的函数 Select to_char(sysdate,'Q') from dual;--指定日期的季度 Select to_char(sysdate,'MM') from dual;--月 ...

  3. Oracle round函数是什么意思?怎么运用?

    如何使用 Oracle Round 函数 (四舍五入) 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果. SELECT ROUND( number, [ decimal_p ...

  4. oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...

  5. oracle+cast函数+长度,oracle cast() 函数问题

    oracle cast() 函数问题 关键字: oracle cast() 函数问题 SQL> create table t1(a varchar(10)); Table created. SQ ...

  6. Oracle trunc()函数的用法

    --Oracle trunc()函数的用法 /**************日期********************/ 1.select trunc(sysdate) from dual  --20 ...

  7. oracle显示当天日期函数,oracle日期函数

    oracle日期函数 1.日期时间间隔操作  当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当 ...

  8. ORACLE时间函数(SYSDATE)深入理解

    ORACLE时间函数(SYSDATE)深入理解 加法  select sysdate,add_months(sysdate,12) from dual; --加1年  select sysdate,a ...

  9. 十、oracle 常用函数

    一.字符函数 字符函数是oracle中最常用的函数,我们来看看有哪些字符函数: lower(char):将字符串转化为小写的格式. upper(char):将字符串转化为大写的格式. length(c ...

  10. 【转】【CUBE】Oracle分组函数之CUBE魅力

    [转][CUBE]Oracle分组函数之CUBE魅力 http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是 ...

最新文章

  1. 独家 | 年度盘点!必看AI顶会论文、Github高星项目大合集(附链接)
  2. 题解——洛谷 P2680 NOIP提高组 2015 运输计划
  3. f60gen command
  4. 趣图:当我捕获Bug的时候
  5. python open函数 创建变量文件_python的open函数怎么用
  6. 如何在mysql命令窗口获取到程序正在执行的sql语句
  7. Eclipse安装教程
  8. 用曲率,挠率反求曲线方程!(作业捷径篇 续集)
  9. 深度桌面操作系统架构设计
  10. 桌面放大镜、演示工具推荐——ZoomIt
  11. 虚拟机安装Ubuntu后的问题(不能全屏、不能上网;换源挂代理;安装搜狗输入法;pycharm的sudo模式启动快捷方式)
  12. 基于51单片机的关于7SEG-MPX8-CA,7SEG-MPX6-CA,7SEG-MPX4-CA的使用
  13. php操作主从mysql_PHP 操作MySQL数据库
  14. 每周一磁 · 磁滞回曲线和内禀退磁曲线(B-H曲线和J-H曲线)
  15. Swing学习笔记目录
  16. 软件著作权和高新技术企业的关系
  17. 易中天品汉代风云人物08:韩信成败之谜
  18. L1-044 稳赢(15分) java
  19. Android设置屏幕保持长亮
  20. 信号处理之圆周卷积与DFT频率分辨率分析

热门文章

  1. 前端导出 excel ,设置字体,列宽,行高,对其方式,合并单元格等效果
  2. 最详细:哈尔滨工程大学自动化学院(四系)考研初试专业课复习经验分享
  3. 使用HTML实现图文混排
  4. 5-24 藏尾诗 (20分)
  5. 为什么远程计算机没反应,谁能解释下远程计算机无反应是怎么个意思?
  6. GitLab 及 Git 命令使用记录
  7. 地理信息系统概论(陈述彭版)
  8. 常用HTML标签美化博文
  9. 直播实录|百度大脑EasyDL邀一线专家分享肿瘤识别
  10. Java工程师修炼之路(校招总结)