Database
 sql >> база данни >  >> RDS >> Database

) Оператор за начинаещи

В SQL операторът по-голямо от (> ) сравнява два израза и връща TRUE ако левият операнд има стойност по-висока от десния операнд; в противен случай връща FALSE .

Пример

Ето пример за демонстрация.

SELECT * FROM city
WHERE Population > 9000000;

Резултат:

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

Тази заявка връща всички градове с население над 9 милиона.

Изключително

Операторът по-голямо от не включва посочената стойност в оценката си.

Например, следният пример не връща Карачи, който според тази база данни има население от точно 9269265:

SELECT * FROM city 
WHERE Population > 9269265;

Резултат:

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

За да включим градове с население от 9269265, ще трябва да намалим посочената стойност:

SELECT * FROM city 
WHERE Population > 9269264;

Резултат:

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

Или това, или можем да използваме по-голямото или равно на (>=). ) оператор.

SELECT * FROM city 
WHERE Population >= 9269265;

Резултат:

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

Дати

Ето пример за демонстриране на използването на оператора по-голямо от за сравняване на стойности за дата.

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

Резултат:

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

Стрингове

Можете също да използвате оператора по-голямо от, за да сравните стойностите на низове. Когато сравнявате със стойност на низ, използвайте кавички около низа.

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

Резултат:

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

Множество условия

Ако имате няколко условия, можете да използвате няколко оператора по-голямо от.

Като това:

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

Резултат:

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

Приоритет

Можете също да използвате комбинация от оператори, когато филтрирате резултатите.

Имайте предвид, че SQL има ред на приоритет, който присвоява на различни типове оператори. Например, той оценява всички условни оператори преди логически оператори, като AND и OR . Той също така оценява всяко AND оператори преди всяко OR оператори.

Скобите имат по-висок приоритет от всички оператори и затова можете да използвате скоби, за да посочите реда, в който трябва да се оценява всяко условие.

Помислете за следния пример:

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

Резултат:

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

В тази заявка не предоставих никакви скоби и така AND операторът е оценен преди OR оператор.

Следователно получихме редове, които отговарят на или Name > 'Zukovski' AND Population > 100000 или District = 'Overijssel' . Можем да кажем само като погледнем това, че всички градове от квартал Overijssel ще бъдат върнати, плюс всички градове, които отговарят на първите критерии.

Това е като да направите следното:

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

Това ще ни даде същия резултат като предишната заявка без скоби.

Но вижте какво се случва, когато преместим скобите в OR състояние.

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

Резултат:

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

Този път получихме само онези градове, които удовлетвориха и двете Population > 100000 OR District = 'Overijssel' и Name > 'Overijssel' .

Това доведе до върнат само един град от Overijssel, за разлика от два в предишната заявка.

Отрицание на условието

Можете да използвате NOT оператор за отричане на условието, предоставено от оператора по-голямо от. Ето един пример:

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

Резултат:

+-----------+------------+
| 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. Какво общо имат покерът, блекджек, белот и Préférence с базите данни?

  2. SQL Azure:База данни XXXYYY на сървъра в момента не е налична

  3. T-SQL Тип данни за дата и време

  4. Разширен SQL:Вариации и различни случаи на употреба на T-SQL Insert Statement

  5. Какво правят и какво не правят виртуалните файлови статисти, ви разказват за забавянето на I/O