1.SQL函数的概念:

函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。(类似于java中的方法但函数只是将数据库中的数据取出(复制)到函数中进行运算,并不会修改数据库中的数据)

2.Sql函数可以分为组函数和单行函数。

–单行函数对单个数值进行操作,并返回一个值
–组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句

3.单行函数的分类:

单行函数分为字符函数、数字函数、日期函数、转换函数和其他函数

3.1.字符函数

字符函数全以字符作为参数,返回值分为两类:一类返回字符
值,一类返回数字值

常用函数如下:
1.concat(a,b) 拼接a,b两个字符串数据
例:select concat(ename,job) from emp;
如果需要拼接多个字符串可用concat()进行嵌套
例:select concat(concat(ename,'的职位是'),job)from emp;
2.initcap(x) 将每个单词的首字母转大写
例:select initcap('ab cde') from dual;
结果为Ab Cde
其中dual是一个虚拟表
3.lower() / upper() 将字符串小写/将字符串大写
例:select lower('AbCde') from dual;
结果为abcde
select upper('AbCde') from dual;
结果为ABCDE
4.length() 获取字符串的长度
例:select length('abcde') from dual;
结果返回5
5.lpad(a,b,c) /rpad(a,b,c) 将a字符串左边/右边填充至b长度,用c字符填充(默认为空格)
6.ltrim(a,b) / rtrim() 去除a字符串左边的b字符,如果b不传参,默认去除空格
7.replace(a,b,c) 将a中的b字符串替换为c
8.substr(a,b,c) 将a的字符串,从b位置开始截取,截c个长度
9.trim( a from b) 将b左右两边的a字符去除掉

3.2.数字函数

数字函数以number类型为参数返回number值
常用函数:
1.abs() 求取绝对值
2.ceil() 向上取整
3.floor() 向下取整
4.round() 四舍五入
5.power(x,y) x的y次幂

3.3.日期函数

Oracle以内部数字格式存储日期:世纪,年,月,日,小时,分钟,秒
常用函数:
1.sysdate 返回系统当前日期,注:没有括号
2.add_months(d1,d2) 在d1日期上,增加d2个月份
3.months_between(d1,d2) 返回d1和d2之间的相隔月份
4.last_day(d) 返回d日期所在月份最后一天的日期
5.next_day(d,X) 返回下一个星期X的日期

3.4.转换函数

转换函数提供了字符和数字的相互转换 &字符和日期的相互转换

1.to_char() 将数字、或日期转化为字符串
2.to_date() 将字符串转化为日期
3.to_number() 将字符串转化为数字

3.5.其他函数

1.nvl(x,y) 如果x为null,则显示为y,x和y的类型保持一致
2.sys_guid() 生成一个的32位随机字符串
3.decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 条件取值,类同java的switch(等值判断)
4.case when then else end 条件取值,类同java的if-else-if(范围判断)
select 列,case when 条件判断 then '值1'
when 条件判断 then '值2'
when 条件判断 then '值3'
when 条件判断 then '值4'
else '缺省值' end from 表;

4.组函数

组函数不处理空字段(忽略空字段)
1.avg()求平均值,只能对数字类型进行处理
2.sum()求和,只能对数字类型进行处理
3.count()计数,对任何类型生效
4.max() 求最大值,对任何类型生效
5.min() 求最小值,对任何类型生效

5.group by关键字(创建分组)

5.1作用:
对查询结果按指定列进行分组处理

5.2用法:
1.分组之后,select后面的列只能是group by 后面指定的列
2.group by 后面可以跟多个列,则这多个列值都相同时,才分为一组
3.如果分组列中具有null值,则null将作为一个分组返回
4.分组之后,可以使用组函数对每个组进行数据处理
5.Group by 子句必须出现在where子句之后,order by 子句之前
例:select deptno from emp group by deptno rder by deptno desc

6.having 关键字

6.1作用:
用于对分组数据进行过滤
6.2用法:
1.类似于where的用法, Where过滤行,having过滤分组
2.having支持所有where中的操作符
3.一般在使用group by 子句时,应该也给出order by子句

7.Sql语句执行顺序(过程):

1. 读取from子句中的基本表、视图的数据,[执行笛卡尔积操作]。
2. 选取满足where子句中给出的条件表达式的元组
3. 按group子句中指定列的值分组,同时提取满足Having子句中组条件表达式的那些组
4. 按select子句中给出的列名或列表达式求值输出
5. Order by子句对输出的目标表进行排序。

注:sql的书写顺序为:
select from where group by having order by [asc/desc]

Oracle数据库常用SQL函数的更多相关文章

  1. Oracle数据库常用Sql语句大全

    一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...

  2. oracle数据库常用SQL语句(11.29更新)

    笔者日常工作中常用到的sql语句,现总结如下,留作日后查看. 1.按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Loa ...

  3. oracle数据库常用SQL语句

    1)删除表的一列 ALTER TABLE 表名 DROP COLUMN 列名; 2)增加表的一列 且默认值为0 alter table 表名 add 字段名 类型 default '0'; 3)修改表 ...

  4. Oracle 数据库常用SQL语句(2)查询语句

    一.SQL基础查询 1.select语句 格式:select 字段 from 表名; 2.where 用于限制查询的结果. 3.查询条件 > < >= <= = != 4.与 ...

  5. Oracle数据库 常用SQL

    -- 查询所有数据 SELECT * FROM [TABLE_NAME]; -- 查询数据总量 SELECT COUNT(*) AS COUNT FROM [TABLE_NAME]; -- 清空表内所 ...

  6. Oracle 数据库常用SQL语句(1)

    一.数据定义语句 CREATE:创建表或其它对象 create database test; //创建test数据库 ),sex )); //创建表 ALTER:修改表或其它对象的结构 )); //为 ...

  7. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  8. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

    花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用 ...

  9. Oracle数据库常用的Sql语句整理

    Oracle数据库常用的Sql语句整理 查看当前用户的缺省表空间 : select username,default_tablespace from user_users; 2.查看用户下所有的表 : ...

随机推荐

  1. jieba库分词词频统计

    代码已发至github上的python文件 词频统计结果如下(词频为1的词组数量已省略): {'是': 5, '风格': 4, '擅长': 4, '的': 4, '兴趣': 4, '宣言': 4, ' ...

  2. Centos下安装Python的问题汇总

    Python下载地址(https://www.python.org/ftp/python/) 一.工具安装 1.Python的安装 tar vxf Python-2.7.13.tgz cd Pytho ...

  3. 基于支付系统真实场景的分布式事务解决方案效果演示: http://www.iqiyi.com/w_19rsveqlhh.html

    基于支付系统真实场景的分布式事务解决方案效果演示:http://www.iqiyi.com/w_19rsveqlhh.html

  4. restrict关键字(暗示编译器,某个指针指向的空间,只能从该指针访问)

    我们希望某个对象(内存空间)不被修改的通常做法是什么?声明该空间的const类型,但是这样真的可以吗?是不是的,由于const空间对象的指针是可以付给一个非const值指针的.所以这仍然无法不让该空间 ...

  5. Eclipse插件:mybatis generator的使用步骤

    一.首先,安装eclipse插件 Help--Eclipser Marketplace中查找:Mybatis Generator 1.3.5安装 二.新建project New--other--查找如 ...

  6. 多个DbContext修改同一张表测试

    多个DbContext修改同一张表经测试是可行的. UserStore和DepartmentStore都可以向SysLog表写入数据 用多个线程同时通过UserStore和DepartmentStor ...

  7. Java公开课-06.单例

    一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建 ...

  8. Sequel自动生成Select语句

    Sequel 是 Mac 上的一款不错的 mysql 可视化编辑, 它有一个非常好的功能是可以定制自己的插件, 这就是Bundles. 利用这个功能可以写出自己常用的一些sql. 查询语句是最常用的, ...

  9. 图解MySQL索引--B-Tree(B+Tree)

    看了很多关于索引的博客,讲的大同小异.但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引....或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等 ...

  10. Latex数学公式中的空格表示方法

    两个quad空格 a \qquad b 两个m的宽度 quad空格 a \quad b 一个m的宽度 大空格 a\ b 1/3m宽度 中等空格 a\;b 2/7m宽度 小空格 a\,b 1/6m宽度 ...