sql >> Base de Datos >  >> RDS >> Database

Operador SQL menor o igual que (=) para principiantes

En SQL, el operador menor o igual que (<= ) compara dos expresiones y devuelve TRUE si el operando izquierdo tiene un valor menor o igual que el operando derecho; de lo contrario, el resultado es FALSE .

Puede usarlo para determinar si un valor es menor o igual que otro valor.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

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

Esta consulta devuelve todas las ciudades que tienen una población de 455 o menos.

Inclusivo

El operador menor o igual que incluye el valor especificado en su evaluación. Vimos esto en el ejemplo anterior cuando incluía la ciudad con una población de 455, que era el valor exacto que especificamos.

Si no quisiéramos que se incluyera esta ciudad, tendríamos que reducir el 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          |
+------+-------------+---------------+-------------+--------------+

O simplemente podríamos usar el operador menor que (< ) en su lugar:

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

El operador menor que no incluye el valor que especifica.

Fechas

Aquí hay un ejemplo para demostrar el uso del operador menor o igual que para comparar valores de fecha.

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

Cuerdas

También puede usar el <= operador para comparar valores de cadena. Al comparar con un valor de cadena, use comillas alrededor del literal de cadena.

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 devuelve todas las ciudades que son menores o iguales que Ab . Básicamente, devuelve todas las ciudades que comienzan con letras inferiores a Ab o exactamente Ab .

Múltiples Condiciones

Si tiene múltiples condiciones, puede usar múltiples <= operadores.

Así:

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

Precedencia

También puede utilizar una combinación de operadores al filtrar los resultados.

Tenga en cuenta que SQL tiene un orden de precedencia que asigna a diferentes tipos de operadores. Por ejemplo, evalúa cualquier operador condicional antes que cualquier operador lógico, como AND y OR . Además, evalúa cualquier AND operadores antes de cualquier OR operadores.

Los paréntesis tienen una precedencia más alta que todos los operadores, por lo que puede usar paréntesis para especificar el orden en el que se debe evaluar cada condición.

Considere el siguiente ejemplo:

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

En esta consulta, no proporcioné ningún paréntesis, por lo que AND el operador fue evaluado antes del OR operador.

Por lo tanto, obtuvimos filas que satisfacían Name <= 'Ab' AND Population <= 100000 o District = 'Canary Islands' . Podemos decir con solo mirar esto que se devolverán todas las ciudades de las Islas Canarias, además de las ciudades que cumplan con el primer criterio.

Esto es como hacer lo siguiente:

SELECT * FROM city 
WHERE (Name <= 'Ab' 
    AND Population <= 100000)
    OR District = 'Canary Islands';

Eso nos daría el mismo resultado que la consulta anterior sin paréntesis.

Pero mira lo que sucede cuando movemos los paréntesis al OR condición.

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

Esta vez obtuvimos solo aquellas ciudades que satisficieron tanto Population <= 100000 OR District = 'Canary Islands' y Name <= 'Ab' .

Negar la Condición

Puedes usar el NOT operador para negar la condición proporcionada por <= operador. He aquí un ejemplo:

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