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

Operatore SQL Less Than () per principianti

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

Esempio

Ecco un esempio da dimostrare.

SELECT * FROM city 
WHERE Population < 600;

Risultato:

+------+--------------------+---------------+-------------+--------------+
| ID   | Name               | CountryCode   | District    | Population   |
|------+--------------------+---------------+-------------+--------------|
| 62   | The Valley         | AIA           | –           | 595          |
| 2316 | Bantam             | CCK           | Home Island | 503          |
| 2317 | West Island        | CCK           | West Island | 167          |
| 2728 | Yaren              | NRU           | –           | 559          |
| 2912 | Adamstown          | PCN           | –           | 42           |
| 3333 | Fakaofo            | TKL           | Fakaofo     | 300          |
| 3538 | Città del Vaticano | VAT           | –           | 455          |
+------+--------------------+---------------+-------------+--------------+

Questa query restituisce tutte le città con una popolazione inferiore a 600 abitanti.

Esclusivo

L'operatore minore di non include il valore specificato nella sua valutazione.

Ad esempio, l'esempio seguente non restituisce Fakaofo, che ha una popolazione di 300 abitanti:

SELECT * FROM city 
WHERE Population < 300;

Risultato:

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

Per includere le città con una popolazione di 300 abitanti, dovremmo aumentare il nostro valore specificato:

SELECT * FROM city 
WHERE Population < 301;

Risultato:

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

Date

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

SELECT PetName, DOB 
FROM Pets
WHERE DOB < '2020-01-01';

Risultato:

+-----------+------------+
| PetName   | DOB        |
|-----------+------------|
| Fetch     | 2019-08-16 |
| Scratch   | 2018-10-01 |
+-----------+------------+

Stringhe

Puoi anche utilizzare l'operatore less than per confrontare i valori delle stringhe. Quando si confronta con un valore stringa, utilizzare le virgolette attorno alla stringa.

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à inferiori a Ab . Fondamentalmente, restituisce tutte le città che iniziano con lettere inferiori a Ab .

Condizioni multiple

Se hai più condizioni, puoi utilizzare più operatori meno di.

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 . Valuta anche 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 dall'operatore minore di. 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 |
+-----------+------------+