表达式是由一个或多个的值、运算符、PostgresSQL 函数组成的。
PostgreSQL 表达式类似一个公式,我们可以将其应用在查询语句中,用来查找数据库中指定条件的结果集。

语法

SELECT 语句的语法格式如下:

  1. SELECT column1, column2, columnN
  2. FROM table_name
  3. WHERE [CONDITION | EXPRESSION];

PostgreSQL 的表达式可以有不同类型,我们接下来会讲到。

布尔表达式

布尔表达式是根据一个指定条件来读取数据:

  1. SELECT column1, column2, columnN
  2. FROM table_name
  3. WHERE SINGLE VALUE MATCHTING EXPRESSION;

创建 COMPANY 表(下载 COMPANY SQL 文件 ),数据内容如下:

  1. runoobdb# select * from COMPANY;
  2. id | name | age | address | salary
  3. ----+-------+-----+-----------+--------
  4. 1 | Paul | 32 | California| 20000
  5. 2 | Allen | 25 | Texas | 15000
  6. 3 | Teddy | 23 | Norway | 20000
  7. 4 | Mark | 25 | Rich-Mond | 65000
  8. 5 | David | 27 | Texas | 85000
  9. 6 | Kim | 22 | South-Hall| 45000
  10. 7 | James | 24 | Houston | 10000
  11. (7 rows)

以下使用了布尔表达式(SALARY=10000)来查询数据:

  1. runoobdb=# SELECT * FROM COMPANY WHERE SALARY = 10000;
  2. id | name | age | address | salary
  3. ----+-------+-----+----------+--------
  4. 7 | James | 24 | Houston | 10000
  5. (1 row)

数字表达式

数字表达式常用于查询语句中的数学运算:

  1. SELECT numerical_expression as OPERATION_NAME
  2. [FROM table_name WHERE CONDITION] ;

numerical_expression 是一个数学运算表达式,实例如下:

  1. runoobdb=# SELECT (17 + 6) AS ADDITION ;
  2. addition
  3. ----------
  4. 23
  5. (1 row)

此外 PostgreSQL 还内置了一些数学函数,如:

  • avg() : 返回一个表达式的平均值
  • sum() : 返回指定字段的总和
  • count() : 返回查询的记录总数

以下实例查询 COMPANY 表的记录总数:

  1. runoobdb=# SELECT COUNT(*) AS "RECORDS" FROM COMPANY;
  2. RECORDS
  3. ---------
  4. 7
  5. (1 row)

日期表达式

日期表达式返回当前系统的日期和时间,可用于各种数据操作,以下实例查询当前时间:

  1. runoobdb=# SELECT CURRENT_TIMESTAMP;
  2. current_timestamp
  3. -------------------------------
  4. 2019-06-13 10:49:06.419243+08
  5. (1 row)