SQL là gì?
SQL (Structured Query Language — Ngôn ngữ truy vấn có cấu trúc) là ngôn ngữ dùng để giao tiếp với cơ sở dữ liệu. Bài viết này giải thích SQL là gì, tại sao cần học, và hướng dẫn bạn viết câu lệnh SQL đầu tiên ngay trên trình duyệt — không cần cài đặt gì cả.
Nói đơn giản: SQL là ngôn ngữ để "nói chuyện" với database. Bạn ra lệnh "lấy dữ liệu này", "thêm bản ghi kia", "xóa dòng này" — database sẽ thực hiện và trả về kết quả.
Hãy tưởng tượng bạn đến thư viện và nhờ thủ thư: "Cho tôi xem tất cả sách về lập trình xuất bản sau năm 2020". Thủ thư tìm và đưa danh sách cho bạn. SQL hoạt động y hệt — bạn viết câu lệnh, database trả về kết quả.
SQL dùng để làm gì?
SQL thực hiện 4 thao tác chính, gọi là CRUD:
- Create (Tạo mới) — Thêm dữ liệu mới vào database
- Read (Đọc) — Tìm kiếm và hiển thị dữ liệu
- Update (Cập nhật) — Thay đổi dữ liệu đã có
- Delete (Xóa) — Xóa dữ liệu không còn cần
Từ website thương mại điện tử, ứng dụng mobile, đến hệ thống quản lý doanh nghiệp — hầu hết mọi ứng dụng đều dùng SQL ở phía backend.
Cơ sở dữ liệu (Database) là gì?
Cách dễ nhất để hiểu database là nghĩ đến bảng Excel:
- Table (Bảng) = Sheet trong Excel
- Row (Hàng) = Một bản ghi dữ liệu (ví dụ: thông tin 1 sinh viên)
- Column (Cột) = Loại thông tin (ví dụ: tên, tuổi, email)
Ví dụ bảng quản lý sinh viên:
| id | ho_ten | tuoi | email | nganh |
|----|-------------------|------|----------------|----------|
| 1 | Nguyễn Văn Minh | 20 | minh@email.com | CNTT |
| 2 | Trần Thị Lan | 21 | lan@email.com | CNTT |
| 3 | Lê Hoàng Nam | 19 | nam@email.com | Kinh tế |
Trong database quan hệ (Relational Database), nhiều bảng được liên kết với nhau thông qua "khóa" (key). Ví dụ: bảng "Sinh viên" và bảng "Điểm thi" liên kết qua sinh_vien_id. Nhờ cơ chế này, dữ liệu không bị trùng lặp và dễ quản lý hơn.
Tại sao cần học SQL?
SQL là kỹ năng bắt buộc cho nhiều vị trí IT:
- Backend Developer — Thao tác dữ liệu trong ứng dụng
- Data Analyst — Trích xuất và phân tích dữ liệu
- Data Scientist — Xử lý và làm sạch dữ liệu lớn
- QA Engineer — Kiểm tra dữ liệu trong quá trình test
Năm 2026, hầu hết tin tuyển dụng IT trên TopDev và ITviec đều yêu cầu SQL. Shopee, Lazada, VNG, và các startup công nghệ đều dùng SQL hàng ngày.
Thêm vào đó, cú pháp SQL gần giống tiếng Anh tự nhiên — rất dễ đọc ngay cả khi bạn chưa có kinh nghiệm lập trình:
-- "Lấy tất cả từ bảng sinh_vien"
SELECT * FROM sinh_vien;
-- Đọc như tiếng Anh: "SELECT everything FROM students"
Các hệ quản trị cơ sở dữ liệu phổ biến
SQL là ngôn ngữ chuẩn, nhưng có nhiều phần mềm database khác nhau đều dùng SQL. Dưới đây là so sánh nhanh để bạn chọn khi bắt đầu:
| Hệ quản trị | Ưu điểm chính | Phù hợp với | Giá |
|---|---|---|---|
| MySQL | Phổ biến nhất, tài liệu nhiều | Web app, WordPress, PHP | Miễn phí |
| PostgreSQL | Nhiều tính năng, hiệu suất cao | Startup, dự án phức tạp | Miễn phí |
| SQLite | Siêu nhẹ, không cần server | Mobile app, prototype, học SQL | Miễn phí |
| SQL Server | Tích hợp tốt với hệ sinh thái Microsoft | Doanh nghiệp lớn, .NET | Trả phí |
Nếu bạn mới học, hãy dùng SQLiteOnline.com — không cần cài đặt gì, chỉ cần trình duyệt là luyện tập được ngay.
Cú pháp SQL cơ bản
Hãy bắt đầu viết SQL với bảng sinh viên làm ví dụ. Đầu tiên, tạo bảng:
Tạo bảng (CREATE TABLE)
-- Tạo bảng quản lý sinh viên
CREATE TABLE sinh_vien (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ho_ten TEXT NOT NULL, -- Họ tên (bắt buộc nhập)
tuoi INTEGER, -- Tuổi
email TEXT, -- Email
nganh TEXT -- Ngành học
);
INSERT — Thêm dữ liệu
-- Thêm nhiều sinh viên cùng lúc
INSERT INTO sinh_vien (ho_ten, tuoi, email, nganh)
VALUES
('Nguyễn Văn Minh', 20, 'minh@email.com', 'CNTT'),
('Trần Thị Lan', 21, 'lan@email.com', 'CNTT'),
('Lê Hoàng Nam', 19, 'nam@email.com', 'Kinh tế'),
('Phạm Thị Mai', 22, 'mai@email.com', 'CNTT'),
('Võ Đức Hùng', 20, 'hung@email.com', 'Marketing');
SELECT — Truy vấn dữ liệu
-- Lấy tất cả dữ liệu
SELECT * FROM sinh_vien;
-- Chỉ lấy tên và ngành
SELECT ho_ten, nganh FROM sinh_vien;
-- Lọc sinh viên ngành CNTT
SELECT * FROM sinh_vien WHERE nganh = 'CNTT';
-- Sắp xếp theo tuổi từ nhỏ đến lớn
SELECT * FROM sinh_vien ORDER BY tuoi ASC;
-- Đếm số sinh viên theo từng ngành
SELECT nganh, COUNT(*) AS so_luong
FROM sinh_vien
GROUP BY nganh;
UPDATE — Cập nhật dữ liệu
-- Cập nhật email của Minh
UPDATE sinh_vien
SET email = 'minh.nguyen@email.com'
WHERE ho_ten = 'Nguyễn Văn Minh';
-- QUAN TRỌNG: Luôn dùng WHERE khi UPDATE!
-- Nếu bỏ WHERE, TẤT CẢ dữ liệu trong bảng sẽ bị thay đổi!
DELETE — Xóa dữ liệu
-- Xóa sinh viên có id = 3
DELETE FROM sinh_vien WHERE id = 3;
-- CẢNH BÁO: DELETE không có WHERE sẽ xóa HẾT dữ liệu trong bảng!
-- Đừng bao giờ chạy: DELETE FROM sinh_vien; (không có WHERE)
WHERE — Lọc dữ liệu theo điều kiện
-- Sinh viên CNTT có tuổi từ 20 trở lên
SELECT * FROM sinh_vien
WHERE nganh = 'CNTT' AND tuoi >= 20;
-- Tìm sinh viên có tên chứa "Nguyễn"
SELECT * FROM sinh_vien
WHERE ho_ten LIKE '%Nguyễn%';
Xem chi tiết hơn tại bài viết Các lệnh SQL cơ bản: SELECT, INSERT, UPDATE, DELETE.
Thực hành ngay trên trình duyệt
Không cần cài đặt gì — bạn có thể luyện tập SQL ngay bây giờ:
- Truy cập SQLiteOnline.com
- Dán đoạn
CREATE TABLEở trên vào ô soạn thảo bên trái - Nhấn nút Run để tạo bảng
- Dán đoạn
INSERTvà nhấn Run để thêm dữ liệu - Thử các câu
SELECTkhác nhau để tìm kiếm dữ liệu
Bài tập thực hành: Sau khi tạo bảng, hãy tự viết SQL cho các yêu cầu sau:
- Hiển thị tên và tuổi của tất cả sinh viên
- Tìm sinh viên có tuổi từ 20 trở lên
- Hiển thị sinh viên ngành CNTT, sắp xếp theo tuổi tăng dần
- Đếm số sinh viên theo từng ngành
- Cập nhật email của một sinh viên bất kỳ
Câu hỏi thường gặp
SQL có phải là ngôn ngữ lập trình không?
SQL là "ngôn ngữ chuyên dụng" (domain-specific language), khác với ngôn ngữ lập trình đa năng như Python hay JavaScript. SQL chỉ dùng để thao tác với database, không dùng để xây dựng ứng dụng.
Nên học MySQL hay PostgreSQL trước?
Cú pháp SQL cơ bản gần như giống nhau giữa các hệ quản trị. Hãy học SQL chuẩn trước, sau đó chọn MySQL hoặc PostgreSQL tùy theo dự án và môi trường làm việc.
Học SQL mất bao lâu?
Các lệnh cơ bản (SELECT, INSERT, UPDATE, DELETE) mất khoảng 1 tuần nếu luyện tập đều đặn. Các chủ đề nâng cao như JOIN, subquery, và index mất thêm 2–4 tuần.
NoSQL khác SQL như thế nào?
SQL lưu dữ liệu dạng bảng có cấu trúc cố định. NoSQL (như MongoDB) lưu dạng JSON linh hoạt hơn, phù hợp với dữ liệu không có cấu trúc hoặc cần scale nhanh. Mỗi loại có ưu điểm riêng tùy trường hợp sử dụng.
Bước tiếp theo
Sau khi nắm vững SQL cơ bản, hãy tiếp tục với:
- Đào sâu cú pháp SQL — JOIN, subquery, hàm tổng hợp, index → Các lệnh SQL cơ bản: SELECT, INSERT, UPDATE, DELETE
- Cài đặt database thực tế — MySQL hoặc PostgreSQL trên máy tính của bạn
- Kết hợp SQL với ngôn ngữ lập trình — Python và SQL là cặp đôi rất phổ biến trong data analysis
SQL là nền tảng không thể thiếu trong hầu hết mọi lĩnh vực IT. Bắt đầu luyện tập từ hôm nay với SQLiteOnline.com — chỉ cần 30 phút mỗi ngày là đủ để nắm vững các lệnh cơ bản trong một tuần.