Cơ bảnKiến thức cơ bản

SQL là gì? Hướng dẫn SQL cơ bản từ đầu

8 phút đọc16 lượt xem
#sql#database#mysql#postgresql#cơ sở dữ liệu

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ờ:

  1. Truy cập SQLiteOnline.com
  2. Dán đoạn CREATE TABLE ở trên vào ô soạn thảo bên trái
  3. Nhấn nút Run để tạo bảng
  4. Dán đoạn INSERT và nhấn Run để thêm dữ liệu
  5. Thử các câu SELECT khá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:

  1. Hiển thị tên và tuổi của tất cả sinh viên
  2. Tìm sinh viên có tuổi từ 20 trở lên
  3. Hiển thị sinh viên ngành CNTT, sắp xếp theo tuổi tăng dần
  4. Đếm số sinh viên theo từng ngành
  5. 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:

  1. Đà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
  2. Cài đặt database thực tế — MySQL hoặc PostgreSQL trên máy tính của bạn
  3. 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.

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.

Khóa học liên quan

The Complete SQL Bootcamp: Go from Zero to Hero

SQL từ cơ bản đến nâng cao với PostgreSQL.

4.7
Xem khóa học →

MongoDB - The Complete Developer's Guide

Học MongoDB toàn diện: CRUD, aggregation, indexing.

4.6
Xem khóa học →

*Đây là liên kết liên kết (affiliate link). Chúng tôi có thể nhận hoa hồng nếu bạn mua khóa học qua liên kết này.