一、伪表。系统内置的只有一行一列数据的表。常用来执行函数。

select 函数名 from dual

注:以下所有函数为了方便理解均用 伪表 做为事例!

二、 时间函数

1.sysdate:获取数据库系统的当前时间

例:select sysdate from dual 我们就会获取到当前系统的时间

2.add_months:对日期的月份进行加减

  select add_months(日期, 数值) from dual

  在这里的数值是必须要写的,如果不想对日期进行加减我们可以把数值写成0!

例:select add_months(sysdate, 1) from dual

  此时我取到了当前的时间

  如果数值写成1,那么我得出的时间的月份就是当前月份+1;

  如果数值写成0,那么我得出的时间的月份就是当前月份;

  如果数值写成-1,那么我得出的时间的月份就是当前月份-1;           

3.last_day:获取日期所在月份的最后一天

  select last_day(日期) from dual

  这个日期必须是date类型的,所以如果我们直接输入一个日期例如2012/3/3,它是会报错的,所以我们就要给日期进行转换把原本是char类型的数值转换为date类型。

转换方式:select last_day(to_date('2012/3/3', 'yyyy/mm/dd')) from dual (在这里不过多叙述下面会细讲)

   select last_day(sysdate) from dual

这样我们就会取到当前月份的最后一天。

三、转换函数

1.to_date:把特定格式的字符串转换成日期型数据

例:select to_date('字符串', 'yyyy/mm/dd hh24:mi:ss') from dual 

   select to_date('2010/3/5 12:12:12', 'yyyy/mm/dd hh24:mi:ss') from dual

当我想用12小时制是我就不需要写24,直接hh就可以了。当然前面的小时数值要在1-12之间

2.to_char:把其他数据类型转换成特定格式的字符串类型

例:select to_char('日期型数据', 'yyyy/mm/dd hh24:mi:ss') from dual

  select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual

to_char 一般会用在时间的提取以及年龄的计算上,这是我们把日期型数据转变成我们想要的年份、月份。我们可以只写yyyy这要就只转换成了年份。

3.cast:通用转换函数

例:select cast(数据源 as 数据类型(长度)) from dual

四:数值函数

1.abs:求绝对值

例:select abs(-1) from dual

  求出的值为1

2.mod:求模(求余数)

例:select mod(m,n) from dual

  表示m/n的余数

3.ceil:求上限值

例:select ceil(9.1) from dual

  它的上限值就是10,

4.floor:求下限值

例:select floor(9.1) from dual

  它的下限值就是9,

(上限值与下限值就是最接近它的正数值)

5.round:四舍五入(从小数点后第一位开始四舍五入)

例:select round(9.499) from dual

  四舍五入后是9

例:select round(m, n) from dual

  当n>0时,保留小数点后n位

  例:select round(9.499, 2) from dual

    就是9.499四舍五入后保留小数点后两位数

  当n = 0,四舍五入后取整  

  例:select round(9.499, 0) from dual

    四舍五入后是9

  当n < 0,小数点前n位变0并四舍五入

  例:select round(7.499, -1) from dual

    直接从小数点前第一位开始四舍五入,结果是10

6.trunc取整数,直接舍去小数点后面的。

例:select trunc(90.99) from dual

  舍去后面小数取整就是90

例:select trunc(m, n) from dual

  n > 0,保留小数点后n位

  例:select trunc(90.99, 1) from dual

  那么保留一位后结果就是90.9

  n = 0,直接取整

  例:select trunc(90.99, 0) from dual

  相当于 trunc(90.99)结果是90

  n < 0,小数点前n位变0

  例:select trunc(90.99, -1) from dual

  那么结果就是90。 如果是-2的话结果就是0

五:字符串函数

1.length:获取字符串长度  

例:select length(' ') from dual

2.trim 去除字符串的左右空格

例:select trim(' ') from dual

 ltrim 去除字符串的左空格

例:select ltrim(' ') from dual

 rtrim 去除字符串的右空格

例:select rtrim(' ') from dual

3.replace:查找并替换字符串

例:select replace('要替换的字符串', '字符串中要被清除的内容') from dual;

   要替换的字符串也可以写成字段的名称

  例:select replace('中文', '文') from q; / select replace(A, '文') from q;

    输出结果便是中。

例:select replace('要替换的字符串',  '要被替换的内容', '新内容') from dual;

  要替换的字符串也可以写成字段的名称

  例:select replace('中文', '文', '国') from q; / select replace('A', '文', '国') from q;

    意思是把   '文'字替换成'国'字'    输出结果便是中国。

4.查找字符串并返回首个的位置

特点:字符串的首位从开始、未找到的返回值是0

例:select instr('字符源', '要查找的字符串') from q;

  字符源也可以写成字段的名称  

   例:select instr('中文', '文') from q; / select instr(A, 's') from q;

     前者输出结果便是2,因为文在其字段中的位置是2。后者输出结果是0,疑问在字段中没有找的's'。

5.substr:截取字符串

特点:开始位置>=0,从左开始计算位置。开始位置<0,从右开始计算位置。

例:select substr('要截取的字符串', '开始位置') from q;

  select substr('中文', '1') from q;

  从左边第一个字符开始截取,那么截取后的结果就是'中文'

  select substr('中文', '-1') from q;

  从右边第一个字符开始截取,那么截取后的结果就是'文'

(注意都是从左往右截取,只是起始位置不一样而已)

六:替换函数

1.nvl:把null替换成默认值

用法:select nvl('字段名', '默认值') from q;

2.nvl2: 把null替换成默认值,把非空替换成新的值

用法:select nvl2('字段名', '非空的新值', '为空的默认值') from q;

3.decode:匹配字段的值并替换成新的值

用法:select decode(字段名, 值1, 新值1, 值2, 新值2,...,缺省值) from q;

七:聚合函数:

1.count('字段名') 或 count(字段序列号) 或 count(*) 此方法效率低:统计符合条件的字段内容非空的数据条数;

2.avg('字段名'):统计符合条件的数值类型字段内容非空的数据的平均值;

3.sum('字段名'):统计符合条件的数值类型字段内容非空的数据的合计数;

4.max('字段名'):获取数据集合中某字段的最大值;

5.min('字段名'):获取数据集合中某字段的最小值;

SQL控制语句中内置函数讲解的更多相关文章

  1. Python中内置函数的介绍

    内置函数的功能介绍 常用内置函数如下: 1.abs() 绝对值 格式:abs(x) 例如:print(abs(-18)) >>> 18 返回值:number #该函数主要用于数值类的 ...

  2. Python中内置函数

    python提供了很多的内置函数,这些内置的函数在某些情况下,可以起到很大的作用,而不需要专门去 写函数实现XX功能,直接使用内置函数就可以实现,下面分别来学习内置函数的使用和案例代码. abs(), ...

  3. 【SQL】MySQL内置函数中的字符串函数和日期时间函数

    字符串函数 --拼接字符串组成新的字符串 Select concat(‘A’,’B’); --返回字符串长度 Select length(“CAT”) --返回子字符串在字符串中首次出现的位置,没有返 ...

  4. SQL Server 常用内置函数(built-in)持续整理

    本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的 ...

  5. SQL Server 常用内置函数

    本文用于收集在运维中经常使用的系统内置(built-in)函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID ...

  6. oracle数据库 SQL语句、内置函数大全

    1.数值函数 函数 返回值 样例 显示 CEIL(n)      大于或等于数值n的最小整数 SELECT CEIL(10.6) FROM TABLE_NAME; 11 FLOOR(n)  小于等于数 ...

  7. Mysql 存储过程 + python调用存储过程 (内置函数讲解及定义摘抄)

    定义 存储过程:就是为以后的使用而保存的一条或多条 MySQL语句的集合.可将其视为批文件,虽然它们的作用不仅限于批处理. 个人使用存储过程的原因就是因为 存储过程比使用单独的SQL语句要快 有如下表 ...

  8. SQL Server 2012 - 内置函数

    文本函数 --系统函数位置: 可编程性→函数→系统函数 -- 查询ASCII码 select ASCII('a') --查询数值对应的ASCII码 select CHAR(97) --Left . R ...

  9. javascript中内置函数

    一.基本函数库 split():用于把一个字符串分割成字符串数组 toUpperCase(): substr(): 长度 length() 拼接(两种) + concat():合并多个字符串,并返回合 ...

随机推荐

  1. 用于Simple.Data的ASP.NET Identity Provider

    今天推举的这篇文章,本意不是要推举文章的内容,而是据此介绍一下Simple.Data这个很有意思的类ORM工具. 现在大家在.NET开发中如果需要进行数据访问,那么基本都会使用一些ORM工具,比如微软 ...

  2. 电赛菜鸟营培训(一)——STM32F103CB之LED控制

    一.STM32F103C8 引脚分布 二.LED的共阴.共阳接法 这里应该是七段数码管的接法. 限流电阻选择为470,在Multism中仿真,也需要接入,否则会出现闪烁情况.或者直接更改属性. 三.消 ...

  3. ANT下载和配置

    1) 在环境变量中设置ANT_HOME,值为你的安装目录ANT安装目录 2) 在环境变量中设置JAVA_HOME,值为你的jdk安装目录 3) 把ANT_HOME/bin,JAVA_HOME/bin ...

  4. SU Demos-04Deconvolution-02Wiener_Levinson

    本Demo共有4个脚本,我只看了第一个,后面的3个不熟悉,就不往这里贴图了,望谅解. 不足之处,欢迎批评指正. 先看readme 生成数据所需的c程序 make上述c程序时需要的makefile(本人 ...

  5. Xamarin如何生成Android项目的APK

    Xamarin如何生成Android项目的APK 首先需要选择Release模式生成项目.然后从“生成”菜单中选择Export Android Package命令,就可以导出APK包.APK保存在An ...

  6. 餐厅到店点餐系统app燃尽图

    队友: 郭志豪:http://www.cnblogs.com/gzh13692021053/ 杨子健:http://www.cnblogs.com/yzj666/ 刘森松:http://www.cnb ...

  7. LightOJ1030 Discovering Gold(概率DP)

    题目大概说一个1×n的格子,每个格子都有一定的黄金,起点在1,终点在n,通过投掷6面骰子前进与骰子点数一样的步数,如果会超过n就重新投,每到一个格子就获得其中的黄金.问到达n能得到的黄金数目的期望. ...

  8. WPF之资源字典zz

    最近在看wpf相关东西,虽然有过两年的wpf方面的开发经验,但是当时开发的时候,许多东西一知半解,至今都是模模糊糊,框架基本是别人搭建,自己也就照着模板写写,现在许多东西慢慢的理解了,回顾以前的若干记 ...

  9. BZOJ3745 : [Coci2014]Norma

    考虑枚举右端点,用线段树维护[i,nowr]的答案. 当右端点向右延伸时,需要知道它前面第一个比它大/小的数的位置,这里面的最值将发生改变,这个使用单调队列求出,然后将所有的l都加1. 注意常数优化. ...

  10. 【wikioi】1012 最大公约数和最小公倍数问题

    题目链接 算法:辗转相除(欧几里得) gcd(a, b)是a和b最小公倍数, lcm(a, b)是a和b的最大公倍数 gcd(a, b) == gcd(b, a%b) 时间复杂度: O(lgb) 具体 ...