English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Expressions 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.SQL file content is as follows:

-- This is the file to create COMPANY table and to populate it with 7 records.
-- Just copy and paste them on psql prompt.
DROP TABLE COMPANY;
CREATE TABLE COMPANY(
   ID INT PRIMARY KEY       NOT NULL,
   NAME                  TEXT           NOT NULL,
   AGE                   INT            NOT NULL,
   ADDRESS               CHAR(50),
   SALARY                REAL
);
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00 ;
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Mark', 25, 'Rich',-Mond ', 65000.00 ;
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'David', 27, 'Texas', 85000.00 ;
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Kim', 22, 'South',-Hall', 45000.00 ;
INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 ;

Créer la table COMPANY, le contenu des données est le suivant :

w3codeboxdb# 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)

Voici l'utilisation d'expressions booléennes (SALARY=10000) pour rechercher des données :

w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY = 10000;
 id | name | age | address | salary
----+-------+-----+----------+--------
  7 | James |  24 | Houston |  10000
(1 row)

Expression numérique

Les expressions numériques sont souvent utilisées dans les requêtes pour des opérations mathématiques :

SELECT numerical_expression as OPERATION_NAME
[FROM table_name WHERE CONDITION] ;

numerical_expression C'est une expression mathématique, voici un exemple :

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

En plus, PostgreSQL intègre certaines fonctions mathématiques, telles que :

  • avg() : retourne la moyenne d'une expression

  • sum() : retourne la somme de la colonne spécifiée

  • count() : retourne le nombre total d'enregistrements de la requête

Voici un exemple de requête pour obtenir le nombre total d'enregistrements de la table COMPANY :

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

Expression de date

L'expression de date retourne la date et l'heure actuelles du système, et peut être utilisée dans diverses opérations de données. Voici un exemple de requête pour obtenir l'heure actuelle :

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