PostgreSQL 表达式

表达式是由一个或多个的值、运算符、PostgresSQL 函数组成的。

PostgreSQL 表达式类似一个公式,我们可以将其应用在查询语句中,用来查找数据库中指定条件的结果集。

语法

SELECT 语句的语法格式如下:

									SELECT column1, column2, columnN
FROM table_name
WHERE [CONDITION_EXPRESSION];
								

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

布尔表达式

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

									SELECT column1, column2, columnN
FROM table_name
WHERE SINGLE VALUE MATCHTING EXPRESSION;
								

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

									yssmxdb# select * from COMPANY;
 id_name _age_address  _salary
----+-------+-----+-----------+--------
  1_Paul _ 32_California|  20000
  2_Allen_ 25_Texas    _ 15000
  3_Teddy_ 23_Norway   _ 20000
  4_Mark _ 25_Rich-Mond_ 65000
  5_David_ 27_Texas    _ 85000
  6_Kim  _ 22_South-Hall|  45000
  7_James_ 24_Houston  _ 10000
(7 rows)
								

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

										yssmxdb=# SELECT * FROM COMPANY WHERE SALARY = 10000;
 id_name _age_address _salary
----+-------+-----+----------+--------
  7_James_ 24_Houston _ 10000
(1 row)
									

数字表达式

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

										SELECT numerical_expression as  OPERATION_NAME
[FROM table_name WHERE CONDITION] ;
									

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

										yssmxdb=# SELECT (17 + 6) AS ADDITION ;
 addition 
----------
       23
(1 row)
									

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

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

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

										yssmxdb=# SELECT COUNT(*) AS "RECORDS" FROM COMPANY;
 RECORDS
---------
       7
(1 row)
									

日期表达式

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

										yssmxdb=# SELECT CURRENT_TIMESTAMP;
       current_timestamp       
-------------------------------
 2019-06-13 10:49:06.419243+08
(1 row)