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

=) Operátor pro začátečníky

V SQL je operátor větší než nebo roven (>= ) porovná dva výrazy a vrátí TRUE jestliže levý operand má hodnotu větší nebo rovnou pravému operandu; jinak vrátí FALSE .

Příklad

Zde je příklad k demonstraci.

SELECT * FROM city
WHERE Population >= 9269265
ORDER BY Population ASC;

Výsledek:

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

Tento dotaz vrátí všechna města, která mají počet obyvatel větší nebo roven 9269265.

Včetně

Operátor větší než nebo rovno zahrnuje zadanou hodnotu do svého vyhodnocení.

Například předchozí dotaz zahrnoval Karáčí, které má podle této databáze přesně 9269265 obyvatel.

Pokud bychom chtěli vyloučit města s tímto počtem obyvatel, museli bychom buď zvýšit zadanou hodnotu:

SELECT * FROM city
WHERE Population >= 9269266
ORDER BY Population ASC;

Výsledek:

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

Nebo bychom mohli jednoduše použít větší než (> ) místo toho:

SELECT * FROM city
WHERE Population > 9269265
ORDER BY Population ASC;

Výsledek:

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

Data

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

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

Výsledek:

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

Řetězce

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

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

Výsledek:

+------+----------+---------------+------------+--------------+
| ID   | Name     | CountryCode   | District   | Population   |
|------+----------+---------------+------------+--------------|
| 3756 | Zukovski | RUS           | Moskova    | 96500        |
| 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       |
+------+----------+---------------+------------+--------------+

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 >= 'Zukovski' AND Population >= 200000;

Výsledek:

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

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

Výsledek:

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

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 >= 'Zukovski' AND Population >= 100000 nebo District = 'Overijssel' . Pouhým pohledem na to můžeme říci, že budou vrácena všechna města z okresu Overijssel plus všechna města, která splňují první kritéria.

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

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

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

Výsledek:

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

Tentokrát jsme dostali pouze ta města, která splnila obě Population >= 100000 OR District = 'Overijssel' a Name >= 'Overijssel' .

To vedlo k tomu, že bylo vráceno pouze jedno město z Overijsselu, na rozdíl od dvou v předchozím dotazu.

Negace podmínky

Můžete použít NOT operátor, který neguje podmínku poskytnutou >= operátor. Zde je příklad:

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

Výsledek:

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

  1. Co je MEZI logickým operátorem v SQL Server - SQL Server / Výukový program TSQL, část 124

  2. Ekvivalent MySQL ON DUPLICATE KEY UPDATE na SQL Server

  3. Jak začít s SQL Serverem v Azure

  4. ReadyCloud ReadyShipper X