Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

) Toán tử cho người mới bắt đầu

Trong SQL, toán tử lớn hơn (> ) so sánh hai biểu thức và trả về TRUE nếu toán hạng bên trái có giá trị cao hơn toán hạng bên phải; nếu không, nó trả về FALSE .

Ví dụ

Đây là một ví dụ để chứng minh.

SELECT * FROM city
WHERE Population > 9000000;

Kết quả:

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

Truy vấn này trả về tất cả các thành phố có dân số hơn 9 triệu người.

Độc quyền

Toán tử lớn hơn không bao gồm giá trị được chỉ định trong đánh giá của nó.

Ví dụ:ví dụ sau không trả về Karachi, theo cơ sở dữ liệu này, có dân số chính xác là 9269265:

SELECT * FROM city 
WHERE Population > 9269265;

Kết quả:

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

Để bao gồm các thành phố có dân số là 9269265, chúng tôi sẽ cần giảm giá trị đã chỉ định của mình:

SELECT * FROM city 
WHERE Population > 9269264;

Kết quả:

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

Hoặc là hoặc chúng ta có thể sử dụng lớn hơn hoặc bằng (>= ) toán tử.

SELECT * FROM city 
WHERE Population >= 9269265;

Kết quả:

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

Ngày

Dưới đây là một ví dụ để chứng minh việc sử dụng toán tử lớn hơn để so sánh các giá trị ngày.

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

Kết quả:

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

Chuỗi

Bạn cũng có thể sử dụng toán tử lớn hơn để so sánh các giá trị chuỗi. Khi so sánh với một giá trị chuỗi, hãy sử dụng dấu ngoặc kép xung quanh chuỗi.

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

Kết quả:

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

Nhiều điều kiện

Nếu bạn có nhiều điều kiện, bạn có thể sử dụng nhiều toán tử lớn hơn.

Như thế này:

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

Kết quả:

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

Ưu tiên

Bạn cũng có thể sử dụng kết hợp các toán tử khi lọc kết quả.

Lưu ý rằng SQL có một thứ tự ưu tiên mà nó gán cho các kiểu toán tử khác nhau. Ví dụ:nó đánh giá bất kỳ toán tử điều kiện nào trước bất kỳ toán tử logic nào, chẳng hạn như ANDOR . Nó cũng đánh giá bất kỳ AND nào các toán tử trước bất kỳ OR nào toán tử.

Dấu ngoặc đơn có mức độ ưu tiên cao hơn tất cả các toán tử và vì vậy bạn có thể sử dụng dấu ngoặc đơn để chỉ định thứ tự mà mỗi điều kiện sẽ được đánh giá.

Hãy xem xét ví dụ sau:

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

Kết quả:

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

Trong truy vấn này, tôi không cung cấp bất kỳ dấu ngoặc đơn nào và vì vậy AND toán tử được đánh giá trước OR nhà điều hành.

Do đó, chúng tôi nhận được các hàng thỏa mãn Name > 'Zukovski' AND Population > 100000 hoặc District = 'Overijssel' . Chỉ cần nhìn vào điều này, chúng ta có thể biết rằng tất cả các thành phố từ quận Overijssel sẽ được trả lại, cộng với bất kỳ thành phố nào đáp ứng tiêu chí đầu tiên.

Điều này giống như làm như sau:

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

Điều đó sẽ cho chúng ta kết quả giống như truy vấn trước đó không có dấu ngoặc đơn.

Nhưng hãy xem điều gì sẽ xảy ra khi chúng ta di chuyển dấu ngoặc đơn sang OR điều kiện.

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

Kết quả:

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

Lần này, chúng tôi chỉ có những thành phố đáp ứng cả Population > 100000 OR District = 'Overijssel' Name > 'Overijssel' .

Điều này dẫn đến chỉ một thành phố từ Overijssel được trả lại, trái ngược với hai thành phố trong truy vấn trước đó.

Giảm thiểu điều kiện

Bạn có thể sử dụng NOT toán tử để phủ định điều kiện được cung cấp bởi toán tử lớn hơn. Đây là một ví dụ:

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

Kết quả:

+-----------+------------+
| 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. Cách trở thành nhà thiết kế cơ sở dữ liệu

  2. ScaleGrid được xếp hạng trong số 100 nhà cung cấp dịch vụ đám mây hàng đầu

  3. Cách lấy ngày và giờ hiện tại (không có múi giờ) trong T-SQL

  4. Cách bảo vệ ứng dụng JDBC chống lại SQL Injection

  5. Cách sử dụng Prisma