
SQL là gì? SQL (viết tắt của Structured Query Language — ngôn ngữ truy vấn có cấu trúc) là ngôn ngữ dùng để hỏi và sửa dữ liệu đang nằm trong một cơ sở dữ liệu. Thay vì mở file và cuộn tìm bằng mắt, bạn viết một câu lệnh mô tả điều mình muốn — ví dụ "lấy tất cả đơn hàng tháng 9 của nhân viên Hương, sắp theo tiền giảm dần" — rồi hệ thống trả về đúng phần dữ liệu đó.
Bài này tôi viết cho người không phải dân lập trình: kế toán, nhân viên kinh doanh, nhân viên vận hành và chủ doanh nghiệp. Đọc xong bạn sẽ hiểu bản chất SQL, đọc và tự viết được 5 câu lệnh cơ bản trên một bảng đơn hàng, và quan trọng nhất là biết mình có cần học SQL hay không.
SQL là gì trong IT? Hiểu bằng ngôn ngữ Excel
Trong IT, SQL là ngôn ngữ chuẩn để làm việc với cơ sở dữ liệu quan hệ — loại cơ sở dữ liệu lưu thông tin thành nhiều bảng có quan hệ với nhau. Các phần mềm cơ sở dữ liệu phổ biến hiện nay đều hiểu SQL: MySQL, PostgreSQL, SQL Server, SQLite, MariaDB, Oracle. Cú pháp có khác nhau ít nhiều giữa các hệ, nhưng phần lõi thì gần như giống hệt — học một lần dùng được ở nhiều nơi.
Cách nhanh nhất để hình dung là đối chiếu với Excel hoặc Google Sheet mà bạn đã quen:
- Bảng (table) ≈ một sheet, ví dụ sheet "don_hang".
- Dòng (row / bản ghi) ≈ một đơn hàng cụ thể.
- Cột (column / trường) ≈ một loại thông tin: ngày đặt, khách hàng, thành tiền.
- Câu lệnh SQL ≈ thao tác lọc, sắp xếp, PivotTable — nhưng viết ra thành chữ thay vì bấm chuột.
Khác biệt lớn nhất: trong Excel bạn nhìn thấy toàn bộ dữ liệu rồi mới lọc. Trong cơ sở dữ liệu, dữ liệu nằm trong một "kho" bạn không mở ra xem trực tiếp được; muốn lấy gì phải viết phiếu yêu cầu. Câu SQL chính là tờ phiếu yêu cầu đó.
Một điểm hay bị nhầm: SQL không phải là một phần mềm, cũng không phải ngôn ngữ lập trình đầy đủ như Python hay JavaScript. Nó là ngôn ngữ chuyên dụng để hỏi dữ liệu. Bạn không viết được app bằng SQL, nhưng gần như mọi app quản lý đều dùng SQL ở phía sau.
Câu lệnh SQL là gì? Cấu trúc một câu truy vấn
Câu lệnh SQL là một câu tiếng Anh gần như đọc được thành lời, ghép từ vài từ khoá cố định theo đúng thứ tự: SELECT … FROM … WHERE … ORDER BY …. Dịch thô: "LẤY những cột này TỪ bảng kia NƠI MÀ điều kiện này đúng, SẮP XẾP THEO cột nọ".
Giả sử doanh nghiệp bạn có bảng don_hang với các cột: id, ngay_dat, khach_hang, nhan_vien, thanh_tien, trang_thai. Dưới đây là 5 dòng dữ liệu mẫu (số liệu minh hoạ để bạn tự đối chiếu kết quả):
| id | ngay_dat | khach_hang | nhan_vien | thanh_tien | trang_thai |
|---|---|---|---|---|---|
| DH001 | 2026-09-02 | Cửa hàng Minh Anh | Hương | 5.200.000 | Đã giao |
| DH002 | 2026-09-05 | Công ty Phú Thành | Hương | 12.400.000 | Đã giao |
| DH003 | 2026-09-11 | Cửa hàng Minh Anh | Tuấn | 3.100.000 | Đang xử lý |
| DH004 | 2026-09-18 | Nhà hàng Sen Vàng | Tuấn | 8.750.000 | Đã giao |
| DH005 | 2026-09-25 | Công ty Phú Thành | Hương | 6.300.000 | Đã huỷ |
Một câu truy vấn hoàn chỉnh trên bảng này:
SELECT khach_hang, thanh_tien FROM don_hang WHERE thanh_tien > 5000000 ORDER BY thanh_tien DESC;
Đọc từng mảnh: SELECT chọn cột cần hiện, FROM chỉ bảng lấy dữ liệu, WHERE đặt điều kiện lọc, ORDER BY sắp xếp (DESC là giảm dần, ASC là tăng dần). Dấu chấm phẩy kết thúc câu. Kết quả sẽ là ba dòng: Phú Thành 12.400.000, Sen Vàng 8.750.000, Phú Thành 6.300.000.

5 câu lệnh SQL người mới nên biết
Chỉ cần 5 câu lệnh dưới đây là bạn tự lấy được phần lớn con số báo cáo hằng ngày. Tôi xếp theo đúng thứ tự nên học.
1. SELECT — lấy dữ liệu ra xem
SELECT * FROM don_hang;
Dấu * nghĩa là "tất cả các cột". Khi bảng có nhiều cột, nên gọi tên cột cụ thể cho gọn: SELECT id, khach_hang, thanh_tien FROM don_hang;.
2. WHERE — lọc theo điều kiện
SELECT * FROM don_hang WHERE nhan_vien = 'Hương';
Chữ trong SQL luôn đặt giữa dấu nháy đơn, còn số thì không. Có thể ghép nhiều điều kiện bằng AND / OR:
SELECT * FROM don_hang WHERE trang_thai = 'Đã giao' AND thanh_tien >= 5000000;
Lọc theo khoảng ngày thì dùng BETWEEN: WHERE ngay_dat BETWEEN '2026-09-01' AND '2026-09-30'.
3. ORDER BY — sắp xếp kết quả
SELECT id, thanh_tien FROM don_hang ORDER BY thanh_tien DESC;
Dùng để tìm đơn lớn nhất, khách mua nhiều nhất, đơn tồn lâu nhất. Ghép với LIMIT 10 ở cuối sẽ lấy đúng 10 dòng đầu — hợp để làm bảng "top 10".
4. GROUP BY + SUM — gộp nhóm và tính tổng
Đây là câu lệnh biến SQL thành công cụ báo cáo. Nó tương đương PivotTable trong Excel. Ví dụ tính doanh thu theo nhân viên trong tháng 9/2026, chỉ tính đơn đã giao:
SELECT nhan_vien, SUM(thanh_tien) AS doanh_thu FROM don_hang WHERE trang_thai = 'Đã giao' AND ngay_dat BETWEEN '2026-09-01' AND '2026-09-30' GROUP BY nhan_vien ORDER BY doanh_thu DESC;
Với dữ liệu mẫu ở trên, kết quả là: Hương 17.600.000 và Tuấn 8.750.000. Đơn DH003 bị loại vì đang xử lý, DH005 bị loại vì đã huỷ. Ngoài SUM còn có COUNT (đếm số đơn), AVG (giá trị trung bình), MAX, MIN.
5. JOIN — nối hai bảng với nhau
Trong cơ sở dữ liệu thật, bảng đơn hàng thường chỉ lưu mã khách hàng chứ không lưu cả tên và số điện thoại. Muốn hiện tên, phải nối sang bảng khach_hang:
SELECT k.ten, d.id, d.thanh_tien FROM don_hang d JOIN khach_hang k ON d.khach_hang_id = k.id;
Phần ON là "khớp theo cái gì" — ở đây là mã khách hàng ở bảng đơn trùng với mã ở bảng khách. Chữ d và k chỉ là tên gọi tắt cho đỡ dài. Nếu khái niệm khoá chính — khoá ngoại còn lạ, bạn nên xem qua 6 bước thiết kế cơ sở dữ liệu cho người mới trước khi học JOIN.
Ba lệnh sửa dữ liệu và một quy tắc sống còn
Ngoài nhóm lệnh đọc, SQL còn có INSERT (thêm dòng), UPDATE (sửa), DELETE (xoá). Quy tắc tôi luôn nhắc học viên: UPDATE và DELETE phải luôn có WHERE. Câu DELETE FROM don_hang; sẽ xoá sạch bảng, không có nút hoàn tác như Ctrl+Z trong Excel. Mẹo an toàn: viết câu SELECT với đúng điều kiện đó trước, nhìn kết quả ra đúng mấy dòng cần sửa rồi mới đổi SELECT thành UPDATE.
Học SQL để làm gì khi bạn không viết phần mềm?
Học SQL để tự lấy được số mình cần mà không phải chờ ai. Năm việc cụ thể tôi thấy người làm văn phòng dùng SQL nhiều nhất:
- Tự lấy số báo cáo. Thay vì nhắn "em ơi xuất giúp anh doanh thu tháng 9 theo nhân viên" rồi chờ nửa ngày, bạn chạy một câu
GROUP BYlà có ngay. - Phân tích dữ liệu bán hàng. Khách nào mua lại nhiều lần, mặt hàng nào bán chậm, tỉnh nào đơn huỷ nhiều — đều là các câu truy vấn vài dòng.
- Làm việc với app và web app. Khi doanh nghiệp đã chuyển từ Excel lên phần mềm, dữ liệu nằm trong cơ sở dữ liệu. Biết SQL là biết đường đi vào kho dữ liệu của chính công ty mình.
- Đọc hiểu câu lệnh AI viết hộ. Đây là lý do thời sự nhất, tôi nói kỹ ở phần dưới.
- Kiểm tra dữ liệu sai. Tìm đơn trùng mã, đơn thiếu ngày, khách hàng không có số điện thoại — một câu
WHERE … IS NULLlà ra, nhanh hơn dò mắt rất nhiều.
Hình dung thực tế: một cửa hàng vật liệu xây dựng có vài chục nghìn dòng đơn hàng trong ba năm. Mở file Excel lên đã thấy giật, lọc xong thì công thức tính lại cả phút. Cùng lượng dữ liệu đó nằm trong cơ sở dữ liệu, câu truy vấn trả kết quả gần như tức thì. Nếu file của bạn đang ở tình trạng ì ạch như vậy, bài 9 cách xử lý file Excel bị chậm, nặng, lag có phần phân tích khi nào nên thôi dùng Excel.
Không phải dân IT có cần biết SQL không?
Không bắt buộc, nhưng rất đáng — và mức "đủ dùng" thấp hơn bạn nghĩ nhiều. Bạn không cần biết tối ưu chỉ mục hay viết stored procedure. Với người làm nghiệp vụ, SELECT + WHERE + GROUP BY là đã dùng được việc; thêm JOIN nữa là thoải mái.
Theo từng vai trò, tôi thấy thế này:
- Kế toán: nên biết. Đối chiếu công nợ, tìm hoá đơn lệch, kiểm tra bút toán trùng — SQL nhanh và chính xác hơn lọc tay.
- Nhân viên kinh doanh: nên biết mức cơ bản. Tự xem doanh số của mình, danh sách khách lâu chưa mua lại.
- Vận hành, kho, sản xuất: rất nên. Tra tồn kho theo điều kiện, tìm phiếu nhập xuất lệch, lọc đơn trễ hạn.
- Chủ doanh nghiệp: không cần tự viết, nhưng nên đọc hiểu. Khi bên làm phần mềm nói "chỗ này phải join ba bảng nên chậm", bạn hiểu họ đang nói gì thì khó bị dẫn dắt hơn.
Còn chuyện AI? Đúng là bây giờ bạn tả bằng tiếng Việt thì ChatGPT, Gemini hay Claude viết câu SQL ra ngay. Nhưng AI viết theo cái nó đoán về bảng của bạn. Nó không biết cột trang_thai của công ty bạn có giá trị "Đã huỷ" cần loại trừ, cũng không biết đơn nội bộ phải trừ ra. Câu lệnh chạy trơn tru, trả về một con số đẹp — và con số đó sai. Tôi gặp tình huống kiểu này thường xuyên. Biết SQL đủ để đọc lại và kiểm chứng câu AI viết là kỹ năng đáng giá nhất lúc này, chứ không phải khả năng tự gõ từ đầu.
SQL so với Excel và Google Sheet: chọn bên nào?
Không có bên nào thắng tuyệt đối — chúng giải quyết hai bài toán khác nhau. Bảng so sánh dưới đây dựa trên những gì tôi quan sát khi làm việc với doanh nghiệp vừa và nhỏ:
| Tiêu chí | Excel / Google Sheet | SQL (cơ sở dữ liệu) |
|---|---|---|
| Lượng dữ liệu | Ổn với vài nghìn đến vài chục nghìn dòng; càng nhiều càng chậm | Hàng triệu dòng vẫn bình thường |
| Nhiều người dùng cùng lúc | Google Sheet chia sẻ tốt, nhưng dễ ghi đè, xoá nhầm | Thiết kế sẵn cho nhiều người ghi đồng thời |
| Ràng buộc dữ liệu | Yếu — gõ chữ vào ô ngày tháng vẫn được | Chặt — sai kiểu dữ liệu là báo lỗi, không cho lưu |
| Tốc độ lọc, tổng hợp | Chậm dần theo số dòng và số công thức | Nhanh, gần như không đổi khi dữ liệu tăng |
| Độ khó bắt đầu | Thấp, ai cũng mở được, thấy dữ liệu ngay | Cao hơn: phải cài đặt, phải viết lệnh mới thấy dữ liệu |
| Sửa nhanh một ô | Rất tiện, click là sửa | Phải viết câu UPDATE, rủi ro nếu quên WHERE |
Khi nào Excel hoặc Google Sheet vẫn hợp lý hơn: dữ liệu dưới vài nghìn dòng; cần làm nhanh một bảng tính dùng vài lần rồi bỏ; cần biểu đồ, định dạng màu, in ấn; đội nhóm chỉ 2–3 người và không ai rảnh để học thêm công cụ mới. Đừng chuyển sang cơ sở dữ liệu chỉ vì nghe nói nó "chuyên nghiệp hơn" — chi phí lớn nhất không phải tiền, mà là việc cả đội phải đổi thói quen. Chủ đề ranh giới này tôi đã bàn kỹ trong bài dùng Google Sheet làm database: khi nào ổn, khi nào phải chuyển.
Bắt đầu học SQL thế nào cho đỡ nản?
Cách hiệu quả nhất là có sẵn một bộ dữ liệu giống công việc của bạn, rồi tự đặt câu hỏi kinh doanh và tìm cách trả lời bằng SQL. Bốn bước tôi thường gợi ý:
- Chọn công cụ nhẹ nhất. Người mới nên bắt đầu với SQLite — không cần cài máy chủ, cả cơ sở dữ liệu chỉ là một file. Ngoài ra có nhiều sân chơi SQL chạy trực tiếp trên trình duyệt, gõ lệnh thấy kết quả ngay, không cài gì cả. Chưa cần đụng tới MySQL hay SQL Server vội.
- Dùng dữ liệu của chính bạn. Xuất một file bán hàng, chấm công hoặc nhập xuất kho của công ty ra CSV rồi nạp vào. Học trên dữ liệu mình hiểu nghiệp vụ thì nhớ gấp nhiều lần so với bảng mẫu tiếng Anh.
- Tự viết ra 20 câu hỏi kinh doanh. "Tháng trước ai bán nhiều nhất?", "Khách nào trên 60 ngày chưa mua lại?", "Mặt hàng nào bị huỷ đơn nhiều nhất?"… Mỗi ngày giải một câu. Đây là phần quyết định — học cú pháp suông sẽ quên rất nhanh.
- Luyện trên bản sao, không bao giờ trên dữ liệu thật. Giai đoạn đầu chắc chắn sẽ có lúc gõ nhầm.
Hai lỗi người mới hay mắc nhất: quên WHERE khi UPDATE/DELETE (sửa hoặc xoá toàn bộ bảng), và nhầm WHERE với HAVING. Phân biệt cho dễ nhớ: WHERE lọc từng dòng trước khi gộp nhóm, HAVING lọc kết quả sau khi đã gộp. Muốn lấy nhân viên có doanh thu trên 10 triệu thì phải viết GROUP BY nhan_vien HAVING SUM(thanh_tien) > 10000000, chứ đặt điều kiện đó vào WHERE sẽ báo lỗi.
Tóm lại và việc nên làm tiếp
Gói lại những ý chính:
- SQL là ngôn ngữ để hỏi và sửa dữ liệu trong cơ sở dữ liệu quan hệ; bảng ≈ sheet, dòng ≈ bản ghi, cột ≈ trường.
- Khung câu truy vấn cố định:
SELECT … FROM … WHERE … ORDER BY …. - Năm câu lệnh đủ dùng cho người làm nghiệp vụ: SELECT, WHERE, ORDER BY, GROUP BY + SUM, JOIN.
- UPDATE và DELETE luôn phải có WHERE — không có Ctrl+Z.
- Không phải dân IT vẫn nên biết SQL ở mức đọc hiểu, nhất là khi AI viết lệnh hộ nhưng không hiểu nghiệp vụ của bạn.
- Excel và Google Sheet vẫn hợp lý với dữ liệu nhỏ, việc làm nhanh, đội ít người.
Bước tiếp theo trong hôm nay: mở một công cụ SQL chạy trên trình duyệt, tạo bảng don_hang với đúng 6 cột như bài này, nhập 5 dòng dữ liệu mẫu ở trên, rồi chạy lại câu tính doanh thu theo nhân viên. Nếu bạn ra được hai con số 17.600.000 và 8.750.000, nghĩa là bạn đã hiểu cả WHERE, GROUP BY lẫn SUM — phần khó nhất của buổi đầu tiên đã xong.
Muốn đi tiếp theo một lộ trình có thứ tự, bạn xem lộ trình học SQL 4 tuần từ con số 0. Còn nếu muốn thấy SQL áp dụng vào một bài toán nghiệp vụ trọn vẹn, bài thiết kế database quản lý kho: bảng, cột, quan hệ và câu SQL mẫu là ví dụ sát thực tế nhất.
Câu hỏi thường gặp
›Không phải dân IT có cần biết SQL không?
Không bắt buộc, nhưng rất đáng học nếu công việc của bạn gắn với dữ liệu — kế toán, bán hàng, kho, vận hành. Mức đủ dùng chỉ gồm SELECT, WHERE và GROUP BY, không cần kiến thức lập trình. Biết chừng đó là bạn tự lấy được số báo cáo thay vì chờ người khác xuất giúp.
›Học SQL mất bao lâu?
Để viết được các câu truy vấn cơ bản (SELECT, WHERE, ORDER BY, GROUP BY) thì thường chỉ mất vài buổi nếu bạn luyện trên dữ liệu công việc của chính mình. JOIN và các hàm tổng hợp nâng cao cần thêm thời gian làm quen với cách các bảng liên kết nhau. Tốc độ phụ thuộc nhiều vào việc bạn có dùng SQL hằng ngày hay không, chứ không phải vào số giờ học lý thuyết.
›SQL và MySQL khác nhau thế nào?
SQL là ngôn ngữ, còn MySQL là một phần mềm quản trị cơ sở dữ liệu hiểu ngôn ngữ đó. Tương tự, PostgreSQL, SQL Server và SQLite cũng là các phần mềm khác nhau cùng dùng SQL. Phần cú pháp lõi gần như giống nhau, nên học SQL một lần là chuyển qua lại giữa các hệ khá dễ.
›Có thể nhờ AI viết câu SQL không?
Được, và hiện nay các trợ lý AI viết SQL khá tốt nếu bạn mô tả rõ tên bảng, tên cột và điều kiện. Nhưng AI không biết quy ước nghiệp vụ riêng của công ty bạn — ví dụ đơn trạng thái 'Đã huỷ' phải loại khỏi doanh thu — nên câu lệnh vẫn chạy mà kết quả lại sai. Vì vậy bạn nên biết SQL đủ để đọc lại và kiểm chứng trước khi dùng con số đó đi báo cáo.
Tác giả
Chuyên gia chuyển đổi số · Đại diện 5F Edu
Hơn 8 năm triển khai và tư vấn chuyển đổi số cho doanh nghiệp vừa và nhỏ: chuẩn hoá quy trình, xây phần mềm quản lý bằng AppSheet và web app, tự động hoá bằng N8N. Người làm kênh YouTube Nghiện AppSheet.



