博客
关于我
PostgreSQL学习总结(9)—— PostgreSQL 运算符与表达式
阅读量:795 次
发布时间:2023-03-03

本文共 2825 字,大约阅读时间需要 9 分钟。

PostgreSQL 运算符指南:算术、比较、逻辑与位运算符全面解析

PostgreSQL 是一款强大的开源数据库管理系统,其运算符系统完善且功能强大。本文将详细解析 PostgreSQL 的核心运算符,包括算术运算符、比较运算符、逻辑运算符以及位运算符,帮助开发者更好地理解和应用这些操作符。


一、算术运算符

算术运算符用于执行基本的数学运算,常见的包括加、减、乘、除、取模以及指数运算等。以下是主要的算术运算符及其示例:

  • +(加):用于将两个数值相加。例如,a + b 会返回 ab 的和。
  • -(减):用于从一个数值中减去另一个数值。例如,a - b 会返回 a 减去 b 的结果。
  • *(乘):用于将两个数值相乘。例如,a * b 会返回 ab 的乘积。
  • /(除):用于将一个数值除以另一个数值。需要注意的是,除法可能会返回浮点数结果。
  • %(取模):用于返回除法运算中被除数的余数。例如,b % a 会返回 b 除以 a 时的余数。
  • ^(指数):用于计算一个数的另一个数的幂。例如,a ^ b 会返回 ab 次幂。
  • |/(平方根):用于计算一个数的平方根。例如,|/ 25.0 会返回 5。
  • ||/(立方根):用于计算一个数的立方根。例如,||/ 27.0 会返回 3。
  • !(阶乘):用于计算一个数的阶乘。例如,5! 会返回 120。
  • !!(双阶乘):用于计算一个数的双阶乘(从该数递减到1的乘积)。例如,!!5 会返回 120。

示例

SELECT 2 + 3; -- 结果为 5SELECT 2 * 3; -- 结果为 6SELECT 10 / 5; -- 结果为 2SELECT 12 % 5; -- 结果为 2SELECT 2 ^ 3; -- 结果为 8SELECT |/ 25.0; -- 结果为 5SELECT ||/ 27.0; -- 结果为 3SELECT 5 !; -- 结果为 120SELECT !!5; -- 结果为 120

二、比较运算符

比较运算符用于比较两个数值的大小关系,常见的包括等于、不等于、大于、小于、大于等于、小于等于等。这些运算符在 WHERE 子句中尤为重要,用于过滤数据。

  • =(等于):用于检查两个数值是否相等。例如,(a = b) 会返回 false,而 (a != b) 会返回 true
  • !=(不等于):用于检查两个数值是否不相等。
  • <(小于):用于检查一个数值是否小于另一个数值。
  • >(大于):用于检查一个数值是否大于另一个数值。
  • <=(小于等于):用于检查一个数值是否小于或等于另一个数值。
  • >=(大于等于):用于检查一个数值是否大于或等于另一个数值。

示例

SELECT * FROM COMPANY WHERE SALARY > 50000; -- 读取薪水大于50000的数据SELECT * FROM COMPANY WHERE SALARY = 20000; -- 读取薪水等于20000的数据SELECT * FROM COMPANY WHERE SALARY != 20000; -- 读取薪水不等于20000的数据SELECT * FROM COMPANY WHERE SALARY < 20000; -- 读取薪水小于20000的数据SELECT * FROM COMPANY WHERE SALARY >= 65000; -- 读取薪水大于等于65000的数据

三、逻辑运算符

逻辑运算符用于在查询中组合多个条件,常见的包括逻辑与(AND)、逻辑或(OR)和逻辑非(NOT)。这些运算符在构建复杂的过滤条件时非常有用。

  • AND:用于将多个条件与一起执行。如果所有条件都为 true,则结果为 true
  • NOT:用于否定一个条件的结果。例如,(NOT (a > b)) 会返回 true 如果 a <= b
  • OR:用于将多个条件或一起执行。如果至少有一个条件为 true,则结果为 true

示例

-- 读取年龄大于等于25且薪水大于等于6500的数据SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 6500;-- 读取年龄大于等于25或薪水大于6500的数据SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 6500;-- 读取薪水不为NULL的数据SELECT * FROM COMPANY WHERE SALARY IS NOT NULL;

四、位运算符

位运算符作用于二进制数,主要用于处理整数的每一位。常见的位运算符包括按位与(&)、按位或(|)、按位异或(^)和取反(~)等。

  • &(按位与):用于对两个数的每一位进行“与”运算。例如,a & b 会返回两个数按位与的结果。
  • |(按位或):用于对两个数的每一位进行“或”运算。例如,a | b 会返回两个数按位或的结果。
  • ^(按位异或):用于对两个数的每一位进行“异或”运算。例如,a ^ b 会返回两个数按位异或的结果。
  • ~(取反):用于对一个数的每一位取反。例如,~a 会返回 a 的二进制取反结果。
  • <<(左移):用于将一个数的所有二进制位左移若干位。例如,a << 2 会将 a 的每一位左移两位。
  • >>(右移):用于将一个数的所有二进制位右移若干位。例如,a >> 2 会将 a 的每一位右移两位。

示例

-- 示例:60与13的按位与、或、异或运算SELECT 60 & 13; -- 结果为 12SELECT 60 | 13; -- 结果为 61SELECT 60 ^ 13; -- 结果为 49SELECT ~60; -- 结果为 -61SELECT 60 << 2; -- 结果为 240SELECT 60 >> 2; -- 结果为 15

五、PostgreSQL 表达式

PostgreSQL 表达式是由值、运算符和函数组成的,可以应用在查询语句中以获取指定结果集。

1. 数字表达式

数字表达式用于执行数学运算,例如加法、乘法、取模等。PostgreSQL 还提供了许多内置函数,如 avg()sum()count() 等。

示例

SELECT (17 + 6) AS ADDITION; -- 返回 23SELECT COUNT(*) AS RECORDS FROM COMPANY; -- 返回数据记录总数

2. 日期表达式

日期表达式用于获取当前日期和时间,常用于数据操作。

示例

SELECT CURRENT_TIMESTAMP; -- 返回当前时间戳

通过以上运算符的理解和应用,您可以更高效地使用 PostgreSQL 进行数据查询和处理。无论是简单的算术运算,还是复杂的逻辑组合,PostgreSQL 都提供了强大的支持。

转载地址:http://rsxfk.baihongyu.com/

你可能感兴趣的文章