Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL Server

Lệnh SELECT trong SQL Server

Hướng dẫn này giúp bạn sử dụng câu lệnh SELECT trong SQL Server (T-SQL) với cú pháp và ví dụ.

SELECT là lệnh dùng để truy xuất kết quả từ một hoặc nhiều bảng trong cơ sở dữ liệu SQL Server.

Cú pháp câu lệnh SELECT

Dạng đơn giản, cú pháp của câu lệnh SELECT như sau:

SELECT 'biểu_thức'
FROM 'bảng'
[WHERE 'điều_kiện'];

Dạng đầy đủ, cú pháp lệnh SELECT trong SQL Server sẽ là:

SELECT [ALL | DISTINCT]
[TOP (gia_tri_dau) [PERCENT] [WITH TIES]]
'Biểu_thức'
FROM 'bảng'
[WHERE 'điều_kiện']
[GROUP BY 'biểu_thức']
[HAVING 'điều_kiện']
[ORDER BY 'biểu_thức' [ASC | DESC]];

Tên biến hoặc giá trị biến

ALL - Tùy chọn, trả về tất cả các mục khớp.

DISTINCT - Tùy chọn. Loại bỏ tất cả các giá trị trùng lặp khỏi tập kết quả.

TOP (gia_tri_dau) - Tùy chọn. Nếu chỉ định, sẽ trả về các giá trị đầu tiên trong tập kết quả dựa trên gia_tri_dau được chọn. Ví dụ, TOP (10) sẽ trả về 10 hàng đầu tiên trong tập kết quả.

PERCENT - Tùy chọn. Nếu chỉ định, các hàng đầu tiên dựa trên phần trăm trên tập kết quả (được chỉ định bởi gia_tri_dau). Ví dụ TOP (10) PERCENT sẽ trả về 10% hàng đầu tiên trong tập kết quả.

WITH TIES - Tùy chọn. Nếu chỉ định, các hàng trùng giá trị ở cuối giới hạn kết quả sẽ được trả về. Điều này có thể khiến số hàng trả về nhiều hơn TOP cho phép.

Biểu thức - Cột hoặc giá trị tính toán bạn muốn truy xuất. Dùng * nếu muốn lấy tất cả các cột.

Bảng - Bảng bạn muốn lấy kết quả. Phải có ít nhất 1 bảng được liệt kê trong lệnh FROM.

WHERE 'điều_kiện' - Tùy chọn. Điều kiện mà kết quả trả về phải đáp ứng.

GROUP BY 'biểu_thức' - Tùy chọn. Thu thập dữ liệu từ nhiều bản ghi và nhóm kết quả theo một hoặc nhiều cột.

HAVING 'điều_kiện' - Tùy chọn. Dùng kết hợp với GROUP BY để giới hạn nhóm hàng trả về khi điều kiện là TRUE.

ORDER BY 'biểu_thức' - Tùy chọn. Dùng để sắp xếp tập kết quả. ASC sắp xếp tăng dần và DESC sắp xếp giảm dần.

Ví dụ - Chọn tất cả các trường trong một bảng

SELECT *
FROM hangtonkho
WHERE soluong > 5
ORDER BY hangtonkho_id ASC;

Trong ví dụ này, * chỉ ra rằng tất cả các trường hangtonkho sẽ lớn hơn 5 trong bảng hangtonkho. Tập kết quả được sắp xếp theo thứ tự tăng dần của hangtonkho_id.

Ví dụ - Chọn một số trường trong bảng

SELECT hangtonkho_id, hangtonkho_type, soluong
FROM hangtonkho
WHERE hangtonkho_id >= 555
AND hangtonkho_type = 'phanmem'
ORDER BY soluong DESC, hangtonkho_id ASC;

Trong ví dụ trên, kết quả trả về chỉ bao gồm ID, loại và số lượng (hangtonkho_id, hangtonkho_type và soluong) của hàng tồn kho từ bảng hangtonkho với điều kiện ID lớn hơn hoặc bằng 555, loại hàng tồn kho là 'phanmem'. Kết quả được sắp xếp theo số lượng giảm dần và ID hàng tồn kho tăng dần.

Ví dụ - Truy vấn từ nhiều bảng

SELECT hangtonkho.hangtonkho_id, sanpham.sanpham_ten, hangtonkho.soluong
FROM hangtonkho
INNER JOIN sanpham
ON hangtonkho.sanpham_id = sanpham.sanpham_id
ORDER BY hangtonkho_id;

Trong ví dụ này, tập kết quả được lấy từ hai bảng để tạo ra hangtonkho_id, sanpham_ten và soluong, trong trường hợp sanpham_id trong bảng hangtonkho và bảng sản phẩm phải giống nhau. Kết quả được sắp xếp theo thứ tự tăng dần của hangtonkho_id.

Ví dụ - Sử dụng từ khóa TOP

SELECT TOP (3)
hangtonkho_id, hangtonkho_type, soluong
FROM hangtonkho
WHERE hangtonkho_type = 'phanmem'
ORDER BY hangtonkho_id ASC;

Trong ví dụ này, kết quả sẽ trả về 3 giá trị đầu tiên từ bảng hangtonkho với loại hàng tồn kho 'phanmem'. Nếu có các giá trị khác đáp ứng yêu cầu, chúng sẽ không được trả về.

Ví dụ - Sử dụng từ khóa TOP PERCENT

SELECT TOP (10) PERCENT
hangtonkho_id, hangtonkho_type, soluong
FROM hangtonkho
WHERE hangtonkho_type = 'phanmem'
ORDER BY hangtonkho_id ASC;

Kết quả trả về sẽ bao gồm 10% giá trị đầu tiên trong hàng tồn kho loại 'phanmem' trong bảng hangtonkho. 90% kết quả còn lại sẽ không được trả về.