Sử dụng Select, Select Distinct và Select Top 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: SELECT, SELECT DISTINCT, SELECT TOP

Mục Lục:

1. SELECT

Mệnh đề SELECT được sử dụng để lấy dữ liệu từ cơ sở dữ liệu.

Dữ liệu trả về được lưu trữ trong một bảng kết quả, gọi là tập kết quả.

Cú pháp:

        SELECT column1, column2, ... FROM table_name;
    

Ở đây column1, column2, ... là các tên trường của bảng mà bạn muốn lấy dữ liệu. Nếu bạn muốn chọn tất cả các trường có sẵn trong bảng, hãy sử dụng cú pháp sau:

        SELECT * FROM table_name;
    

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ụ: lấy dũ liệu từ cột "CustomerName" và "City" từ bảng "Customers"

        SELECT CustomerName, City FROM Customers;
    
CustomerName City
Alfreds Futterkiste Berlin
Ana Trujillo Emparedados y helados México D.F.
Antonio Moreno Taquería México D.F.
Around the Horn London
Berglunds snabbköp Luleå

2. SELECT DISTINCT

Mệnh đề SELECT DISTINCT được sử dụng để trả về các giá trị riêng biệt (khác nhau).

Trong một bảng, một cột thường chứa nhiều giá trị trùng lặp, và đôi khi bạn chỉ muốn liệt kê các giá trị khác biệt.

Mệnh đề SELECT DISTINCT được sử dụng để trả về các giá trị riêng biệt (khác nhau).

Cú pháp:

        SELECT DISTINCT column1, column2, ... FROM table_name;
    

Ví dụ: Câu lệnh sau chỉ chọn các giá trị DISTINCT từ cột "Country" trong bảng "Customers":

        SELECT DISTINCT Country FROM Customers;
    

Câu lệnh sau đây liệt kê số lượng các quốc gia khác nhau:

        SELECT COUNT(DISTINCT Country) FROM Customers;
    

Lưu ý: Ví dụ trên sẽ không hoạt động trong Firefox và Microsoft Edge! Bởi vì COUNT (DISTINCT column_name ) không được hỗ trợ trong cơ sở dữ liệu Microsoft Access.

Đối với MS Access ta làm như sau:

        SELECT Count(*) AS DistinctCountries FROM (SELECT DISTINCT Country FROM Customers);
    

3. SELECT TOP

Mệnh đề SELECT TOP được sử dụng để xác định số lượng các bản ghi để trả về.

Mệnh đề SELECT TOP rất hữu ích trên các bảng lớn với hàng nghìn bản ghi

Cú pháp: SQL Server / MS

        SELECT TOP number|percent column_name(s)
        FROM table_name
        WHERE condition;
    

Cú pháp: MySQL

        SELECT column_name(s)
        FROM table_name
        WHERE condition
        LIMIT number;
    

Cú pháp: Oracle

        SELECT column_name(s)
        FROM table_name
        WHERE ROWNUM <= number;
    

Ví dụ: Câu lệnh SQL sau đây chọn ba bản ghi đầu tiên từ bảng "Customers":

        SELECT TOP 3 * FROM Customers;
        or
        SELECT * FROM Customers LIMIT 3;
        or
        SELECT * FROM Customers WHERE ROWNUM <= 3;
    

Ví dụ: Câu lệnh SQL sau đây chọn ba bản ghi đầu tiên từ bảng "Customers", và là nước "Germany":

        SELECT TOP 3 * FROM Customers
        WHERE Country='Germany';