Accessing Data
Cấu trúc của lệnh SELECT
SELECT
[col1], [col2], ...
FROM
[table_name]
WHERE
[condition]
ORDER BY
[col1] ASC|DESC,
[col2] ASC|DESC,
Mệnh đề WHERE
Các phép toán lô-gíc (logical)
- AND: dùng để kết hợp các mệnh đề với nhau, trả về TRUE nếu tất cả các mệnh đề đều đúng.
- OR: dùng để kết hợp các mệnh đề với nhau, trả về TRUE nếu một trong các mệnh đề đúng.
- NOT: dùng để phủ định kết quả của mệnh đề.
- LIKE: dùng để so sánh một giá trị với một chuỗi ký tự.
- IN: dùng để kiểm tra xem một giá trị có nằm trong một danh sách các giá trị hay không.
- BETWEEN: value1 AND value2 dùng để kiểm tra xem một giá trị có nằm trong một khoảng giá trị hay không.
- EXISTS: dùng để kiểm tra sự tồn tại của một bản ghi trong một bảng con.
- ANY: dùng để so sánh với một danh sách các giá trị và trả về TRUE nếu bất kỳ giá trị nào trong danh sách đó khớp với giá trị được so sánh.
- SOME: cũng tương tự như ANY, nó cũng dùng để so sánh với một danh sách các giá trị và trả về TRUE nếu bất kỳ giá trị nào trong danh sách đó khớp với giá trị được so sánh.
- ALL: dùng để so sánh với một danh sách các giá trị và trả về TRUE nếu tất cả các giá trị trong danh sách đó khớp với giá trị được so sánh.
Các phép toán so sánh (comparison)
=
<>
!=
>
>=
<
<=
Mệnh đề ORDER BY
Dùng để sắp xếp kết quả truy vấn.
Tăng dần ASC
Dùng để sắp xếp tăng dần
SELECT [col1], [col2], ...
FROM [table_name]
ORDER BY [col1] ASC
Giảm dần DESC
Dùng để sắp xếp giảm dần
SELECT [col1], [col2], ...
FROM [table_name]
ORDER BY [col1] DESC
DISTINCT
Dùng để loại bỏ các giá trị trùng lặp trong kết quả truy vấn.
SELECT DISTINCT [col1], [col2], ...
FROM [table_name]
TOP & TOP PERCENT
TOP number
Dùng để giới hạn số lượng bản ghi trả về.
SELECT TOP 10 [col1], [col2], ...
FROM [table_name]
TOP number
PERCENT
Dùng để giới hạn số lượng bản ghi trả về theo phần trăm.
SELECT TOP 10 PERCENT [col1], [col2], ...
FROM [table_name]
WITH TIES
Dùng để bao gồm các bản ghi có giá trị cuối cùng bằng với giá trị của bản ghi cuối cùng trong danh sách. Kết hợp với mệnh đề ORDER BY để sắp xếp trước khi lấy TOP.
SELECT TOP 10 WITH TIES [Id], [Name], [Discount]
FROM [Products]
ORDER BY [Discount] DESC
Mệnh đề GROUP BY
GROUP BY
Dùng để nhóm các bản ghi có cùng giá trị của một hoặc nhiều cột.
SELECT [col1], [col2], ...
FROM [table_name]
GROUP BY [col1], [col2], ...
GROUP BY WITH AGGREGATE FUNCTIONS
- COUNT
SELECT COUNT([col1])
FROM [table_name]
GROUP BY [col1]
HAVING
Dùng để lọc các bản ghi sau khi đã nhóm.
SELECT [col1], [col2], ...
FROM [table_name]
GROUP BY [col1], [col2], ...
HAVING [condition]
SELECT INTO
Dùng để tạo bảng mới từ kết quả truy vấn.
SELECT [col1], [col2], ...
INTO [new_table_name]
FROM [table_name]
WHERE [condition]