-函数 函数像一个黑盒子一样(看不到里边的构造),有参数返回值,可以为我们完成一定的功能。

-单行 这种函数会对结果中的每一行计算一次,每行返回一个结果,单行概念区别于分组函数。

单行函数主要分为以下五类:字符函数、数字函数、日期函数、转换函数、通用函数;

一、字符型函数

---字符处理-大小写转换

例子:写一个SQL,将'I love Sql'转换成全大写,全小写和首字母大写的形式。

SELECT UPPER ('I love Sql'),LOWER('I love Sql'),INITCAP('I love Sql')

FROM dual;

-Oracle之中有一点比较麻烦,即使要验证字符串,也必须编写完整的SQL语句,所以在Oracle数据库之中为了用户查询方便,所以专门提供了一个“dual”的虚拟表

-dual是sys用户下的一张表,dual表中的数据没有任何意义,它的作用是补全SQL语句

-作用 在不知道大小写的时候便于查询

---CONTACT(参数1,参数2)-字符串连接

||可以连接两个以上的字符串,CONTACT只能连接两个么

SELECT CONTACT ('I love',' Sql')

FROM dual;

-函数的嵌套,理论上,单行函数可以嵌套无限多层,取决于计算机的计算能力,内存CPU是否足够大

-嵌套的执行顺序,最里层向外,依次执行,里边的结果要作为外边的参数

SELECT CONTACT (CONTACT('I',' love'),' Sql')

FROM dual;

||工作中一般用||连接,这里是为了讲解嵌套的概念

---SUBSTR(源字符串,m,n) (取子串)返回源字符串中从第m个字符开始的n个字符

-如果省略n,则截取剩余字符串至末尾

-m也可以是负数,泽从右往左数

-SQL从1开始算,空格也算一位

例子:要求截取每个雇员姓名的后三个字母

SELECT ename,SUBSTR(ename,-3)

FROM emp;

---LENGTH(字符串)

例子:查询出每个雇员姓名的长度

SELECT ename,

LENGTH(ename)

FROM emp;

---INSTR(源字符串,字串,m,n)-返回子串在源字符串中,从第m个字符开始,第n次出现的位置

-如果没有找到子串的位置,则会返回0

-m,n都可以省略,默认是1

例子:查询emp表中名字至少含有一个E的员工信息,不用like,不用通配符,怎么写。

SELECT *

FROM emp

WHERE INSTR(ename,'E')>0;

---Lpad(源字符串,n,子串)-在源字符串的右面用子串填充成n长度

SECECT LPAD('sql',9,'*')

FROM dual;

---TRIM(字符 FROM 源字符)-截去源字符串头(尾)所指定的字符

SELSCT TRIM('L' FROM 'LEVELA')

FROM dual;

SELSCT TRIM(BOTH'L' FROM 'LEVELA')

FROM dual;

SELSCT TRIM(LEADING'L' FROM 'LEVELA')

FROM dual;

SELSCT TRIM(TRAILING'L' FROM 'LEVELA')

FROM dual;

-both是默认的

-很少用trim函数这种功能,常用第二种算法

---TRIM(字符串)-截去头尾的空格

SELECT TRIM(’          d         tom                     ')

FROM dual;

-截掉头尾空格的方法,常用在web开发,用户登录设置密码的时候

-用于习惯加空格,这里可以用trim把头尾空格截掉,然后再验证

---REPLACE(源字符串,s,t)-把s换成t

SELECT REPLACE (' a b c d','a','e')

FROM dual;

思考:在数据库中计数全部从1开始,某些参数也可以设置为负数,表示由后指定的点开始

二、数字函数

---ROUND(数字,n)-将给定的数字四舍五入到小数点后n位

---TRUNC(数字,n)-将给定的数字截断到小数点后n位

---MOD(m,)-返回m除以n后的余数

-对熟悉应用不是很多

-扩展

---ABS(数字)-取绝对值

SELECT ABS(-5)

FROM dual;

三、日期函数

-SYSDATE-返回(服务器)系统时间(返回的是服务器端的时间,还是客户端的时间,看表在哪存着,表在服务器端保存,返回的是服务器的时间)

SELECT SYSDATE

FROM dual;

-做外包的时候要注意服务器可能不在中国,要转换

---MONTHS_BETWEEN(日期1,日期2)-返回两个日期之间相差的月数,较大在前,较小在后,返回后是整数,越晚越大)

例子:查询emp表中员工今天到此为止工作了多少个月了

SELECT ename,hiredate,MONTHS_BETWEEN(SYSDATE,hiredate)

FROM emp;

例子:计算自己的年龄,并且四舍五入到小数点后两位

SELECT ROUND(MONTHS_BETWEEN(SYSDATE,'1-1月-200')/12,2) AGE

FROM dual;

---ADD_MONTHS(日期,n)-返回n个月之后的日期

-如果给你日期是某个月的最后一天,则结果也是对应月的最后一天

-给1月30号,31号,返回的都是2月最后一天

---NEXT_DAY(日期,'星期X'|n)-返回给定日期后一周内的下一个星期X的日期

-一周内

-1代表星期日,2代表星期一,以此类推...

---LAST_DAY(日期):求出指定日期的最后一天

例子:求出本月的最后一天日期

SELECT LAST_DAY(SYSDATE)

FROM dual;

---EXTRACT(year|month|day from 日期)

SELECT EXTRACT(day from SYSDATE)

FROM dual;

-基本不用了,EXTRACT是Oracle 9i版本提供的

-使用有限制,只能抽取日月年的信息

四、类型转换函数

1.隐式类型转换

-不建议使用饮食类型转换的原因

--可读性差

--隐式类型转换会降低运行效率

--Oracle不承诺会在下一个版本中不改变隐式类型转换的规则

2.显示类型转换-函数

日期和字符可以相互转换,数字和字符可以相互转换

---TO_CHAR(日期|数字,'格式字符串’)

例子:将系统日期转换成字符串,格式2015/7/23

SELECT TO_CHAR(SYSDATE,'yyyy/mm/dd')

FROM dual;//结果多了个0,这个0叫做前导零

-怎么去掉前导零-fm

SELECT TO_CHAR(SYSDATE,'fmyyyy-mm-dd')

FROM dual;

例子:将系统时间转换成字符串,格式xx:xx:xx

SELECT TO_CHAR(SYSDATE,'HH:MI:SS')

FROM dual;

-----------------------------------------------------未完待续--------------------------------------------------------------------------------------

Oracle笔记(三)单行函数的更多相关文章

  1. Oracle中的单行函数

    Oracle中的单行函数 1 字符函数 UPPER()--将字符串转换为大写 SELECT UPPER('abc') FROM dual; LOWER()-将字符串转换为小写 SELECT LOWER ...

  2. Oracle数据库之六 单行函数

    六.单行函数 6.1.认识单行函数 ​ 函数就是和 Java 语言之中的方法的功能是一样的,都是为了完成某些特定操作的功能支持,而在 Oracle 数据库里面也包含了大量的单行函数,这些函数掌握了以后 ...

  3. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  4. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  5. Oracle学习笔记_03_单行函数

    1.SQL函数: 单行函数.多行函数 单行函数:       操作数据对象       接受参数返回一个结果       只对一行进行变换       每行返回一个结果       可以转换数据类型  ...

  6. Oracle系列四 单行函数查询语句

    单行函数 操作数据对象 接受参数返回一个结果 只对一行进行变换 每行返回一个结果 可以转换数据类型 可以嵌套 参数可以是一列或一个值 包含:字符,数值,日期,转换,通用 字符函数 1.大小写控制函数: ...

  7. oracle篇 之 单行函数

    一.分类 1.单行函数:需要处理的行数和返回结果的行数相等(单行进单行出) 2.多行函数(组函数):返回结果的行数少于要处理的行数(多行进单行出) 二.字符处理相关函数 1.lower:字符串转换成小 ...

  8. Oracle Single-Row Functions(单行函数)——NULL-Related Functions

    参考资料:http://docs.oracle.com/database/122/SQLRF/Functions.htm#SQLRF006 Single-row functions return a ...

  9. Oracle笔记 三、function 、select

    Scott表下有这么几个常用的表,而且还带有数据.分别是emp.dept.salgrade: 1.查看表结构用desc desc emp; 2.空表dual,最常用的空表,如: select 2 * ...

  10. python学习笔记三:函数及变量作用域

    一.定义 def functionName([arg1,arg2,...]): code 二.示例 #!/usr/bin/python #coding:utf8 #coding=utf8 #encod ...

随机推荐

  1. DELPHI关闭瑞星监控的源代码

    program Project1; uses Windows, Messages, SysUtils; procedure DeleteMe; var BatchFile: TextFile; Bat ...

  2. UVa 二分图匹配 Examples

    这些都是刘汝佳的算法训练指南上的例题,基本包括了常见的几种二分图匹配的算法. 二分图是这样一个图,顶点分成两个不相交的集合X , Y中,其中同一个集合中没有边,所有的边关联在两个集合中. 给定一个二分 ...

  3. Java条件语句 switch case

    不得不说的几点小秘密: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case 后面的值可以是常量数值,如 1.2:也可以是一个常量表达式,如 2+2 :但不能是变量或带有变量的 ...

  4. HALCON 简介

    HALCON   windowssolarisgccdelphilinux图像处理 ·满足您各类机器视觉应用需求的完善的开发库 ·包含匹配,识别,定位及1D,2D,3D测量等多种高级算法 ·强大,易用 ...

  5. 如何使用validate.js进行动态添加和移除表单验证信息

    表单是我们在开当中的常客,那么对表单的验证也是必须的,那么如何实现动态给表单添加验证规则呢? 方法: 1,动态添加验证规则 // 添加$("#addConnectUser").ru ...

  6. 补丁安装命令(WUSA)

    wusa windows6.1-kb2716513-x64.msu /quiet /norestart msxml4-kb2758694-enu.exe /quiet /norestart 安装.ms ...

  7. 【07】为多态基类声明virtual析构方法

    1.考虑下面的需要,需要一个工厂方法.工厂方法的规则是:在堆上分配一个子类对象,并返回父类指针.使用完毕,delete父类指针.如果父类的析构方法不是virtual,将直接调用父类的析构方法,导致局部 ...

  8. 百度之星资格赛,hdu 4825 XOR SUM

    显然是要建一棵0.1树 事实上非常easy就是二叉树,仅仅只是为了操作简便,即程序的速度,所以就採用静态树,即不动态分配内存,使用较大的全局数组.0是根节点 #include<cstdio> ...

  9. procps工具集 ----Linux中的可用内存指的是什么?

    https://gitlab.com/procps-ng/procps free - Report the amount of free and used memory in the system k ...

  10. 八、套接字(Socket)

    demo 一个连接由它的两个端点标识,这样的端点称为套接 套接字是支持TCP/IP协议的网络通信的基本操作单元. 可以将套接字看作不同主机间的进程进行双向通信的端点. 上图连接1的一对套接字为: (1 ...