SQL được chia thành các nhóm lệnh theo mục đích:
- DDL (Data Definition Language) — định nghĩa cấu trúc:
CREATE,ALTER,DROP,TRUNCATE. Tác động lên schema (bảng, index, ràng buộc). - DML (Data Manipulation Language) — thao tác dữ liệu bên trong bảng:
INSERT,UPDATE,DELETE. (SELECTđược xếp là DML hoặc tách riêng thành DQL — Data Query Language tùy tài liệu.) - DCL (Data Control Language) — phân quyền:
GRANT,REVOKE. - TCL (Transaction Control Language) — điều khiển giao dịch:
COMMIT,ROLLBACK,SAVEPOINT.
Hay bị hỏi kèm: TRUNCATE là DDL (không phải DML) dù nghe như xóa dữ liệu, vì nó bỏ luôn vùng lưu trữ thay vì xóa từng hàng. Một số DDL (như trong Oracle) tự động commit, còn PostgreSQL cho DDL chạy trong transaction. Thực tế dev dùng DML phần lớn thời gian, DDL khi migration; DCL/TCL thường do DBA/DevOps đảm nhận.