SELECT Xác định, tìm kiếm nội dung thông tin từ các trường: Dấu “*” hiểu là từ tất cả các trường.
FROM Xác định nguồn thông tin:
Thông tin có thể từ các bảng hoặc các khung nhìn trong danh sách liệt kê
WHERE Xác định điều kiện:
Điều kiện là một biểu thức Boolean, chỉ các bản ghi (bộ|hàng) thoả mãn điều kiện mới được đưa ra
Mẫu câu lệnh thường dùng nhất là:
SELECT *|[Field1|Expression1 [AS alias1], Field2| Expression2 [AS alias2], …FieldN| ExpressionN [AS aliasN]] [DISTINCT]
[FROM Table1 | View1, Table2 | View2,…,TableN | ViewN] [WHERE <Condition_Expression>]
• GROUPE BY Phân nhóm hoặc gộp nhóm dữ liệu trong bảng:
Có nghĩa rằng các bản ghi (bộ|hàng) có cùng giá trị trường sẽ được gộp thành nhóm, trong quan hệ kết quả ta chỉ thấy các giá trị đại diện của nhóm. Chú ý rằng danh sách cột sau mệnh đề GROUPE BY phải bao hàm danh sách trường sau mệnh đề SELECT.
• HAVING <Condition_Expression> thường đi kèm với GROUPE BY trong đó biểu thức điều kiện <Condition_Expression>, trong quan hệ kết quả chỉ chứa các hàng thoả điều kiện <Condition_Expression>. Trong biểu thức điều kiện (xem…) nếu có chứa toán hạng là một biến trường thì biến trường đó phải có mặt trong danh sách trường sau mệnh đề GROUPE BY.
• ORDER BY <Field_List| Field_order | Expression> [ASC | DESC] Khi tìm kiếm thông tin, các thông tin lấy về sẽ được sắp xếp theo giá trị của các cột chỉ ra trong danh sách theo thứ tự tăng nếu dùng ASC, giảm nếu dùng DESC (mặc định là ASC), các giá trị bằng nhau được sắp liên tiếp liền kề nhau. Nếu có nhiều trường thứ tự sắp xếp ưu tiên theo danh sách trường từ trái sang phải. Nếu trong lệnh có dùng
GROUPE BY việc sắp xếp sẽ chỉ có tác dụng cho từng nhóm được tạo ra bởi GROUPE BY.