Sau khi đã hiểu cách tạo bảng và nhập dữ liệu vào trong một cơ sở dữ liệu, việc tiếp theo mà bạn sẽ làm rất thường xuyên – gần như hàng ngày nếu làm việc với dữ liệu – đó là lấy dữ liệu ra để sử dụng. Dù là lập trình web, phân tích dữ liệu hay quản lý thông tin, thao tác đọc dữ liệu luôn chiếm một phần quan trọng trong hệ thống.
Trong bài học này, chúng ta sẽ làm quen với câu lệnh SELECT, câu lệnh “quốc dân” trong SQL dùng để truy vấn dữ liệu.
SELECT là gì?
Câu lệnh SELECT
được dùng để lấy thông tin từ một bảng trong cơ sở dữ liệu. Khi bạn viết một câu lệnh SELECT
, bạn đang nói với MySQL rằng: “Hãy lấy giúp tôi những dòng dữ liệu thoả điều kiện ABC nào đó”.
Cú pháp cơ bản:
SELECT column1, column2, ...
FROM table_name;
Nếu muốn lấy tất cả các cột trong bảng, bạn có thể dùng dấu *
:
SELECT * FROM table_name;
Ví dụ thực hành
Giả sử bạn có bảng tên là students
, chứa các cột: id
, name
, age
, class
.
1. Lấy toàn bộ dữ liệu:
SELECT * FROM students;
→ Câu lệnh này trả về tất cả học sinh và toàn bộ thông tin của từng người.
2. Lấy một vài cột cụ thể:
SELECT name, age FROM students;
→ Kết quả trả về chỉ gồm 2 cột là
name
vàage
.
Lọc dữ liệu với WHERE
Thường bạn không muốn lấy toàn bộ dữ liệu, mà chỉ cần một phần thỏa điều kiện.
SELECT * FROM students
WHERE age > 18;
→ Truy vấn này trả về danh sách học sinh trên 18 tuổi.
Một số toán tử thường dùng với WHERE
:
=
: bằng!=
hoặc<>
: khác>
: lớn hơn<
: nhỏ hơn>=
: lớn hơn hoặc bằng<=
: nhỏ hơn hoặc bằng
Đổi tên cột hiển thị với AS
Đôi khi bạn muốn đổi tên cột trong kết quả trả về (để dễ đọc hoặc phục vụ frontend).
SELECT name AS student_name, age AS student_age FROM students;
Ghi nhớ
SELECT
là câu lệnh cơ bản nhất để đọc dữ liệu.- Dùng
*
để lấy tất cả cột, hoặc liệt kê cụ thể các cột bạn muốn. - Kết hợp
WHERE
để lọc dữ liệu theo điều kiện. - Có thể dùng
AS
để đặt tên mới cho cột kết quả.
Bài tập gợi ý
- Lấy toàn bộ dữ liệu của bảng
books
. - Lấy tên (
title
) và tác giả (author
) của tất cả sách trong bảngbooks
. - Lấy danh sách học sinh có tuổi lớn hơn hoặc bằng 16 trong bảng
students
.
Thảo luận