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

Operadores MySQL

Nesta seção, apresentamos os operadores e a prioridade dos operadores no MySQL. O MySQL possui os seguintes tipos de operadores principais:

  • operador aritmético

  • operador de comparação

  • Operadores lógicos

  • operadores de bit

operador aritmético

Os operadores aritméticos suportados pelo MySQL incluem:

operadoração
+adição
-subtração
*multiplicação
/ ou DIVdivisão
% ou MODresto

em operações de divisão e módulo, se o divisor for 0, será um divisor ilegal, e o resultado será NULL.

1e adição

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

2e subtração

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

3e multiplicação

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

4e divisão

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

5e quociente

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

6e resto

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

operador de comparação

As condições de consulta no SELECT frequentemente requerem operadores de comparação. Através desses operadores de comparação, podemos determinar quais registros na tabela atendem aos critérios. Se o resultado da comparação for verdadeiro, retorna 1se for falso, retorna 0, se o resultado da comparação não for determinado, retorna NULL.

símbolodescriçãonotas
=igual
<>, !=não igual
>maior
<menor
<=menor ou igual
>=maior ou igual
BETWEENestá entre os dois valores>=min && <=max
NOT BETWEENnão está entre os dois valores
INestá no conjunto
NOT INnão está no conjunto
<=>comparação rigorosa de valores NULL para verificar se são iguaisquando os dois operandos são NULL, o valor resultante é1e quando um operando é NULL, o valor resultante é 0
LIKEcombinação vaga
REGEXP ou RLIKEcombinação regular
IS NULLvazio
IS NOT NULLnão vazio

1e igual

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

2e não igual

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

3e igual a segurança

A diferença entre = e NULL está na condição em que os dois operandos são NULL, o valor resultante é 1 não ser NULL, enquanto um código de operação for NULL, seu valor retornado é 0 e não é NULL.

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

4e menor

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

5e menor ou igual

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

6e maior

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

7e maior ou igual

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

8e BETWEEN

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

9e IN

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

10e NOT IN

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

11e IS NULL

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

12e 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 |
+-----------------+

13e LIKE

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

14e REGEXP

mysql> select 'pequim' REGEXP 'jing';
+-------------------------+
| 'pequim' REGEXP 'jing' |
+-------------------------+
|                       1 |
+-------------------------+
mysql> select 'pequim' REGEXP 'xi';
+-----------------------+
| 'pequim' REGEXP 'xi' |
+-----------------------+
|                                                                         0 |
+-----------------------+

Operadores lógicos

Operadores lógicos usados para determinar a verdadeira ou falsa de uma expressão. Se a expressão for verdadeira, o resultado retorna 1Se a expressão for falsa, o resultado retorna 0.

símbolos de operaçãoação
NOT ou !não lógico
ANDe lógico
ORou lógico
XORou exclusivo lógico

1e com

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

2ou ou

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 |
+--------+

3bitwise NOT

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

4bitwise XOR

mysql> select 1 xor 1;
+---------+
| 1 xor 1 |
+---------+
| 0 | 0 |
+---------+
mysql> select 0 xor 0;
+---------+
| 0 xor 0 |
+---------+
| 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 |
+-------+

operadores de bit

Os operadores de bit operam sobre números binários. A operação de bit primeiro converte os operandos em números binários, realiza a operação de bit e, em seguida, converte o resultado de volta para um número decimal.

símbolos de operaçãoação
&bitwise AND
|bitwise OR
^bitwise XOR
!NOT
<<left shift
>>right shift

1bitwise AND

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

2bitwise OR

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

3bitwise XOR

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

4bitwise NOT

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

5shifting right

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

6shifting left

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

Prioridade de Operadores

A prioridade mais baixa é: :=.

A prioridade mais alta é: !, BINARY, COLLATE.