Database
 sql >> Database >  >> RDS >> Database

Operatore SQL minore o uguale a (=) per principianti

In SQL, l'operatore minore o uguale a (<= ) confronta due espressioni e restituisce TRUE se l'operando di sinistra ha un valore inferiore o uguale all'operando di destra; in caso contrario, il risultato è FALSE .

Puoi usarlo per determinare se un valore è minore o uguale a un altro valore.

Esempio

Ecco un esempio da dimostrare.

SELECT * FROM city 
WHERE Population <= 455;

Risultato:

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

Questa query restituisce tutte le città con una popolazione di 455 abitanti o inferiore.

Incluso

L'operatore minore o uguale a include il valore specificato nella sua valutazione. Lo abbiamo visto nell'esempio precedente quando includeva la città con una popolazione di 455 abitanti, che era il valore esatto che avevamo specificato.

Se non volessimo che questa città fosse inclusa, avremmo bisogno di abbassare il valore:

SELECT * FROM city 
WHERE Population <= 454;

Risultato:

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

Oppure potremmo semplicemente usare l'operatore less than (< ) invece:

SELECT * FROM city 
WHERE Population < 455;

Risultato:

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

L'operatore minore di non include il valore specificato.

Date

Ecco un esempio per dimostrare l'utilizzo dell'operatore minore o uguale a per confrontare i valori della data.

SELECT PetName, DOB 
FROM Pets
WHERE DOB <= '2020-03-15';

Risultato:

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

Stringhe

Puoi anche usare il <= operatore per confrontare i valori delle stringhe. Quando si confronta con un valore stringa, utilizzare le virgolette attorno alla stringa letterale.

SELECT * FROM city 
WHERE Name <= 'Ab';

Risultato:

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

Questa query restituisce tutte le città minori o uguali a Ab . Fondamentalmente, restituisce tutte le città che iniziano con lettere inferiori a Ab o esattamente Ab .

Condizioni multiple

Se hai più condizioni, puoi utilizzare più <= operatori.

In questo modo:

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

Risultato:

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

Precedenza

Puoi anche utilizzare una combinazione di operatori per filtrare i risultati.

Si noti che SQL ha un ordine di precedenza che assegna a diversi tipi di operatore. Ad esempio, valuta qualsiasi operatore condizionale prima di qualsiasi operatore logico, come AND e OR . Inoltre, valuta qualsiasi AND operatori prima di qualsiasi OR operatori.

Le parentesi hanno una precedenza maggiore rispetto a tutti gli operatori, quindi puoi utilizzare le parentesi per specificare l'ordine in cui deve essere valutata ciascuna condizione.

Considera il seguente esempio:

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

Risultato:

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

In questa query, non ho fornito parentesi, quindi AND l'operatore è stato valutato prima di OR operatore.

Pertanto abbiamo ottenuto righe che soddisfacevano sia Name <= 'Ab' AND Population <= 100000 o District = 'Canary Islands' . Possiamo dire solo guardando questo che verranno restituite tutte le città delle Isole Canarie, più tutte le città che soddisfano i primi criteri.

È come fare quanto segue:

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

Questo ci darebbe lo stesso risultato della query precedente senza parentesi.

Ma guarda cosa succede quando spostiamo le parentesi su OR condizione.

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

Risultato:

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

Questa volta abbiamo solo quelle città che soddisfano entrambi Population <= 100000 OR District = 'Canary Islands' e Name <= 'Ab' .

Negazione della condizione

Puoi usare il NOT operatore per negare la condizione fornita da <= operatore. Ecco un esempio:

SELECT PetName, DOB 
FROM Pets
WHERE NOT DOB <= '2019-12-31';

Risultato:

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