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

Operátor SQL menší nebo rovno (=) pro začátečníky

V SQL je operátor menší nebo roven (<= ) porovná dva výrazy a vrátí TRUE pokud má levý operand hodnotu nižší nebo rovnou pravému operandu; jinak je výsledek FALSE .

Můžete jej použít k určení, zda je hodnota menší nebo rovna jiné hodnotě.

Příklad

Zde je příklad k demonstraci.

SELECT * FROM city 
WHERE Population <= 455;

Výsledek:

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

Tento dotaz vrátí všechna města, která mají 455 nebo méně obyvatel.

Včetně

Operátor menší nebo rovno zahrnuje zadanou hodnotu do svého vyhodnocení. Viděli jsme to v předchozím příkladu, když zahrnoval město s 455 obyvateli, což byla přesná hodnota, kterou jsme specifikovali.

Pokud bychom nechtěli, aby bylo toto město zahrnuto, museli bychom hodnotu buď snížit:

SELECT * FROM city 
WHERE Population <= 454;

Výsledek:

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

Nebo bychom mohli jednoduše použít operátor menší než (< ) místo toho:

SELECT * FROM city 
WHERE Population < 455;

Výsledek:

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

Operátor menší než nezahrnuje vámi zadanou hodnotu.

Data

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

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

Výsledek:

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

Řetězce

Můžete také použít <= operátor pro porovnání hodnot řetězců. Při porovnávání s hodnotou řetězce použijte uvozovky kolem literálu řetězce.

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ší nebo rovna Ab . V zásadě vrací všechna města, která začínají písmeny nižšími než Ab nebo přesně Ab .

Více podmínek

Pokud máte více podmínek, můžete použít více <= operátory.

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 . Dále vyhodnocuje 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ňovaly 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á splnila 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átor. 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. Co je duální tabulka v Oracle?

  2. Může se JavaScript propojit s MySQL?

  3. Jak spustit uloženou proceduru z Laravelu

  4. 10 tipů pro úsporu času pro uživatele MS Access