1、函数
就是输入某一值得到相应输出结果的功能,输入值称为参数,输出值称为返回值。函数分类:
- 算术函数(用来进行数值计算的函数)
- 字符串函数(用来进行字符串操作的函数)
- 日期函数(用来进行日期操作的函数)
- 转换函数(用来转换数据类型和值的函数)
- 聚合函数(用来进行数据聚合的函数)
2、算数函数
算数函数是最基本的函数,包含加减乘除四则运算。
(numeric是大多数DBMS 都支持的一种数据类型,通过numeric( 全体位数, 小数位数) 的形式来指定数值的大小)
1、绝对值函数abs, abs 函数的参数为null时,结果也是null。并非只有abs 函数如此,其实绝大多数函数对于null都返回null
select <列名>,
abs(<列名>)
from <表名>;
2、求余函数mod ,因为小数计算中并没有余数的概念,所以只能对整数类型的列使用mod函数。下面的代码为(列名1%列名2)的结果
select <列名>, <列名>,
mod(<列名1>, <列名2>)
from <表名>;
3、四舍五入函数round
round(对象数值,保留小数的位数)
select <列名>, <列名>,...,
round(<列名>, 位数)
from <表名>;
3、字符串函数
1、字符串拼接函数 ||。进行字符串拼接时,如果其中包含null,那么得到的结果也是null。再某些DBMS中,使用“+”和concat进行字符串的拼接。
字符串1||字符串2
select <列名>, <列名>,...,
<列名>||<列名>
from <表名>;
select <列名>, <列名>,...,
<列名>||<列名>||<列名>
from <表名>;
concat(字符串1,字符串2)
select <列名>, <列名>,...,
concat(<列名>,<列名>)
from <表名>;
字符串1+字符串2
select <列名>, <列名>,...,
<列名>+<列名>
from <表名>;
2、字符串长度函数length
length(字符串);
select <列名>,
length(<列名>)
from <表名>;
3、小写转换函数lower,将参数中的字符串全都转换为小写,该函数并不适用于英文字母以外的场合,此外,该函数并不影响原本就是小写的字符
lower(字符串)
select <列名>,
lower(<列名>)
from <表名>;
4、大写转换函数upper, 将参数中的字符串全都转换为大写,该函数并不适用于英文字母以外的场合,此外,该函数并不影响原本就是大写的字符
upper(字符串)
select <列名>,
upper(<列名>)
from <表名>;
5、字符串替换函数replace,将字符串的一部分替换为其他的字符串
replace(字符串1,字符串2,字符串3)
--将字符串1中出现的字符串2都替换为字符串3
select <列名1>, <列名2>, <列名3>,
replace(<列名1>, <列名2>, <列名3>)
from <表名>;
--将<列名1>中字符串的<列名2>的部分,替换为<列名3>
6、字符串截取函数substring
substring(对象字符串 from 截取的起始位置 for 截取的字符数)
select <列名>,
substring(<列名> from 3 for 2)
from <表名>;
4、日期函数
1、当前日期函数current_date,能够返回SQL执行的日期,也就是该函数执行时的日期
select current_date
2、当前时间函数current_time,能够取得SQL执行的时间,也就是该函数执行时的时间
select current_time
3、当前日期和时间函数current_timestamp,具有上面两者的功能,同时得到当前的日期和时间
select current_timestamp
4、截取日期元素函数extract,可以截取出日期数据中的一部分,例如“年” “月”,或者“小时”“秒”等。
extract(日期元素 from 日期)
select current_timestamp,
extract(year from current_timestamp),
extract(second from current_timestamp);
5、转换函数
1、类型转换cast函数。
cast(转换前的值 as 想要转换的数据类型)
--将字符串类型转换为数值类型
select cast('01' as signed integer)
--显示结果为“1”
--将字符串类型转换为日期类型
select cast('2009-12-14' as date)
2、将null转换为其他值coalesce函数,该函数会返回参数列表中左侧开始第1 个不是null的值。
coalesce(数据1,数据2,数据3……)
select coalesce(null, 1) as col_1,--返回1
coalesce(null, 'test', null) as col_2,--返回test
coalesce(null, null, '2009-11-01') as col_3;--返回2009-11-01