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

) Operatore per principianti

In SQL, l'operatore maggiore di (> ) confronta due espressioni e restituisce TRUE se l'operando di sinistra ha un valore maggiore dell'operando di destra; in caso contrario, restituisce FALSE .

Esempio

Ecco un esempio da dimostrare.

SELECT * FROM city
WHERE Population > 9000000;

Risultato:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
| 2822 | Karachi         | PAK           | Sindh        | 9269265      |
+------+-----------------+---------------+--------------+--------------+

Questa query restituisce tutte le città con una popolazione superiore a 9 milioni.

Esclusivo

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

Ad esempio, l'esempio seguente non restituisce Karachi, che, secondo questo database, ha una popolazione di esattamente 9269265:

SELECT * FROM city 
WHERE Population > 9269265;

Risultato:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
+------+-----------------+---------------+--------------+--------------+

Per includere le città con una popolazione di 9269265, dovremmo diminuire il nostro valore specificato:

SELECT * FROM city 
WHERE Population > 9269264;

Risultato:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
| 2822 | Karachi         | PAK           | Sindh        | 9269265      |
+------+-----------------+---------------+--------------+--------------+

O quello, o potremmo usare il maggiore o uguale a (>= ) operatore.

SELECT * FROM city 
WHERE Population >= 9269265;

Risultato:

+------+-----------------+---------------+--------------+--------------+
| ID   | Name            | CountryCode   | District     | Population   |
|------+-----------------+---------------+--------------+--------------|
| 206  | São Paulo       | BRA           | São Paulo    | 9968485      |
| 939  | Jakarta         | IDN           | Jakarta Raya | 9604900      |
| 1024 | Mumbai (Bombay) | IND           | Maharashtra  | 10500000     |
| 1890 | Shanghai        | CHN           | Shanghai     | 9696300      |
| 2331 | Seoul           | KOR           | Seoul        | 9981619      |
| 2822 | Karachi         | PAK           | Sindh        | 9269265      |
+------+-----------------+---------------+--------------+--------------+

Date

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

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

Risultato:

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

Stringhe

Puoi anche utilizzare l'operatore maggiore di per confrontare i valori di stringa. Quando si confronta con un valore stringa, utilizzare le virgolette attorno alla stringa.

SELECT * FROM city 
WHERE Name > 'Zukovski'
ORDER BY Name;

Risultato:

+------+----------+---------------+------------+--------------+
| ID   | Name     | CountryCode   | District   | Population   |
|------+----------+---------------+------------+--------------|
| 2669 | Zumpango | MEX           | México     | 99781        |
| 2025 | Zunyi    | CHN           | Guizhou    | 261862       |
| 3245 | Zürich   | CHE           | Zürich     | 336800       |
| 3145 | Zwickau  | DEU           | Saksi      | 104146       |
| 28   | Zwolle   | NLD           | Overijssel | 105819       |
| 3446 | Zytomyr  | UKR           | Zytomyr    | 297000       |
+------+----------+---------------+------------+--------------+

Condizioni multiple

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

In questo modo:

SELECT * FROM city 
WHERE Name > 'Zukovski' AND Population > 200000;

Risultato:

+------+---------+---------------+------------+--------------+
| ID   | Name    | CountryCode   | District   | Population   |
|------+---------+---------------+------------+--------------|
| 2025 | Zunyi   | CHN           | Guizhou    | 261862       |
| 3245 | Zürich  | CHE           | Zürich     | 336800       |
| 3446 | Zytomyr | UKR           | Zytomyr    | 297000       |
+------+---------+---------------+------------+--------------+

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 > 'Zukovski' 
    AND Population > 100000
    OR District = 'Overijssel';

Risultato:

+------+----------+---------------+------------+--------------+
| ID   | Name     | CountryCode   | District   | Population   |
|------+----------+---------------+------------+--------------|
| 15   | Enschede | NLD           | Overijssel | 149544       |
| 28   | Zwolle   | NLD           | Overijssel | 105819       |
| 2025 | Zunyi    | CHN           | Guizhou    | 261862       |
| 3145 | Zwickau  | DEU           | Saksi      | 104146       |
| 3245 | Zürich   | CHE           | Zürich     | 336800       |
| 3446 | Zytomyr  | UKR           | Zytomyr    | 297000       |
+------+----------+---------------+------------+--------------+

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 > 'Zukovski' AND Population > 100000 o District = 'Overijssel' . Possiamo dire solo guardando questo che verranno restituite tutte le città del distretto di Overijssel, più tutte le città che soddisfano i primi criteri.

È come fare quanto segue:

SELECT * FROM city 
WHERE (Name > 'Zukovski' 
    AND Population > 100000)
    OR District = 'Overijssel';

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 > 'Zukovski' 
    AND (Population > 100000
    OR District = 'Overijssel');

Risultato:

+------+---------+---------------+------------+--------------+
| ID   | Name    | CountryCode   | District   | Population   |
|------+---------+---------------+------------+--------------|
| 28   | Zwolle  | NLD           | Overijssel | 105819       |
| 2025 | Zunyi   | CHN           | Guizhou    | 261862       |
| 3145 | Zwickau | DEU           | Saksi      | 104146       |
| 3245 | Zürich  | CHE           | Zürich     | 336800       |
| 3446 | Zytomyr | UKR           | Zytomyr    | 297000       |
+------+---------+---------------+------------+--------------+

Questa volta abbiamo solo quelle città che soddisfano entrambi Population > 100000 OR District = 'Overijssel' e Name > 'Overijssel' .

Ciò ha comportato la restituzione di una sola città dell'Overijssel, rispetto alle due della query precedente.

Negazione della condizione

Puoi usare il NOT operatore per negare la condizione fornita dall'operatore maggiore di. Ecco un esempio:

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

Risultato:

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