Sử dụng Where, And, Or và Not, Order By trong SQL

Bài hôm nay mình sẽ đi giới thiệu về các câu lệnh truy vấn với: WHERE, AND, OR và NOT, ORDER BY

Mục Lục:

1. Mệnh đề WHERE

Mệnh đề WHERE được sử dụng để lọc các bản ghi.

Mệnh đề WHERE được sử dụng để trích xuất các bản ghi đáp ứng được điều kiện cụ thể.

Cú pháp:

        SELECT column1, column2, ... FROM table_name WHERE condition;
    

Ví dụ: ta có bảng sau

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Ví dụ: chọn tất cả các khách hàng từ nước "Mexico", trong bảng "Customers":

        SELECT * FROM Customers WHERE Country='Mexico';
    
CustomerID CustomerName ContactName Address City PostalCode Country
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico

Các toán tử sau có thể được sử dụng trong mệnh đề WHERE:

Operator Description
= Kiểm tra xem giá trị của hai toán hạng có cân bằng không, nếu có thì điều kiện trở thành true
<> Kiểm tra xem giá trị của hai toán hạng là cân bằng hay là không, nếu không cân bằng thì điều kiện trở thành true
> Kiểm tra xem giá trị của toán hạng trái có lớn hơn giá trị của toán hạng phải không, nếu có thì điều kiện trở thành true
< Kiểm tra xem giá trị của toán hạng trái có nhỏ hơn giá trị của toán hạng phải không, nếu có thì điều kiện trở thành true
>= Kiểm tra xem giá trị của toán hạng trái có lớn hơn hoặc bằng giá trị của toán hạng phải không, nếu có thì điều kiện trở thành true
<= Kiểm tra xem giá trị của toán hạng trái có nhỏ hơn hoặc bằng giá trị của toán hạng phải không, nếu có thì điều kiện trở thành true
BETWEEN Toán tử BETWEEN được sử dụng để tìm các giá trị mà là trong một tập giá trị, được cung cấp giá trị nhỏ nhất và giá trị lớn nhất
LIKE Toán tử LIKE được sử dụng để so sánh một giá trị với các giá trị tương tự bởi sử dụng các toán tử Wildcard
IN Toán tử IN được sử dụng để so sánh một giá trị với một danh sách các giá trị hằng mà đã được xác định

2. Toán tử AND, OR và NOT

Mệnh đề WHERE có thể kết hợp với toán tử AND, OR, và NOT.

Toán tử ANDOR được sử dụng để lọc các bản ghi dựa trên nhiều điều kiện:

  • Toán tử AND hiển thị một bản ghi nếu tất cả các điều kiện ANDTRUE.
  • Toán tử OR hiển thị một bản ghi nếu bất kỳ điều kiện ORTRUE

Toán tử NOT hiển thị một bản ghi nếu điều kiện là không TRUE.

Cú pháp: AND

        SELECT column1, column2, ... FROM table_name
        WHERE condition1 AND condition2 AND condition3 ...;
    

Cú pháp: OR

        SELECT column1, column2, ... FROM table_name
        WHERE condition1 OR condition2 OR condition3 ...;
    

Cú pháp: NOT

        SELECT column1, column2, ... FROM table_name
        WHERE NOT condition;
    

Ví dụ: Câu lệnh SQL sau đây sẽ chọn tất cả các trường từ "Customers" nơi nước là "Germany" và thành phố là "Berlin":

        SELECT * FROM Customers
        WHERE Country='Germany' AND City='Berlin';
    

Ví dụ: Câu lệnh SQL sau đây sẽ chọn tất cả các trường từ "Customers" nơi thành phố là "Berlin" hoặc "München":

        SELECT * FROM Customers
        WHERE City='Berlin' OR City='München';
    

Ví dụ: Câu lệnh SQL sau đây sẽ chọn tất cả các trường từ "Customers", tại đó quốc gia không phải là "Germany":

        SELECT * FROM Customers
        WHERE NOT Country='Germany';
    

3. Sắp xếp kết quả bằng ORDER BY

Từ ORDER BY được sử dụng để sắp xếp kết quả theo thứ tự tăng dần hoặc giảm dần.

Từ ORDER BY sắp xếp các bản ghi theo thứ tự tăng dần theo mặc định. Để sắp xếp các hồ sơ theo thứ tự giảm dần, sử dụng từ khóa DESC.

Cú pháp:

        SELECT column1, column2, ... FROM table_name
        ORDER BY column1, column2, ... ASC|DESC;
    

Ví dụ: Câu lệnh SQL sau đây sẽ chọn tất cả khách hàng từ bảng "Customers", được sắp xếp theo cột "Country":

        SELECT * FROM Customers ORDER BY Country;
    

Ví dụ: Câu lệnh SQL sau đây sẽ chọn tất cả khách hàng từ bảng "Customers", được sắp xếp DESCENDING theo cột "Country":

        SELECT * FROM Customers ORDER BY Country DESC;
    

Ví dụ: Câu lệnh SQL sau đây sẽ chọn tất cả khách hàng từ bảng "Customers", được sắp xếp theo cột "Country" và cột "CustomerName":

        SELECT * FROM Customers ORDER BY Country, CustomerName;