Database
 sql >> Base de Dados >  >> RDS >> Database

Operador SQL menor ou igual a (=) para iniciantes


No SQL, o operador menor ou igual a (<= ) compara duas expressões e retorna TRUE se o operando esquerdo tiver valor menor ou igual ao operando direito; caso contrário, o resultado é FALSE .

Você pode usá-lo para determinar se um valor é menor ou igual a outro valor.

Exemplo


Aqui está um exemplo para demonstrar.
SELECT * FROM city 
WHERE Population <= 455;

Resultado:
+------+--------------------+---------------+-------------+--------------+
| ID   | Name               | CountryCode   | District    | Population   |
|------+--------------------+---------------+-------------+--------------|
| 2317 | West Island        | CCK           | West Island | 167          |
| 2912 | Adamstown          | PCN           | –           | 42           |
| 3333 | Fakaofo            | TKL           | Fakaofo     | 300          |
| 3538 | Città del Vaticano | VAT           | –           | 455          |
+------+--------------------+---------------+-------------+--------------+

Essa consulta retorna todas as cidades com população de 455 ou menos.

Inclusivo


O operador menor ou igual a inclui o valor especificado em sua avaliação. Vimos isso no exemplo anterior quando incluiu a cidade com uma população de 455, que era o valor exato que especificamos.

Se não quiséssemos que essa cidade fosse incluída, precisaríamos diminuir o valor:
SELECT * FROM city 
WHERE Population <= 454;

Resultado:
+------+-------------+---------------+-------------+--------------+
| ID   | Name        | CountryCode   | District    | Population   |
|------+-------------+---------------+-------------+--------------|
| 2317 | West Island | CCK           | West Island | 167          |
| 2912 | Adamstown   | PCN           | –           | 42           |
| 3333 | Fakaofo     | TKL           | Fakaofo     | 300          |
+------+-------------+---------------+-------------+--------------+

Ou podemos simplesmente usar o operador menor que (< ) em vez de:
SELECT * FROM city 
WHERE Population < 455;

Resultado:
+------+-------------+---------------+-------------+--------------+
| ID   | Name        | CountryCode   | District    | Population   |
|------+-------------+---------------+-------------+--------------|
| 2317 | West Island | CCK           | West Island | 167          |
| 2912 | Adamstown   | PCN           | –           | 42           |
| 3333 | Fakaofo     | TKL           | Fakaofo     | 300          |
+------+-------------+---------------+-------------+--------------+

O operador menor que não inclui o valor que você especifica.

Datas


Aqui está um exemplo para demonstrar o uso do operador menor ou igual a para comparar valores de data.
SELECT PetName, DOB 
FROM Pets
WHERE DOB <= '2020-03-15';

Resultado:
+-----------+------------+
| PetName   | DOB        |
|-----------+------------|
| Fetch     | 2019-08-16 |
| Scratch   | 2018-10-01 |
| Wag       | 2020-03-15 |
+-----------+------------+

Cordas


Você também pode usar o <= operador para comparar valores de string. Ao comparar com um valor de string, use aspas ao redor do literal de string.
SELECT * FROM city 
WHERE Name <= 'Ab';

Resultado:
+------+------------------------------+---------------+---------------------+--------------+
| ID   | Name                         | CountryCode   | District            | Population   |
|------+------------------------------+---------------+---------------------+--------------|
| 20   | ´s-Hertogenbosch             | NLD           | Noord-Brabant       | 129170       |
| 548  | Šumen                        | BGR           | Varna               | 94686        |
| 670  | A Coruña (La Coruña)         | ESP           | Galicia             | 243402       |
| 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands      | 127945       |
| 2450 | Šiauliai                     | LTU           | Šiauliai            | 146563       |
| 3097 | Aachen                       | DEU           | Nordrhein-Westfalen | 243825       |
| 3318 | Aalborg                      | DNK           | Nordjylland         | 161161       |
| 3479 | Šostka                       | UKR           | Sumy                | 90000        |
| 3665 | Šahty                        | RUS           | Rostov-na-Donu      | 221800       |
| 3736 | Štšolkovo                    | RUS           | Moskova             | 104900       |
+------+------------------------------+---------------+---------------------+--------------+

Esta consulta retorna todas as cidades menores ou iguais a Ab . Basicamente, ele retorna todas as cidades que começam com letras menores que Ab ou exatamente Ab .

Várias Condições


Se você tiver várias condições, poderá usar vários <= operadores.

Assim:
SELECT * FROM city 
WHERE Name <= 'Ab' AND Population <= 100000;

Resultado:
+------+--------+---------------+------------+--------------+
| ID   | Name   | CountryCode   | District   | Population   |
|------+--------+---------------+------------+--------------|
| 548  | Šumen  | BGR           | Varna      | 94686        |
| 3479 | Šostka | UKR           | Sumy       | 90000        |
+------+--------+---------------+------------+--------------+

Precedência


Você também pode usar uma combinação de operadores ao filtrar os resultados.

Observe que o SQL tem uma ordem de precedência que atribui a diferentes tipos de operadores. Por exemplo, ele avalia qualquer operador condicional antes de qualquer operador lógico, como AND e OR . Além disso, ele avalia qualquer AND operadores antes de qualquer OR operadores.

Os parênteses têm precedência mais alta do que todos os operadores e, portanto, você pode usar parênteses para especificar a ordem na qual cada condição deve ser avaliada.

Considere o seguinte exemplo:
SELECT * FROM city 
WHERE Name <= 'Ab' 
    AND Population <= 100000
    OR District = 'Canary Islands';

Resultado:
+------+------------------------------+---------------+----------------+--------------+
| ID   | Name                         | CountryCode   | District       | Population   |
|------+------------------------------+---------------+----------------+--------------|
| 548  | Šumen                        | BGR           | Varna          | 94686        |
| 660  | Las Palmas de Gran Canaria   | ESP           | Canary Islands | 354757       |
| 672  | Santa Cruz de Tenerife       | ESP           | Canary Islands | 213050       |
| 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands | 127945       |
| 3479 | Šostka                       | UKR           | Sumy           | 90000        |
+------+------------------------------+---------------+----------------+--------------+

Nesta consulta, não forneci parênteses e, portanto, o AND operador foi avaliado antes do OR operador.

Portanto, obtivemos linhas que satisfizeram Name <= 'Ab' AND Population <= 100000 ou District = 'Canary Islands' . Podemos dizer apenas olhando para isso que todas as cidades das Ilhas Canárias serão devolvidas, além de quaisquer cidades que satisfaçam os primeiros critérios.

Isso é como fazer o seguinte:
SELECT * FROM city 
WHERE (Name <= 'Ab' 
    AND Population <= 100000)
    OR District = 'Canary Islands';

Isso nos daria o mesmo resultado da consulta anterior sem parênteses.

Mas veja o que acontece quando movemos os parênteses para o OR doença.
SELECT * FROM city 
WHERE Name <= 'Ab' 
    AND (Population <= 100000
    OR District = 'Canary Islands');

Resultado:
+------+------------------------------+---------------+----------------+--------------+
| ID   | Name                         | CountryCode   | District       | Population   |
|------+------------------------------+---------------+----------------+--------------|
| 548  | Šumen                        | BGR           | Varna          | 94686        |
| 698  | [San Cristóbal de] la Laguna | ESP           | Canary Islands | 127945       |
| 3479 | Šostka                       | UKR           | Sumy           | 90000        |
+------+------------------------------+---------------+----------------+--------------+

Desta vez, obtivemos apenas as cidades que satisfizeram tanto Population <= 100000 OR District = 'Canary Islands' e Name <= 'Ab' .

Negando a condição


Você pode usar o NOT operador para negar a condição fornecida pelo <= operador. Aqui está um exemplo:
SELECT PetName, DOB 
FROM Pets
WHERE NOT DOB <= '2019-12-31';

Resultado:
+-----------+------------+
| PetName   | DOB        |
|-----------+------------|
| Fluffy    | 2020-11-20 |
| Wag       | 2020-03-15 |
| Tweet     | 2020-11-28 |
| Fluffy    | 2020-09-17 |
+-----------+------------+