Database
 sql >> Base de données >  >> RDS >> Database

) Opérateur pour débutants

En SQL, l'opérateur supérieur à (> ) compare deux expressions et renvoie TRUE si l'opérande gauche a une valeur supérieure à l'opérande droit; sinon, il renvoie FALSE .

Exemple

Voici un exemple pour illustrer.

SELECT * FROM city
WHERE Population > 9000000;

Résultat :

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

Cette requête renvoie toutes les villes dont la population est supérieure à 9 millions d'habitants.

Exclusif

L'opérateur supérieur à n'inclut pas la valeur spécifiée dans son évaluation.

Par exemple, l'exemple suivant ne renvoie pas Karachi, qui, selon cette base de données, a une population d'exactement 9269265 :

SELECT * FROM city 
WHERE Population > 9269265;

Résultat :

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

Pour inclure des villes avec une population de 9 269 265 habitants, nous aurions besoin de diminuer la valeur spécifiée :

SELECT * FROM city 
WHERE Population > 9269264;

Résultat :

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

Soit cela, soit nous pourrions utiliser le supérieur ou égal à (>= ) opérateur.

SELECT * FROM city 
WHERE Population >= 9269265;

Résultat :

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

Dates

Voici un exemple pour illustrer l'utilisation de l'opérateur supérieur à pour comparer les valeurs de date.

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

Résultat :

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

Chaînes

Vous pouvez également utiliser l'opérateur supérieur à pour comparer les valeurs de chaîne. Lors de la comparaison avec une valeur de chaîne, utilisez des guillemets autour de la chaîne.

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

Résultat :

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

Plusieurs conditions

Si vous avez plusieurs conditions, vous pouvez utiliser plusieurs opérateurs supérieurs à.

Comme ceci :

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

Résultat :

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

Priorité

Vous pouvez également utiliser une combinaison d'opérateurs lors du filtrage des résultats.

Notez que SQL a un ordre de priorité qu'il attribue aux différents types d'opérateurs. Par exemple, il évalue tous les opérateurs conditionnels avant tous les opérateurs logiques, tels que AND et OR . Il évalue également tout AND opérateurs avant tout OR opérateurs.

Les parenthèses ont une priorité plus élevée que tous les opérateurs, et vous pouvez donc utiliser des parenthèses pour spécifier l'ordre dans lequel chaque condition doit être évaluée.

Prenons l'exemple suivant :

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

Résultat :

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

Dans cette requête, je n'ai fourni aucune parenthèse, et donc le AND l'opérateur a été évalué avant le OR opérateur.

Par conséquent, nous avons obtenu des lignes qui satisfaisaient soit Name > 'Zukovski' AND Population > 100000 ou District = 'Overijssel' . Rien qu'en regardant cela, nous pouvons dire que toutes les villes de l'arrondissement d'Overijssel seront renvoyées, ainsi que toutes les villes qui satisfont au premier critère.

Cela revient à faire ce qui suit :

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

Cela nous donnerait le même résultat que la requête précédente sans parenthèses.

Mais regardez ce qui se passe lorsque nous déplaçons les parenthèses vers le OR état.

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

Résultat :

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

Cette fois, nous n'avons obtenu que les villes qui satisfaisaient à la fois Population > 100000 OR District = 'Overijssel' et Name > 'Overijssel' .

Ainsi, une seule ville d'Overijssel a été renvoyée, contre deux dans la requête précédente.

Négation de la condition

Vous pouvez utiliser le NOT pour annuler la condition fournie par l'opérateur supérieur à. Voici un exemple :

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

Résultat :

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