Opérateurs MySQL

Dans ce chapitre, nous présentons principalement les opérateurs MySQL et leur priorité. MySQL dispose principalement des types d'opérateurs suivants :
  • Opérateurs arithmétiques
  • Opérateurs de comparaison
  • Opérateurs logiques
  • Opérateurs bit à bit

Opérateurs arithmétiques

Les opérateurs arithmétiques pris en charge par MySQL incluent :

Operator Description
+ Addition
- Soustraction
* Multiplication
/ ou DIV Division
% ou MOD Modulo

Dans les opérations de division et de modulo, si le diviseur est 0, il s'agit d'un diviseur illégal et le résultat renvoyé est NULL.

1. Addition

mysql> select 1+2;
+-----+
| 1+2 |
+-----+
|   3 |
+-----+

2. Soustraction

mysql> select 1-2;
+-----+
| 1-2 |
+-----+
|  -1 |
+-----+

3. Multiplication

mysql> select 2*3;
+-----+
| 2*3 |
+-----+
|   6 |
+-----+

4. Division

mysql> select 2/3;
+--------+
| 2/3    |
+--------+
| 0.6667 |
+--------+

5. Quotient

mysql> select 10 DIV 4;
+----------+
| 10 DIV 4 |
+----------+
|        2 |
+----------+

6. Reste

mysql> select 10 MOD 4;
+----------+
| 10 MOD 4 |
+----------+
|        2 |
+----------+

Opérateurs de comparaison

Les instructions conditionnelles dans les instructions SELECT utilisent souvent des opérateurs de comparaison. Grâce à ces opérateurs de comparaison, vous pouvez déterminer quels enregistrements de la table remplissent les conditions. Si le résultat de la comparaison est vrai, 1 est renvoyé ; s'il est faux, 0 est renvoyé ; si le résultat de la comparaison est incertain, NULL est renvoyé.

Symbole Description Remarques
= Égal à
<>, != Différent de
> Supérieur à
< Inférieur à
<= Inférieur ou égal à
>= Supérieur ou égal à
ENTRE Entre deux valeurs >=min&&<=max
NOT BETWEEN Pas entre deux valeurs
IN Dans un ensemble
NOT IN Pas dans un ensemble
<=> Comparer strictement si deux valeurs NULL sont égales Lorsque les deux opérandes sont NULL, le résultat est 1 ; lorsqu'un opérande est NULL, le résultat est 0.
LIKE Correspondance floue
REGEXP ou RLIKE Correspondance d'expression régulière
IS NULL Est NULL
IS NOT NULL N'est pas NULL

1. Égal à

mysql> select 2=3;
+-----+
| 2=3 |
+-----+
|   0 |
+-----+


mysql> select NULL = NULL;
+-------------+
| NULL = NULL |
+-------------+
|        NULL |
+-------------+

2. Différent de

mysql> select 2<>3;
+------+
| 2<>3 |
+------+
|    1 |
+------+

3. Égalité sécurisée

et=La différence est que lorsque les deux opérandes sont NULL, le résultat est 1 au lieu de NULL, et lorsqu'un opérande est NULL, le résultat est 0 au lieu de NULL.

mysql> select 2<=>3;
+-------+
| 2<=>3 |
+-------+
|     0 |
+-------+


mysql> select null=null;
+-----------+
| null=null |
+-----------+
|      NULL |
+-----------+

        
mysql> select null<=>null;
+-------------+
| null<=>null |
+-------------+
|           1 |
+-------------+

4. Inférieur à

mysql> select 2<3;
+-----+
| 2<3 |
+-----+
|   1 |
+-----+

5. Inférieur ou égal à

mysql> select 2<=3;
+------+
| 2<=3 |
+------+
|    1 |
+------+

6. Supérieur à

mysql> select 2>3;
+-----+
| 2>3 |
+-----+
|   0 |
+-----+

7. Supérieur ou égal à

mysql> select 2>=3;
+------+
| 2>=3 |
+------+
|    0 |
+------+

8. BETWEEN

mysql> select 5 between 1 and 10;
+--------------------+
| 5 between 1 and 10 |
+--------------------+
|                  1 |
+--------------------+

9. IN

mysql> select 5 in (1,2,3,4,5);
+------------------+
| 5 in (1,2,3,4,5) |
+------------------+
|                1 |
+------------------+

10. NOT IN

mysql> select 5 not in (1,2,3,4,5);
+----------------------+
| 5 not in (1,2,3,4,5) |
+----------------------+
|                    0 |
+----------------------+

11. IS NULL

mysql> select null is NULL;
+--------------+
| null is NULL |
+--------------+
|            1 |
+--------------+

mysql> select 'a' is NULL;
+-------------+
| 'a' is NULL |
+-------------+
|           0 |
+-------------+

12. IS NOT NULL

mysql> select null IS NOT NULL;
+------------------+
| null IS NOT NULL |
+------------------+
|                0 |
+------------------+

        
mysql> select 'a' IS NOT NULL;
+-----------------+
| 'a' IS NOT NULL |
+-----------------+
|               1 |
+-----------------+

13. LIKE

mysql> select '12345' like '12%';
+--------------------+
| '12345' like '12%' |
+--------------------+
|                  1 |
+--------------------+

mysql> select '12345' like '12_';
+--------------------+
| '12345' like '12_' |
+--------------------+
|                  0 |
+--------------------+

14. REGEXP

mysql> select 'beijing' REGEXP 'jing';
+-------------------------+
| 'beijing' REGEXP 'jing' |
+-------------------------+
|                       1 |
+-------------------------+

mysql> select 'beijing' REGEXP 'xi';
+-----------------------+
| 'beijing' REGEXP 'xi' |
+-----------------------+
|                     0 |
+-----------------------+

Opérateurs logiques

Les opérateurs logiques sont utilisés pour déterminer si une expression est vraie ou fausse. Si l'expression est vraie, le résultat renvoie 1. Si l'expression est fausse, le résultat renvoie 0.

Symbole d'opérateur Description
NOT ou ! NON logique
ET ET logique
OR OU logique
OU EXCLUSIF XOR logique

1. AND

mysql> select 2 and 0;
+---------+
| 2 and 0 |
+---------+
|       0 |
+---------+

        
mysql> select 2 and 1;   
+---------+     
| 2 and 1 |      
+---------+      
|       1 |      
+---------+

2. OR

mysql> select 2 or 0;
+--------+
| 2 or 0 |
+--------+
|      1 |
+--------+

mysql> select 2 or 1;
+--------+
| 2 or 1 |
+--------+
|      1 |
+--------+

mysql> select 0 or 0;
+--------+
| 0 or 0 |
+--------+
|      0 |
+--------+

mysql> select 1 || 0;
+--------+
| 1 || 0 |
+--------+
|      1 |
+--------+

3. NOT

mysql> select not 1;
+-------+
| not 1 |
+-------+
|     0 |
+-------+

mysql> select !0;
+----+
| !0 |
+----+
|  1 |
+----+

4. XOR

mysql> select 1 xor 1;
+---------+
| 1 xor 1 |
+---------+
|       0 |
+---------+

mysql> select 0 xor 0;
+---------+
| 0 xor 0 |
+---------+
|       0 |
+---------+

mysql> select 1 xor 0;
+---------+
| 1 xor 0 |
+---------+
|       1 |
+---------+

mysql> select null or 1;
+-----------+
| null or 1 |
+-----------+
|         1 |
+-----------+

mysql> select 1 ^ 0;
+-------+
| 1 ^ 0 |
+-------+
|     1 |
+-------+

Opérateurs bit à bit

Les opérateurs bit à bit sont des opérateurs qui effectuent des calculs sur des nombres binaires. Les opérations bit à bit convertissent d'abord les opérandes en nombres binaires, effectuent l'opération bit à bit, puis reconvertissent le résultat du calcul de binaire en décimal.

Symbole d'opérateur Description
& ET bit à bit
| OU bit à bit
^ OU exclusif bit à bit
! NON bit à bit
<< Décalage à gauche
>> Décalage à droite

1. AND bit à bit

mysql> select 3&5;
+-----+
| 3&5 |
+-----+
|   1 |
+-----+

2. OR bit à bit

mysql> select 3|5;
+-----+
| 3|5 |
+-----+
|   7 |
+-----+

3. XOR bit à bit

mysql> select 3^5;
+-----+
| 3^5 |
+-----+
|   6 |
+-----+

4. NOT bit à bit

mysql> select ~18446744073709551612;
+-----------------------+
| ~18446744073709551612 |
+-----------------------+
|                     3 |
+-----------------------+

5. Décalage bit à bit vers la droite

mysql> select 3>>1;
+------+
| 3>>1 |
+------+
|    1 |
+------+

6. Décalage bit à bit vers la gauche

mysql> select 3<<1;
+------+
| 3<<1 |
+------+
|    6 |
+------+

Précédence des opérateurs

La priorité la plus faible est ::=。

La précédence la plus élevée est :!、BINARY、 COLLATE。

Autres extensions