Câu Lệnh SELECT Trong SQL: Hướng Dẫn Chi Tiết
1. Giới Thiệu Về Câu Lệnh SELECT
Câu lệnh SELECT
là một trong những câu lệnh quan trọng nhất trong SQL, giúp truy vấn và lấy dữ liệu từ cơ sở dữ liệu. Nó là nền tảng của mọi thao tác truy vấn, cho phép người dùng chọn các cột cụ thể, lọc dữ liệu theo điều kiện, sắp xếp và nhóm dữ liệu.
2. Cấu Trúc Cơ Bản Của SELECT
SELECT column1, column2, ...
FROM table_name;
SELECT
: Chỉ định các cột cần lấy dữ liệu.FROM
: Xác định bảng chứa dữ liệu.
Ví dụ:
SELECT first_name, last_name FROM employees;
Câu lệnh này lấy dữ liệu từ hai cột first_name
và last_name
trong bảng employees
.
3. Sử Dụng SELECT Với DISTINCT
DISTINCT
giúp loại bỏ các giá trị trùng lặp trong kết quả.
SELECT DISTINCT country FROM customers;
Câu lệnh trên trả về danh sách các quốc gia duy nhất trong bảng customers
.
4. Lọc Dữ Liệu Với WHERE
Mệnh đề WHERE
giúp lọc dữ liệu theo điều kiện nhất định.
SELECT * FROM employees WHERE department = 'IT';
Lệnh này chọn tất cả nhân viên thuộc phòng ban IT
.
Các toán tử phổ biến trong WHERE
:
=
: Bằng<>
hoặc!=
: Khác>
hoặc<
: Lớn hơn hoặc nhỏ hơnLIKE
: Tìm kiếm mẫu dữ liệuIN
: Tìm giá trị trong danh sáchBETWEEN
: Lọc trong khoảng giá trị
Ví dụ:
SELECT * FROM orders WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
5. Sắp Xếp Dữ Liệu Với ORDER BY
Mệnh đề ORDER BY
giúp sắp xếp kết quả theo một hoặc nhiều cột.
SELECT first_name, last_name FROM employees ORDER BY last_name ASC;
ASC
: Sắp xếp tăng dần (mặc định)DESC
: Sắp xếp giảm dần
6. Giới Hạn Kết Quả Với LIMIT (MySQL) hoặc TOP (SQL Server)
Khi cần lấy một số lượng dòng giới hạn, ta có thể sử dụng:
LIMIT
trong MySQL, PostgreSQL:
SELECT * FROM employees LIMIT 10;
TOP
trong SQL Server:
SELECT TOP 10 * FROM employees;
7. Nhóm Dữ Liệu Với GROUP BY
Mệnh đề GROUP BY
giúp nhóm dữ liệu theo một hoặc nhiều cột.
SELECT department, COUNT(*) AS total_employees FROM employees GROUP BY department;
Câu lệnh này đếm số lượng nhân viên trong từng phòng ban.
8. Lọc Dữ Liệu Sau Khi Nhóm Với HAVING
Khác với WHERE
, HAVING
dùng để lọc dữ liệu sau khi đã nhóm.
SELECT department, COUNT(*) AS total_employees FROM employees
GROUP BY department HAVING COUNT(*) > 10;
Lệnh trên chỉ hiển thị các phòng ban có hơn 10 nhân viên.
9. Kết Hợp Dữ Liệu Từ Nhiều Bảng Với JOIN
Khi cần lấy dữ liệu từ nhiều bảng liên quan, ta sử dụng JOIN
.
SELECT employees.first_name, employees.last_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
Câu lệnh này kết hợp bảng employees
và departments
để lấy tên nhân viên và tên phòng ban của họ.
10. Kết Luận
Câu lệnh SELECT
là công cụ mạnh mẽ để truy vấn dữ liệu trong SQL. Nắm vững cách sử dụng SELECT
cùng các mệnh đề như WHERE
, ORDER BY
, GROUP BY
, HAVING
, và JOIN
giúp bạn thao tác dữ liệu hiệu quả hơn. Hãy thực hành nhiều để thành thạo các kỹ thuật này!