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:
LIMITtrong MySQL, PostgreSQL:
SELECT * FROM employees LIMIT 10;
TOPtrong 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!