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; 生成数组