MySQL E Operador

Resumo : neste tutorial, você aprenderá como o ANDoperador MySQL combina múltiplas expressões booleanas para filtrar dados.

Introdução ao operador MySQL AND

O MySQL não possui um tipo booleano integrado. Em vez disso, ele usa o número zero como FALSO e valores diferentes de zero como VERDADEIRO.

O ANDoperador é um operador lógico que combina duas ou mais expressões booleanas e retorna 1, 0 ou NULL:

A AND B

Nesta expressão, A e B são chamados de operandos. Eles podem ser valores literais ou expressões.

O operador lógico AND retorna 1 se A e B forem diferentes de zero e não NULL. Retorna 0 se um dos operandos for zero; caso contrário, retornará NULL.

O operador lógico AND retorna 1 se A e B forem diferentes de zero e NOT NULL. Por exemplo:

SELECT 1 AND 1;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
+---------+
| 1 AND 1 |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

O operador lógico AND retorna 0 se A ou B for zero ou se A e B forem zero:

SELECT 1 AND 0, 0 AND 1, 0 AND 0, 0 AND NULL;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
+---------+---------+---------+------------+
| 1 AND 0 | 0 AND 1 | 0 AND 0 | 0 AND NULL |
+---------+---------+---------+------------+
|       0 |       0 |       0 |          0 |
+---------+---------+---------+------------+
1 row in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

O operador lógico AND retorna NULL se um dos operandos for diferente de zero ou se ambos os operandos forem NULL.

SELECT 1 AND NULL, NULL AND NULL;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
+------------+---------------+
| 1 AND NULL | NULL AND NULL |
+------------+---------------+
|       NULL |          NULL |
+------------+---------------+
1 row in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

A tabela a seguir ilustra os resultados do ANDoperador ao combinar verdadeiro, falso e nulo.

verdadeiro FALSO NULO
verdadeiro verdadeiro FALSO NULO
FALSO FALSO FALSO FALSO
NULO NULO FALSO NULO

Na prática, você usará o ANDoperador na WHEREcláusula das instruções SELECT, UPDATE, DELETEpara formar uma condição. Além disso, você pode usar o ANDoperador nas condições das cláusulas INNER JOIN e  LEFT JOIN.

Ao avaliar uma expressão que contém o ANDoperador, o MySQL para de avaliar as partes restantes da expressão assim que pode determinar o resultado.

Isso é chamado de avaliação de curto-circuito. Em outras palavras, o ANDoperador está em curto-circuito. Por exemplo:

SELECT 1 = 0 AND 1 / 0 ;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

+-----------------+
| 1 = 0 AND 1 / 0 |
+-----------------+
|               0 |
+-----------------+
1 row in set (0.01 sec)Linguagem de código:  texto simples  ( texto simples )

Neste exemplo, o MySQL avalia apenas a primeira parte 1 = 0da expressão 1 = 0 AND 1  / 0.

Como a expressão 1 = 0retorna 0, o MySQL pode determinar o resultado de toda a expressão, que é 0.

Portanto, o MySQL não precisa avaliar a parte restante da expressão, que é 1/0; emitiria um erro de divisão por zero.

Exemplos de operadores MySQL AND

Vamos usar a customerstabela do banco de dados de exemplo para a demonstração.

A instrução a seguir usa a ANDoperadora para encontrar clientes localizados na Califórnia (CA), EUA:

SELECT 
    customername, 
    country, 
    state
FROM
    customers
WHERE
    country = 'USA' AND 
    state = 'CA';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

+------------------------------+---------+-------+
| customername                 | country | state |
+------------------------------+---------+-------+
| Mini Gifts Distributors Ltd. | USA     | CA    |
| Mini Wheels Co.              | USA     | CA    |
| Technics Stores Inc.         | USA     | CA    |
| Toys4GrownUps.com            | USA     | CA    |
| Boards & Toys Co.            | USA     | CA    |
| Collectable Mini Designs Co. | USA     | CA    |
| Corporate Gift Ideas Co.     | USA     | CA    |
| Men 'R' US Retailers, Ltd.   | USA     | CA    |
| The Sharp Gifts Warehouse    | USA     | CA    |
| West Coast Collectables Co.  | USA     | CA    |
| Signal Collectibles Ltd.     | USA     | CA    |
+------------------------------+---------+-------+
11 rows in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

Ao usar o ANDoperador, você pode combinar mais de duas expressões booleanas. Por exemplo, a consulta a seguir retorna os clientes localizados na Califórnia, EUA, e com limite de crédito superior a 100 mil.

SELECT 
    customername, 
    country, 
    state, 
    creditlimit
FROM
    customers
WHERE
    country = 'USA' AND 
    state = 'CA' AND 
    creditlimit > 100000;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

+------------------------------+---------+-------+-------------+
| customername                 | country | state | creditlimit |
+------------------------------+---------+-------+-------------+
| Mini Gifts Distributors Ltd. | USA     | CA    |   210500.00 |
| Collectable Mini Designs Co. | USA     | CA    |   105000.00 |
| Corporate Gift Ideas Co.     | USA     | CA    |   105000.00 |
+------------------------------+---------+-------+-------------+
3 rows in set (0.00 sec)Linguagem de código:  texto simples  ( texto simples )

Resumo

  • Use o ANDoperador para combinar duas expressões booleanas. O ANDoperador retorna verdadeiro quando ambas as expressões são verdadeiras; caso contrário, retornará falso.
  • Use o ANDoperador para formar condições na WHEREcláusula da SELECTinstrução.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *