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

Toán tử SQL nhỏ hơn hoặc bằng (=) cho người mới bắt đầu

Trong SQL, toán tử nhỏ hơn hoặc bằng (<= ) 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ị nhỏ hơn hoặc bằng toán hạng bên phải; nếu không, kết quả là FALSE .

Bạn có thể sử dụng nó để xác định xem một giá trị nhỏ hơn hoặc bằng một giá trị khác.

Ví dụ

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

SELECT * FROM city 
WHERE Population <= 455;

Kết quả:

+------+--------------------+---------------+-------------+--------------+
| ID   | Name               | CountryCode   | District    | Population   |
|------+--------------------+---------------+-------------+--------------|
| 2317 | West Island        | CCK           | West Island | 167          |
| 2912 | Adamstown          | PCN           | –           | 42           |
| 3333 | Fakaofo            | TKL           | Fakaofo     | 300          |
| 3538 | Città del Vaticano | VAT           | –           | 455          |
+------+--------------------+---------------+-------------+--------------+

Truy vấn này trả về tất cả các thành phố có dân số từ 455 trở xuống.

Bao gồm

Toán tử nhỏ hơn hoặc bằng bao gồm giá trị được chỉ định trong đánh giá của nó. Chúng tôi đã thấy điều này trong ví dụ trước khi nó bao gồm thành phố có dân số 455, đây là giá trị chính xác mà chúng tôi đã chỉ định.

Nếu chúng tôi không muốn đưa thành phố này vào, chúng tôi cần phải giảm giá trị:

SELECT * FROM city 
WHERE Population <= 454;

Kết quả:

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

Hoặc chúng ta có thể chỉ cần sử dụng toán tử less than (< ) thay vào đó:

SELECT * FROM city 
WHERE Population < 455;

Kết quả:

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

Toán tử less than không bao gồm giá trị mà bạn chỉ định.

Ngày

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

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

Kết quả:

+-----------+------------+
| PetName   | DOB        |
|-----------+------------|
| Fetch     | 2019-08-16 |
| Scratch   | 2018-10-01 |
| Wag       | 2020-03-15 |
+-----------+------------+

Chuỗi

Bạn cũng có thể sử dụng <= toán tử để 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 ký tự.

SELECT * FROM city 
WHERE Name <= 'Ab';

Kết quả:

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

Truy vấn này trả về tất cả các thành phố nhỏ hơn hoặc bằng Ab . Về cơ bản, nó trả về tất cả các thành phố bắt đầu bằng các chữ cái thấp hơn Ab hoặc chính xác là Ab .

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

Như thế này:

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

Kết quả:

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

Ư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 . Hơn nữa, nó đá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 <= 'Ab' 
    AND Population <= 100000
    OR District = 'Canary Islands';

Kết quả:

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

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 <= 'Ab' AND Population <= 100000 hoặc District = 'Canary Islands' . 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 đảo Canary 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 <= 'Ab' 
    AND Population <= 100000)
    OR District = 'Canary Islands';

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

Kết quả:

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

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

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 <= nhà điều hành. Đây là một ví dụ:

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

Kết quả:

+-----------+------------+
| 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. Cắt bớt chất béo trong nhật ký giao dịch

  2. Các giới hạn của Trình tối ưu hóa với các Chỉ mục được Lọc

  3. Thử thách đang diễn ra! Kêu gọi cộng đồng tạo trình tạo chuỗi số nhanh nhất

  4. Phương pháp tiếp cận thời tiền sử và hiện đại để thiết kế cơ sở dữ liệu

  5. Hekaton with a twist:In-memory TVPs - Part 2