sql >> Databáze >  >> RDS >> Database

Operátor SQL Méně než () pro začátečníky

V SQL je operátor menší než (< ) porovná dva výrazy a vrátí TRUE má-li levý operand hodnotu nižší než pravý operand; jinak je výsledek FALSE .

Příklad

Zde je příklad k demonstraci.

SELECT * FROM city 
WHERE Population < 600;

Výsledek:

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

Tento dotaz vrátí všechna města, která mají méně než 600 obyvatel.

Exkluzivní

Operátor menší než nezahrnuje zadanou hodnotu do svého vyhodnocení.

Například následující příklad nevrací Fakaofo, který má 300 obyvatel:

SELECT * FROM city 
WHERE Population < 300;

Výsledek:

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

Abychom zahrnuli města s 300 obyvateli, museli bychom zvýšit naši specifikovanou hodnotu:

SELECT * FROM city 
WHERE Population < 301;

Výsledek:

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

Data

Zde je příklad, který demonstruje použití operátoru menší než k porovnání hodnot data.

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

Výsledek:

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

Řetězce

K porovnání hodnot řetězců můžete také použít operátor menší než. Při porovnávání s hodnotou řetězce použijte kolem řetězce uvozovky.

SELECT * FROM city 
WHERE Name < 'Ab';

Výsledek:

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

Tento dotaz vrátí všechna města, která jsou menší než Ab . V zásadě vrací všechna města, která začínají písmeny nižšími než Ab .

Více podmínek

Pokud máte více podmínek, můžete použít více méně než operátorů.

Takhle:

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

Výsledek:

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

Prednost

Při filtrování výsledků můžete také použít kombinaci operátorů.

Všimněte si, že SQL má pořadí priority, které přiřazuje různým typům operátorů. Například vyhodnocuje všechny podmíněné operátory před logickými operátory, jako je AND a OR . Vyhodnocuje také všechny AND operátory před libovolným OR operátory.

Závorky mají vyšší prioritu než všechny operátory, a proto můžete pomocí závorek určit pořadí, ve kterém by měla být každá podmínka vyhodnocena.

Zvažte následující příklad:

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

Výsledek:

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

V tomto dotazu jsem neuvedl žádné závorky, a proto AND operátor byl vyhodnocen před OR operátor.

Proto jsme dostali řádky, které splňují buď Name < 'Ab' AND Population < 100000 nebo District = 'Canary Islands' . Pouhým pohledem na toto můžeme říci, že budou vrácena všechna města z Kanárských ostrovů plus všechna města, která splňují první kritéria.

Je to jako udělat následující:

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

To by nám dalo stejný výsledek jako předchozí dotaz bez závorek.

Ale podívejte se, co se stane, když přesuneme závorky do OR podmínka.

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

Výsledek:

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

Tentokrát jsme dostali pouze ta města, která uspokojila obě Population < 100000 OR District = 'Canary Islands' a Name < 'Ab' .

Negace podmínky

Můžete použít NOT operátor negovat podmínku poskytnutou operátorem menším než. Zde je příklad:

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

Výsledek:

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

  1. SQL Server 2005 – Exportujte tabulku programově (spusťte soubor .sql a znovu ji vytvořte)

  2. Jak nastavíte propojený server s databází Oracle na SQL 2000/2005?

  3. Získejte ID řádku tabulky SQLite FTS3

  4. 8 příkazů WP-CLI pro vyčištění a optimalizaci vašeho webu