Trong chuyên đề bài viết Học MySQL cơ bản, bài viết hôm nay chúng ta sẽ tìm hiểu về câu lệnh SELECT.
SELECT là lệnh truy vấn được dùng để lấy kết quả từ một hoặc nhiều bảng trong cơ sở dữ liệu của MySQL cũng như các ngôn ngữ SQL khác.
Ví dụ chúng ta đang có bảng user, chứa khoảng 1 triệu người dùng. Chúng ta muốn lấy ra 1 user, 10 user đầu tiên, hay lấy ra user có id hoặc thông tin như thế nào đó. Như vậy ta sẽ sử dụng tới lệnh SELECT và kèm với điều kiện để lấy ra được bản ghi mong muốn.
Cú pháp lệnh SELECT trong MySQL
Ở dạng cơ bản nhất, cú pháp của lệnh SELECT sẽ như sau:
SELECT “biểu thức”
FROM “bảng”
[WHERE “điều kiện”];
Trong đó:
- biểu thức: Biểu thức này SQL sẽ dựa vào đó để lấy ra những cột nào trong bảng(ví dụ: SELECT id, name, phone), mỗi trường cách nhau bởi 1 dấu phẩy, hoặc SELECT * sẽ lấy tất cả các cột.
- bảng: Ta lấy dữ liệu từ bảng nào, ví dụ FROM users thì ta đang lấy dữ liệu từ bảng users.
- điều kiện: Điều kiện để lấy ra bản ghi phù hợp. Ví dụ WHERE id = 5 thì sẽ chỉ lấy ra bản ghi duy nhất có id là 5. Hoặc WHERE id < 15 lấy ra các bản ghi có id nhỏ hơn 15….
Trong trường hợp nếu muốn lấy ra toàn bộ bản ghi trong bảng ta có thể bỏ qua lệnh WHERE.
Ở dạng đầy đủ hơn và có thể lấy ra được dữ liệu tối ưu nhất, cú pháp của lệnh SELECT trong SQL Server sẽ có thêm như sau:
SELECT [ ALL | DISTINCT ]
[ TOP (gia_tri_dau) [ PERCENT ] [ WITH TIES ] ]
“Biểu thức”
FROM “bảng”
[WHERE “điều kiện”]
[GROUP BY “biểu thức”]
[HAVING “điều kiện”]
[ORDER BY “biểu thức” [ ASC | DESC ]];
Trong đó:
GROUP BY “biểu thức”: Tùy chọn. Thu thập dữ liệu từ nhiều bản ghi và nhóm kết quả theo một hoặc nhiều cột.
HAVING “điều kiện”: Tùy chọn. Dùng kết hợp với GROUP BY để giới hạn nhóm các hàng trả về khi điều kiện được đáp ứng là TRUE.
ORDER BY “biểu thức”: Tùy chọn. Được dùng để lọc bộ kết quả. ASC sẽ lọc theo thứ tự tăng dần và DESC sẽ lọc theo thứ tự giảm dần.
Ví dụ về SELECT trong MySQL
Ví dụ mình có bảng users gồm các bản ghi như bên dưới.
Bây giờ mình sẽ lấy ra toàn bộ dữ liệu trong bảng, có nghĩa là lấy hết tất cả các hàng và tất cả thông tin trong 1 hàng, câu lệnh SQL như sau:
SELECT *
FROM users
Ta nhận được kết quả như vậy.
Tiếp theo mình sẽ thực hiện chỉ lấy ra các user có chức vụ là Trưởng phòng, tức posotion_id =2. Lệnh SQL.
SELECT *
FROM `users`
WHERE position_id = 2;
Kết quả thực hiện truy vấn.
Tiếp tục một ví dụ nữa là sẽ lấy ra các user là Nhân viên, khác với ví dụ trên là lấy hết tất cả thông tin thì ở đây sẽ chỉ lấy ra các thông tin là id, position_id và position_name.
SELECT id, position_id, position_name
FROM `users`
WHERE position_id = 3
Ta nhận được kết quả thực hiện truy vấn.
Cách dùng mệnh đề ORDER BY, GROUP BY, HAVING sử dụng trong lệnh SELECT, cũng như các điều kiện mệnh đề WHERE nâng cao hơn mình sẽ tiếp tục thực hiện trong các bài viết tiếp theo, tiếp tục theo dõi nhé. Cảm ơn bạn đã đọc hết bài viết.
[XEM TẤT CẢ BÀI VIẾT CHUYÊN ĐỀ MYSQL TẠI ĐÂY]
XEM THÊM Lệnh DELETE trong MySQL – Lệnh xóa bản ghi Tìm hiểu thuộc tính AUTO_INCREMENT trong MySQL – Giá trị tự tăng dần Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng Mệnh đề WHERE trong MySQL – Mệnh đề điều kiện