数据库函数大全(更新中)

IF(expr1,expr2,expr3)

SELECT IF(1<2,'yes ','no');

#如果 1<2 满足返回 ‘yes’  否则 ‘no’,也可以用于修改  

UPDATE salary SET sex =IF(Sex = 'm', 'f', 'm');
# sex  = 'm' 改为 ‘f’ , sex  = 'f' 改为 ‘m’

with

with xx_v1 as(
sql查询语句1
),
     xx_v2 as(
sql查询语句2
),
     xx_vn as(
sql查询语句n
)
select * from v3 

to_date --字符串转时间

SELECT to_date('2023-11-02','yyyy-mm-dd')

数学函数[1]

1、绝对值函数ABS(x)和返回圆周率函数PI()

求2,-3.3和-33的绝对值,输入语句如下:

SELECT ABS(2), ABS(-3.3), ABS(-33);

返回圆周率值,输入语句如下:

SELECT pi();

2、平方根函数SQRT(x)和求余函数MOD(x,y)

求9,40和-49的二次平方根,输入语句如下:

SELECT SQRT(9), SQRT(40);

对MOD(31,8),MOD(234, 10),MOD(45.5,6)进行求余运算,输入语句如下:

SELECT MOD(31,8),MOD(234, 10),MOD(45.5,6);

3、获取整数的函数CEIL(x)、CEILING(x)、FLOOR(x)

使用CEIL和CEILING函数返回最小整数,输入语句如下:

SELECT  CEIL(-3.35),CEILING(3.35);

FLOOR(x)返回不大于x的最大整数值,返回值转化为一个BIGINT。

使用FLOOR函数返回最大整数,输入语句如下:

SELECT FLOOR(-3.35), FLOOR(3.35);

4、四舍五入函数ROUND(x)和ROUND(x,y)

使用ROUND(x)函数对操作数进行四舍五入操作,输入语句如下:

SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);

使用ROUND(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y位,输入语句如下:

SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1), ROUND (232.38,-2);

5、符号函数SIGN(x)

使用SIGN函数返回参数的符号,输入语句如下:

SELECT SIGN(-21),SIGN(0), SIGN(21);

6、幂运算函数POW(x,y)、POWER(x,y)和EXP(x)

使用POW和POWER函数进行乘方运算,输入语句如下:

SELECT POW(2,2), POWER(2,2),POW(2,-2), POWER(2,-2);

使用EXP函数计算e的乘方,输入语句如下:

SELECT EXP(3),EXP(-3),EXP(0);

7、对数运算函数LOG(x)

使用LOG(x)函数计算自然对数,输入语句如下:

SELECT LOG(3);

8、角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)

使用RADIANS将角度转换为弧度,输入语句如下:

SELECT RADIANS(90),RADIANS(180);

使用DEGREES将弧度转换为角度,输入语句如下:

SELECT DEGREES(PI()), DEGREES(PI() / 2);

9、正弦函数SIN(x)和反正弦函数ASIN(x)

使用SIN函数计算正弦值,输入语句如下:

SELECT SIN(1), ROUND(SIN(PI()));

使用ASIN函数计算反正弦值,输入语句如下:

SELECT ASIN(0.8414709848078965);

10、余弦函数COS(x)反余弦函数ACOS(x)

使用COS函数计算余弦值,输入语句如下:

SELECT COS(0),COS(PI()),COS(1);

使用ACOS计算反余弦值,输入语句如下:

SELECT ACOS(1),ACOS(0), ROUND(ACOS(0.5403023058681398));

11、正切函数、反正切函数和余切函数

使用TAN函数计算正切值,输入语句如下:

SELECT TAN(0.3), ROUND(TAN(PI()/4));

使用ATAN函数计算反正切值,输入语句如下:

SELECT ATAN(0.30933624960962325), ATAN(1);

使用COT()函数计算正切值,输入语句如下,

SELECT COT(0.3), 1/TAN(0.3),COT(PI() / 4);

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

字符串函数[2]

1、计算字符数的函数char_length(str)和字符串长度(length)的函数

使用CHAR_LENGTH函数计算字符串字符个数,输入语句如下:

SELECT CHAR_LENGTH('date'), CHAR_LENGTH('egg');

使用LENGTH函数计算字符串长度,输入语句如下:

SELECT LENGTH('date'), LENGTH('egg');

2、合并字符串CONCAT(s1,s2,…),CONCAT_WS(x,s1,s2,…)

使用CONCAT函数连接字符串,输入语句如下:

SELECT CONCAT('PostgreSQL', '9.15'),CONCAT('Postgre',NULL, 'SQL');

使用CONCAT_WS函数连接带分隔符的字符串,输入语句如下:

SELECT CONCAT_WS('-', '1st','2nd', '3rd'), CONCAT_WS('*', '1st', NULL, '3rd');

3、获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

使用LEFT函数返回字符串中左边的字符,输入语句如下:

SELECT LEFT('football', 5);

使用RIGHT函数返回字符串中右边的字符,输入语句如下:

SELECT RIGHT('football', 4);

4、填充字符串LPAD(s1,len,s2)和RPAD(s1,len,s2)

使用LPAD函数对字符串进行填充操作,输入语句如下:

SELECT LPAD('hello',4,'??'), LPAD('hello',10,'??');

使用LPAD函数对字符串进行填充操作,输入语句如下:

SELECT RPAD('hello',4,'?'), RPAD('hello',10,'?');

5、删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

使用LTRIM函数删除字符串左边的空格,输入语句如下:

SELECT '(  book  )',CONCAT('(',LTRIM('  book  '),')');

使用LTRIM函数删除字符串右边的空格,输入语句如下:

SELECT '(  book  )',CONCAT('(', RTRIM ('  book  '),')');

使用TRIM函数删除指定字符串两端的空格,输入语句如下:

SELECT '(  book  )',CONCAT('(', TRIM('  book  '),')');

6、删除指定字符串的函数TRIM(s2 from s)

使用TRIM(s1 FROM s)函数删除字符串中两端指定的字符,输入语句如下:

SELECT TRIM('xy' FROM 'xyboxyokxyxy') ;

7、重复生成字符串的函数REPEAT(s,n)

使用REPEAT函数重复生成相同的字符串,输入语句如下:

SELECT REPEAT('PostgreSQL', 3);

8、替换函数REPLATE(s,s1,s2)

使用REPLACE函数进行字符串替代操作,输入语句如下:

SELECT REPLACE('xxx.PostgreSQL.com', 'x', 'w');

9、获取指定子串的函数SUBSTRING(s,n,len)

使用SUBSTRING函数获取指定位置处的子字符串,输入语句如下:

SELECT SUBSTRING('breakfast',5) AS col1, 
SUBSTRING('breakfast',5,3) AS col2,
 SUBSTRING('lunch', -3) AS col3,

10、匹配子串开始位置的函数POSITION(str1 in str)

使用POSITION函数查找字符串中指定子字符串的开始位置,输入语句如下:

SELECT POSITION('ball' IN 'football');

11、字符串逆序的函数REVERSE(s)

使用REVERSE函数反转字符串,输入语句如下:

SELECT REVERSE('abc');

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

日期和时间函数[3]

1、获取当前日期的函数和当前时间的函数

使用日期函数获取系统当期日期,输入语句如下:

SELECT CURRENT_DATE;

使用时间函数获取系统当期日期(返回时带时区),输入语句如下:

SELECT CURRENT_TIME;

使用时间函数获取系统当期日期(返回时不带时区),输入语句如下:

SELECT LOCALTIME;

2、返回当前日期和时间的函数

使用日期时间函数获取当前系统日期和时间,输入语句如下:

SELECT CURRENT_TIMESTAMP,LOCALTIMESTAMP,NOW();

3、获取指定值的日期

使用EXTRACT函数从月份中提取日期,输入语句如下:

SELECT EXTRACT(DAY FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数从月份中提取月份,输入语句如下:

SELECT EXTRACT(MONTH FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数从月份中提取年份,输入语句如下:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数查询指定日期是一年中的第几天,输入语句如下:

SELECT EXTRACT(DOY FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数查询指定日期是一周中的星期几,输入语句如下:

SELECT EXTRACT(DOW FROM TIMESTAMP '2012-09-10 10:18:40');

使用EXTRACT函数查询指定日期是该年的第几季度(1-4),输入语句如下:

SELECT EXTRACT(QUARTER FROM TIMESTAMP '2012-09-10 10:18:40');

4、获取时间的当时时间

 date_trunc --获取时间的当时时间

可用于按时间分组;比如按照时间月分组
示例:
SELECT DATE_TRUNC('month', date_column) as month, COUNT(*) as count
FROM table_name
GROUP BY month
ORDER BY month;

SELECT date_trunc('year',now())

##获取当前年:2023-01-01 00:00:00+00


SELECT date_trunc('month',now())

##获取当前月:2023-12-01 00:00:00+00


SELECT date_trunc('week',now())

##获取当前周:2023-12-04 00:00:00+00

SELECT date_trunc('day',now())

##获取当前日:2023-12-06 00:00:00+00


小时:hour 
分钟:minute 
秒:second

5、日期和时间的运算操作

计算指定日期加上间隔天数后的结果,输入语句如下:

SELECT DATE '2019-09-28' + integer '10';

计算指定日期加上间隔小时后的结果,输入语句如下:

SELECT DATE '2012-09-28' + interval '3 hour';

计算指定日期加上指定时间后的结果,输入语句如下:

SELECT DATE '2012-09-28' + time '06:00';

计算指定日期和时间加上间隔时间后的结果,输入语句如下:

SELECT TIMESTAMP '2012-09-28 02:00:00' + interval '10 hours';

计算指定日期之间的间隔天数,输入语句如下:

SELECT date '2012-11-01' - date '2012-09-10';

计算指定日期减去间隔天数后的结果,输入语句如下:

SELECT DATE '2012-09-28' - integer '10';

计算整数与天数相乘的结果,输入语句如下:

SELECT 15 * interval '2 day';

计算整数与秒数相乘的结果,输入语句如下:

SELECT 50 * interval '2 second';

计算小时数与整数相乘的结果,输入语句如下:

SELECT interval '1 hour' / integer  '2';

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

条件判断函数[4]

1、CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2][ELSE rn] END;

意思是如果expr的值等于某个vn,则返回对应位置THEN后面的结果,如果与所有值都不相等,则返回ELSE后面的rn。

使用CASE value WHEN语句执行分支操作,输入语句如下:

SELECT CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;

2、CASE WHEN v1 THEN r1 [WHEN v2 THEN r2][ELSE rn] END;

使用CASE WHEN语句执行分支操作,输入语句如下:

SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END;

系统信息函数[5]

1、获取PostgreSQL版本号

查看当前PostgreSQL版本号,输入语句如下:

SELECT VERSION();

2、获取用户名的函数

获取当前登陆用户名称,输入语句如下:

SELECT USER, CURRENT_USER;

加密函数[6]

1、加密函数MD5(str)

使用MD5函数加密字符串,输入语句如下:

SELECT MD5 ('mypwd');

2、加密函数ENCODE(str,pswd_str)

使用ENCODE加密字符串,输入语句如下:

SELECT ENCODE('secret','hex'), LENGTH(ENCODE('secret','hex'));

3、解密函数DECODE(cypt_str,pswd_str)

使用DECODE函数解密被ENCODE加密的字符串,输入语句如下:

SELECT DECODE(ENCODE('secret','hex'),'hex');

改变数据类型的函数[7]

CAST(x, AS type)函数将一个类型的值转换为另一个类型的值。

使用CAST函数进行数据类型的转换,将整数类型100转成两位字符串的类型10,SQL语句如下:

SELECT CAST(100 AS CHAR(2));

你可能感兴趣的:(数据库)