Database
 sql >> Baza danych >  >> RDS >> Database

=) Operator dla początkujących

W SQL operator większy lub równy (>= ) porównuje dwa wyrażenia i zwraca TRUE jeśli lewy operand ma wartość większą lub równą prawemu operandowi; w przeciwnym razie zwraca FALSE .

Przykład

Oto przykład do zademonstrowania.

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

Wynik:

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

To zapytanie zwraca wszystkie miasta, których populacja jest większa lub równa 9269265.

Włącznie

Operator większy lub równy zawiera określoną wartość w swojej ocenie.

Na przykład poprzednie zapytanie obejmowało Karaczi, które według tej bazy danych ma populację dokładnie 9269265.

Gdybyśmy chcieli wykluczyć miasta z taką populacją, musielibyśmy albo zwiększyć określoną wartość:

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

Wynik:

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

Lub możemy po prostu użyć większej niż (> ) operator zamiast:

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

Wynik:

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

Daty

Oto przykład demonstrujący użycie operatora większe lub równe do porównywania wartości dat.

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

Wynik:

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

Struny

Możesz również użyć operatora większe lub równe do porównywania wartości ciągów. Porównując z wartością ciągu, użyj cudzysłowów wokół ciągu.

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

Wynik:

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

Wiele warunków

Jeśli masz wiele warunków, możesz użyć wielu >= operatorów.

Tak:

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

Wynik:

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

Pierwszeństwo

Możesz także użyć kombinacji operatorów podczas filtrowania wyników.

Zauważ, że SQL ma kolejność, którą przypisuje różnym typom operatorów. Na przykład ocenia wszystkie operatory warunkowe przed wszelkimi operatorami logicznymi, takimi jak AND i OR . Ocenia również dowolne AND operatory przed OR operatorów.

Nawiasy mają wyższy priorytet niż wszystkie operatory, więc możesz użyć nawiasów do określenia kolejności, w jakiej każdy warunek powinien być oceniany.

Rozważ następujący przykład:

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

Wynik:

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

W tym zapytaniu nie podałem żadnych nawiasów, więc AND operator został oceniony przed OR operatora.

Dlatego otrzymaliśmy wiersze, które spełniają albo Name >= 'Zukovski' AND Population >= 100000 lub District = 'Overijssel' . Wystarczy spojrzeć na to, aby stwierdzić, że wszystkie miasta z okręgu Overijssel zostaną zwrócone, a także wszystkie miasta spełniające pierwsze kryteria.

To tak, jakby wykonać następujące czynności:

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

To dałoby nam ten sam wynik, co poprzednie zapytanie bez nawiasów.

Ale spójrz, co się stanie, gdy przeniesiemy nawiasy do OR stan.

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

Wynik:

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

Tym razem otrzymaliśmy tylko te miasta, które spełniły wymagania zarówno Population >= 100000 OR District = 'Overijssel' i Name >= 'Overijssel' .

W rezultacie zwrócono tylko jedno miasto z Overijssel, w przeciwieństwie do dwóch w poprzednim zapytaniu.

Negowanie warunku

Możesz użyć NOT operator do zanegowania warunku podanego przez >= operator. Oto przykład:

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL INSERT INTO… SELECT Przykłady

  2. Jak uruchamiać zadania zdalne z IRI Workbench

  3. Praca z danymi JDBC w Domo

  4. Minimalizowanie wpływu poszerzenia kolumny TOŻSAMOŚĆ – część 4

  5. Błędy, pułapki i najlepsze praktyki T-SQL – funkcje okien