+1

Phân loại SQL Queries: "Biệt đội" 5 nhóm lệnh quyền năng trong Database

1. DDL (Data Definition Language) - Nhóm "Kiến trúc sư"

Hãy tưởng tượng bạn đang xây một cái kho. Trước khi chất hàng vào, bạn cần xây tường, dựng cột, chia ngăn kệ. Đó chính là nhiệm vụ của DDL.

Nhóm này dùng để định nghĩa cấu trúc của Database. Khi bạn chạy lệnh DDL, nó sẽ thay đổi "bản thiết kế" của hệ thống.

  • CREATE: Xây mới (Bảng, Database, Index).
  • ALTER: Sửa đổi cấu trúc (Thêm cột, đổi kiểu dữ liệu).
  • DROP: Đập bỏ hoàn toàn (Xóa sổ luôn cái bảng hoặc database).
  • TRUNCATE: "Dọn nhà" cấp tốc (Xóa sạch dữ liệu trong bảng nhưng giữ lại cái khung/cấu trúc).

2. DML (Data Manipulation Language) - Nhóm "Công nhân bốc xếp"

Sau khi "kiến trúc sư" DDL đã xây xong bảng, chúng ta cần đưa dữ liệu vào. Đây là lúc DML ra tay. Nhóm này chuyên xử lý các bản ghi (rows) cụ thể.

  • INSERT: Thêm dữ liệu mới.
  • UPDATE: Chỉnh sửa dữ liệu đang có.
  • DELETE: Xóa một hoặc nhiều bản ghi cụ thể.

Lưu ý nhỏ: Khi dùng UPDATE hoặc DELETE, đừng bao giờ quên mệnh đề WHERE nếu bạn không muốn "bay màu" toàn bộ dữ liệu của công ty nhé!

3. DQL (Data Query Language) - Nhóm "Thủ thư mẫn cán"

Đây là nhóm lệnh mà anh em Backend dùng nhiều nhất (chiếm tới 80% thời gian). Nhiệm vụ duy nhất của nó là lấy dữ liệu ra để hiển thị cho người dùng.

  • SELECT: Lệnh "vương giả". Nó đi kèm với một loạt các "đồ chơi" như WHERE, JOIN, GROUP BY, HAVING, ORDER BY.

4. DCL (Data Control Language) - Nhóm "Bảo vệ"

Trong một hệ thống lớn, không phải ai cũng có quyền xem lương của Giám đốc hay xóa tài khoản của người khác. DCL giúp quản lý quyền truy cập.

  • GRANT: Cấp quyền cho user.
  • REVOKE: Thu hồi quyền đã cấp.

5. TCL (Transaction Control Language) - Nhóm "Giao dịch viên ngân hàng"

Đây là nhóm lệnh cực kỳ quan trọng để đảm bảo tính ACID mà chúng ta đã bàn ở các bài trước. Nó quản lý các thay đổi được thực hiện bởi DML.

  • COMMIT: Xác nhận lưu vĩnh viễn các thay đổi vào Database.
  • ROLLBACK: "Quay xe"! Hủy bỏ các thay đổi nếu có lỗi xảy ra trong quá trình giao dịch.
  • SAVEPOINT: Đặt một "điểm checkpoint" để nếu lỗi thì chỉ cần quay về điểm đó thôi, không cần quay về tận đầu.
Nhóm Tên đầy đủ Chức năng chính Lệnh tiêu biểu
DDL Definition Định nghĩa cấu trúc CREATE , ALTER , DROP
DML Manipulation Thao tác dữ liệu INSERT, UPDATE, DELETE
DQL Query Truy vấn dữ liệu SELECT
DCL Control Kiểm soát truy cập GRANT, REVOKE
TCL Transaction Quản lý giao dịch COMMIT, ROLLBACK

Lời kết

Việc hiểu rõ 5 nhóm lệnh này giúp bạn có cái nhìn hệ thống hơn. Khi làm việc với các Framework như Laravel hay Go, các ORM (như Eloquent hay GORM) thường đã "bọc" sẵn các nhóm này, nhưng hiểu bản chất bên dưới sẽ giúp bạn debug cực nhanh khi gặp những ca khó.

Ở bài tiếp theo, mình sẽ cùng các bạn thực chiến với các câu lệnh SELECT nâng cao (Subqueries vs Joins) để tối ưu hiệu năng nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí