Computer >> Máy Tính >  >> Lập trình >> SQL Server

Lệnh SELECT trong SQL Server

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

SELECT là lệnh được sử 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âu lệnh SELECT cú pháp

Ở 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 của lệnh SELECT trong SQL Server sẽ là:

  SELECT [ALL |  DISTINCT] 
[TOP (gia_tri_dau) [PERCENT] [WITH TIES]]
'Expression'
FROM 'table'
[WHERE 'condition']
[GROUP BY 'expression']
[HAVING 'condition']
[ORDER BY 'expression' [ASC | DESC]];

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

TẤT CẢ - Tùy chọn, trả lại tất cả các mặt hàng phù hợp.

DISTINCT - Không bắt buộc. Xóa tất cả các giá trị trùng lặp khỏi tập kết quả.

HÀNG ĐẦU (gia_tri_dau) - Không bắt buộc. Nếu được chỉ định, nó sẽ trả về các giá trị đầu tiên trong tập kết quả dựa trên gia_tri_dau đã chọn . Ví dụ:TOP (10) sẽ trả về 10 hàng đầu tiên trong tập kết quả.

PERCENT - Không bắt buộc. Nếu được chỉ định, các hàng đầu tiên dựa trên tỷ lệ phần trăm trên tập kết quả (được chỉ ra bởi gia_tri_dau ). Ví dụ:TOP (10) PERCENT sẽ trả về 10% kết quả đầu tiên hàng đầu trong tập kết quả.

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

Biểu thức - Cột hoặc giá trị được tính toán mà bạn muốn truy xuất. Sử dụng * nếu bạn muốn lấy tất cả các cột.

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

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

NHÓM THEO 'biểu thức' - Không bắt buộc. Thu thập dữ liệu từ nhiều bản ghi và nhóm kết quả trong một hoặc nhiều cột.

CÓ 'điều kiện' - Tùy chọn. Được sử dụng cùng với GROUP BY để giới hạn nhóm hàng được trả về khi điều kiện được đáp ứng là ĐÚNG.

ĐẶT HÀNG BẰNG 'biểu thức' - Không bắt buộc. Được sử dụng để lọc tập hợp kết quả. ASC sẽ lọc theo thứ tự tăng dần và DESC sẽ lọc theo thứ tự giảm dần.

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

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

Trong ví dụ này, * được sử dụng để chỉ ra rằng tất cả các trường hangtonkho sẽ lớn hơn 5 trong hangtonkho bàn. Tập hợ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ề sẽ chỉ bao gồm ID, loại và số lượng (hangtonkho_id, hangtonkho_type và soluong) của khoảng không quảng cáo từ bảng hangtonkho với điều kiện ID lớn hơn 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 khoảng không quảng cáo tăng dần.

Ví dụ - Chọn từ nhiều bảng

  SELECT hangtonkhi.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 hangtonkho bảng và bảng phải giống nhau. Các 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 khoảng không quảng cáo 'phanmem'. Nếu có các giá trị khác đáp ứng yêu cầu, chúng sẽ không được trả lại.

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 khoảng không quảng cáo 'phanmem' trong bảng hangtonkho. 90% kết quả còn lại sẽ không được trả lại.