PostgreSQL-10-数据运算与函数

1、算数运算符

SELECT 5+5;   加法

SELECT 10-5;  减法

SELECT 2*3;   乘法

SELECT 10.0/3;  除法

SELECT 10%7;  取余数

SELECT 2^3;   幂

SELECT |/25.0; 平方根

SELECT ||/27.0; 三次方根

SELECT 5!;    阶乘

 

CREATE TABLE c1(a numeric,b numeric);

INSERT INTO c1 VALUES(2,3),(3,4),(5,6);  创建表格

ALTER TABLE c1 ADD c numeric;

UPDATE c1 SET c = a*b + a^b;

通过update语句来计算列

 

 

2、比较运算符

SELECT 10 = 20;   等于

SELECT 10 != 20;  不等于

SELECT 10 <> 20;  不等于

SELECT 10 < 20;   小于

SELECT 10 > 20;   大于

SELECT 10 <= 20;  小于等于

SELECT 10 >= 20;  大于等于

返回t或f

 

 

3、逻辑运算符

SELECT * FROM company3;  查看数据

SELECT * FROM company3 WHERE salary >15000 AND salary < 30000;  AND → 且

SELECT * FROM company3 WHERE salary >25000 OR salary < 20000;  OR → 或

SELECT * FROM company3 WHERE NOT salary >25000;  NOT → 否

 

 

4、字符串运算及函数(列举常用的函数)

SELECT 'A'||'B';  字符串连接,适用于字符串与数字连接

SELECT CONCAT(10,'a','hello',20.0);  连接所有参数,个数不限,类型不限

 

SELECT LOWER('ABCD');  将字符转换成小写

SELECT UPPER('ABCD');  将字符转换成大写

SELECT INITCAP('abcd');  将字符串中每个单词的首字母大写

 

SELECT REPLACE('aaaxxx','a','_');  替换字符串:SELECT REPLACE('aaaxxx','a','_');

SELECT POSITION('lo' in 'hello');  给定子字符串在字符串的位置

SELECT SUBSTRING('hello world' FROM 3 FOR 10);  截取字符串,从from位置截取长度for

SELECT TRIM('  asd ');  删除头尾部空格 → TRIM(BOTH '   asd  ')

       SELECT TRIM(LEADING '  asd '),LENGTH(TRIM(LEADING '  asd ')); 删除头部空格

       SELECT TRIM(TRAILING '  asd '),LENGTH(TRIM(TRAILING '  asd ')); 删除尾部空格

       SELECT TRIM('aaahelloworldaaa','a');  可以指定删除字符,默认删除空格

 

SELECT LENGTH('ABCD');  字符串中字符的个数

SELECT LEFT('HELLO',2);  返回字符串前n个字符,n为负数时返回除最后|n|个字符以外的所有字符

SELECT RIGHT('HELLO',2);  返回字符串后n个字符,n为负数时返回除最前|n|个字符意外的所有字符

 

SELECT CAST(10.0 AS text); 

SELECT CAST(salary AS int) FROM company3;  类型转换

 

 

5、数值处理函数

SELECT ABS(-10);  绝对值

SELECT PI();   返回π

SELECT SQRT(4);  返回平方根

SELECT ROUND(1.24),ROUND(1.24,3); 四舍五入:第二个参数为保留的小数位数,默认四舍五入到整数

SELECT POW(2,3),EXP(2);  幂运算函数,2的3次方;exp(a)返回e的a次方值

SELECT LOG(2)    自然对数函数,参数大于零

SELECT SIN(3.1415),ASIN(1),COS(3.1415),ACOS(1),TAN(1),ATAN(1.55);  三角函数

SELECT SIGN(10),SIGN(-10),SIGN(0);  符号函数,返回参数的符号,值为负、零或正时分别返回-1,0,1

SELECT RADIANS(90),RADIANS(180),DEGREES(PI()),DEGREES(PI()/2); RADIANS()将角度转换为弧度/DEGREES()将弧度转换为角度

 

SELECT MAX(salary),MIN(salary),COUNT(salary),AVG(salary),SUM(salary),STDDEV(salary)

       FROM company3;  最大值、最小值、计数、均值、求和、标准差

SELECT ARRAY_AGG(salary) FROM company3; 生成数组

posted @ 2019-04-07 08:16  swefii  阅读(5306)  评论(0编辑  收藏  举报