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

Operator SQL Mniej niż () dla początkujących

W SQL operator mniej niż (< ) porównuje dwa wyrażenia i zwraca TRUE jeśli lewy operand ma wartość niższą niż prawy operand; w przeciwnym razie wynik to FALSE .

Przykład

Oto przykład do zademonstrowania.

SELECT * FROM city 
WHERE Population < 600;

Wynik:

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

To zapytanie zwraca wszystkie miasta o liczbie ludności mniejszej niż 600.

Ekskluzywny

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

Na przykład poniższy przykład nie zwraca Fakaofo, którego populacja wynosi 300:

SELECT * FROM city 
WHERE Population < 300;

Wynik:

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

Aby uwzględnić miasta liczące 300 mieszkańców, musielibyśmy zwiększyć naszą określoną wartość:

SELECT * FROM city 
WHERE Population < 301;

Wynik:

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

Daty

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

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

Wynik:

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

Struny

Możesz również użyć operatora mniej 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 < 'Ab';

Wynik:

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

To zapytanie zwraca wszystkie miasta, które są mniejsze niż Ab . Zasadniczo zwraca wszystkie miasta, które zaczynają się od liter mniejszych niż Ab .

Wiele warunków

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

Tak:

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

Wynik:

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

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 < 'Ab' 
    AND Population < 100000
    OR District = 'Canary Islands';

Wynik:

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

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 < 'Ab' AND Population < 100000 lub District = 'Canary Islands' . Wystarczy spojrzeć na to, aby stwierdzić, że wszystkie miasta z Wysp Kanaryjskich zostaną zwrócone, plus wszystkie miasta spełniające pierwsze kryteria.

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

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

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 < 'Ab' 
    AND (Population < 100000
    OR District = 'Canary Islands');

Wynik:

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

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

Negowanie warunku

Możesz użyć NOT operator, aby zanegować warunek podany przez operator mniej niż. Oto przykład:

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak obliczyć wartość bezwzględną w SQL?

  2. Podstawy wyrażeń tabelarycznych, Część 4 – Tabele pochodne, rozważania dotyczące optymalizacji, ciąg dalszy

  3. Aqua Data Studio

  4. Knee-Jerk Performance Tuning:nieprawidłowe użycie tabel tymczasowych

  5. Jak zainstalować Nextcloud 15 na Ubuntu 18.04