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

) Operator dla początkujących

W SQL operator większe niż (> ) porównuje dwa wyrażenia i zwraca TRUE jeśli lewy operand ma wartość wyższą niż prawy operand; w przeciwnym razie zwraca FALSE .

Przykład

Oto przykład do zademonstrowania.

SELECT * FROM city
WHERE Population > 9000000;

Wynik:

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

To zapytanie zwraca wszystkie miasta o liczbie mieszkańców większej niż 9 milionów.

Ekskluzywny

Operator większa niż nie uwzględnia określonej wartości w swojej ocenie.

Na przykład poniższy przykład nie zwraca Karaczi, które według tej bazy danych ma populację dokładnie 9269265:

SELECT * FROM city 
WHERE Population > 9269265;

Wynik:

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

Aby uwzględnić miasta o liczbie ludności 9269265, musielibyśmy zmniejszyć naszą określoną wartość:

SELECT * FROM city 
WHERE Population > 9269264;

Wynik:

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

Albo to, albo możemy użyć większej lub równej (>= ) operatora.

SELECT * FROM city 
WHERE Population >= 9269265;

Wynik:

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

Daty

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

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

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 niż do porównania wartości ciągu. 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   |
|------+----------+---------------+------------+--------------|
| 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 większych niż.

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' .

Spowodowało to zwrócenie tylko jednego miasta z Overijssel, w przeciwieństwie do dwóch w poprzednim zapytaniu.

Negowanie warunku

Możesz użyć NOT operator, aby zanegować warunek dostarczony przez operator większy niż. 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. Notacja UML

  2. Zatrzymywanie błędów serwera połączonego

  3. Jak obsługiwać dzielenie przez zero w SQL?

  4. Model bazy danych dla ankiety online. Część 4

  5. Jakiej funkcji maskowania danych należy użyć?