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

Opérateurs PostgreSQL

Un opérateur est un symbole qui informe le compilateur d'exécuter une opération mathématique ou logique spécifique.

Les opérateurs PostgreSQL sont des mots-clés ou des caractères réservés, généralement utilisés dans les clauses WHERE, en tant que conditions de filtrage.

Les opérateurs courants incluent :

  • opérateurs arithmétiques

  • opérateur de comparaison

  • id | name | age | address | salary

  • opérateurs de calcul binaire

opérateurs arithmétiques

Hypothèse de la variable a 2La variable b est 3,alors :

OpérateurDescriptionExemple
+ additiona + b Résultat 5
-soustractiona - b Résultat -1
*multiplicationa * b Résultat 6
/divisionb / a Résultat 1
%mod (reste)b % a Résultat 1
^exponentiellea ^ b Résultat 8
|/racine carrée|/ 25.0 Résultat de la factorielle 5
||/racine cubique||/ 27.0 Résultat de la factorielle 3
!factorielle5 Résultat de la factorielle ! 120
!!factorielle (opérateur préfixé)!! 5 Le résultat est 120

Exemple en ligne

w3codeboxdb=# select 2+3;
 ?column?
----------
        5
(1 row)
w3codeboxdb=# select 2*3;
 ?column?
----------
        6
(1 row)
w3codeboxdb=# select 10/5;
 ?column?
----------
        2
(1 row)
w3codeboxdb=# select 12%5;
 ?column?
----------
        2
(1 row)
w3codeboxdb=# select 2^3;
 ?column?
----------
        8
(1 row)
w3codeboxdb=# select |/ 25.0;
 ?column?
----------
        5
(1 row)
w3codeboxdb=# select ||/ 27.0;
 ?column?
----------
        3
(1 row)
w3codeboxdb=# select 5 !;
 ?column?
----------
      120
(1 row)
w3codeboxdb=# select !!5;
 ?column?
----------
      120
(1 row)

opérateur de comparaison

Hypothèse de la variable a 10La variable b est 20, alors :

OpérateurDescriptionExemple
=égal à(a = b) est false.
!=inégal à(a != b) est true.
<>inégal à(a <> b) est true.
>supérieur(a > b) est false.
<inférieur(a < b) est true.
>= supérieur ou égal à(a >= b) est false.
<=inférieur ou égal à(a <= b) est true.

Exemple en ligne

Le contenu du fichier COMPANY.SQL est le suivant :

-- 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
   NAME
   AGE
   ADDRESS50),
   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 );

Create the COMPANY table, the data content is as follows:

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)

Lecture du champ SALARY supérieur à 5Read the SALARY field not equal to

w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY > 5FROM COMPANY WHERE SALARY <>
 id | name | age | adresse | salary
----+-------+-----+-----------+--------
  4 | Mark |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas |  85000
(2 rows)

Lecture du champ SALARY égal à 2Read the SALARY field not equal to

w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY = 2FROM COMPANY WHERE SALARY <>
 id | name | age | address | salary
 ----+-------+-----+-------------+--------
   1 | Paul  |  32 | California |  20000
   3 | Teddy |  23 | Norway      |  20000
(2 rows)

FROM COMPANY WHERE SALARY = 2Read the SALARY field not equal to

w3codeboxdb=# SELECT * 0000 data: 2FROM COMPANY WHERE SALARY <>
 id | name | age | address | salary
----+-------+-----+-------------+--------
  2 | Allen |  25 | Texas       |  15000
  4 | Mark |  25 | Rich-Mond   |  65000
  5 | David |  27 | Texas       |  85000
  6 | Kim   |  22 | South-Hall  |  45000
  7 | James |  24 | Houston     |  10000
(5 rows)
w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY != 2FROM COMPANY WHERE SALARY <>
 0000;
----+-------+-----+------------+--------
  2 | Allen |  25 Mond  15000
  4 | Mark |  25 | Rich-id | name | age | address | salary  65000
  5 | David |  27 Mond  85000
  6 | Kim   |  22 | South-| Texas  45000
  7 | James |  24 Hall  10000
(5 rows)

| Houston  65Read the SALARY field greater than or equal to

w3codeboxdb=# SELECT * 000 data: 65FROM COMPANY WHERE SALARY >=
 000;
----+-------+-----+-----------+--------
  4 | Mark |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas |  85000
(2 rows)

id | name | age | address | salary

Logical Operator

PostgreSQL logical operators include the following:Serial Number
1

SQL uses a three-valued logic system, including true, false, and null, where null represents 'unknown'.

Operator & Description

Logical AND operator. If both operands are non-zero, the condition is true.



2

NOT

The WHERE clause in PostgresSQL can include multiple filtering conditions with AND.

Logical NOT operator. It reverses the logical state of the operand. If the condition is true, the logical NOT operator will make it false.
3

OR

PostgresSQL has NOT EXISTS, NOT BETWEEN, NOT IN, etc. operators.

Logical OR operator. If either of the operands is non-zero, the condition is true.

The WHERE clause in PostgresSQL can include multiple filtering conditions with OR.

aba SQL uses a three-valued logic system, including true, false, and null, where null represents 'unknown'. ba OR b
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
TRUENULLNULLTRUE
FALSEFALSEFALSEFALSE
FALSENULLFALSENULL
NULLNULLNULLNULL
aNOT a
TRUEFALSE
FALSETRUE
NULLNULL

Exemple en ligne

COMPANY.SQL file content 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
   NAME
   AGE
   ADDRESS50),
   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 );

Create the COMPANY table, the data content is as follows:

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)

Read data where the AGE field is greater than or equal to  25 and the SALARY field is greater than or equal to 6500 data:

w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 6500;
 id | name | age | address | salary
----+-------+-----+-----------------------------------------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas |  15000
  4 | Mark |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas |  85000
(4 rows)

Read data where the AGE field is greater than or equal to  25 or the SALARY field is greater than 6500 data:

w3codeboxdb=# SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 6500;
 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
  8 | Paul  |  24 | Houston     |  20000
  9 | James |  44 | Norway      |   5000
 10 | James |  45 | Texas       |   5000
(10 rows)

Read data where the SALARY field is not NULL:

w3codeboxdb=# SELECT * FROM COMPANY WHERE SALARY IS NOT NULL;
 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
  8 | Paul  |  24 | Houston     |  20000
  9 | James |  44 | Norway      |   5000
 10 | James |  45 | Texas       |   5000
(10 rows)

Opérateur de bit

Les opérateurs de bit agissent sur les bits et exécutent des opérations bit par bit. Les tableaux de vérité des opérateurs &、 | et ^ sont les suivants :

pqp & qp | q
0000
0101
1111
1001

Supposons si A = 60, et B = 13,représentés maintenant en format binaire, ils sont les suivants :

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

Le tableau suivant montre les opérateurs de bit pris en charge par PostgreSQL. Supposons que la variable A La valeur de 60, variable B La valeur de 13,alors :

OpérateurDescriptionExemple
&

Opération ET binaire, effectue une opération ET binaire sur chaque bit. Les règles d'opération :

0&0=0;   
0&1=0;    
1&0=0;     
1&1=1;
(A & B) On obtient 12,ce qui est 0000 1100
|

Opérateur de OU binaire, effectue une opération OU binaire sur chaque bit. Les règles d'opération :

0|0=0;   
0|1=1;   
1|0=1;    
1|1=1;
(A | B) On obtient 61,ce qui est 0011 1101
#

Opérateur de XOR, effectue une opération XOR binaire sur chaque bit. Les règles d'opération :

0#0=0;   
0#1=1;   
1#0=1;  
1#1=0;
(A # B) On obtient 49,ce qui est 0011 0001
~

Opérateur de négation, effectue une opération de négation binaire sur chaque bit. Les règles d'opération :

~1=0;   
~0=1;
(~A ) On obtient -61,ce qui est 1100 0011,forme de complément à deux entiers signés.
<<Opérateur de déplacement à gauche en binaire. Déplace tous les bits binaires d'un opérande d'un certain nombre de places vers la gauche (les bits binaires de gauche sont ignorés, et des zéros sont ajoutés à droite).A << 2 On obtient 240,ce qui est 1111 0000
>>Opérateur de déplacement à droite en binaire. Déplace tous les bits binaires d'un nombre d'un certain nombre de places vers la droite, les zéros sont ajoutés à gauche pour les nombres positifs, et les zéros sont ajoutés à gauche pour les nombres négatifs.1,les bits de droite sont ignorés.A >> 2 On obtient 15,ce qui est 0000 1111

Exemple en ligne

w3codeboxdb=# select 60 | 13;
 ?column?
----------
       61
(1 row)
w3codeboxdb=# select 60 & 13;
 ?column?
----------
       12
(1 row)
w3codeboxdb=#  select  (~60);
 ?column?
----------
      -61
(1 row)
w3codeboxdb=# select  (60 << 2);
 ?column?
----------
      240
(1 row)
w3codeboxdb=# select  (60 >> 2);
 ?column?
----------
       15
(1 row)
w3codeboxdb=#  select 60 # 13;
 ?column?
----------
       49
(1 row)