[Học SQL Server] – Câu lệnh SELECT trong SQL Server

Ủng hộ AnonyHome Team
Chờ một chút: bạn thấy bài viết có ích chứ? Hãy chia sẻ nó với mọi người nhé!
[Học SQL Server] - Câu lệnh SELECT trong SQL Server - AnonyHome

Bài viết đầu tiên trong Series Học SQL Server này AnonyHome sẽ giúp bạn dùng câu lệnh SELECT trong SQL Server qua cú pháp và các ví dụ.

Lệnh SELECT trong SQL được sử dụng để lấy dữ liệu từ một bảng trong Database mà trả về dữ liệu ở dạng bảng dữ liệu kết quả. Những bảng dữ liệu kết quả này được gọi là các tập hợp kết quả.

Cú pháp:

Ở dạng đơn giản, cú pháp của lệnh SELECT như sau:
SELECT biu thc
FROM bng
[WHERE “điu kin”];
Ở 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 ] ]
Biu thc
FROM bng
[WHERE “điu kin”]
[GROUP BY biu thc”]
[HAVING “điu kin”]
[ORDER BY biu thc [ ASC | DESC ]];

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

ALL – Tùy chọn, trả lại tất cả các hàng phù hợp.
DISTINCT – Tùy chọn. Loại bỏ tất cả các giá trị trùng lặp khỏi bộ két quả.
TOP (gia_tri_dau) – Tùy chọn. Nếu chỉ định cụ thể sẽ trả về những giá trị đầu trong bộ kết quả dựa trên gia_tri_dau đã chon. Ví dụ TOP(10) sẽ trả về 10 hàng đầu tiên trong bộ kết quả.
PERCENT – Tùy chọn. Nếu chỉ định cụ thể thì các hàng đầu tiên dựa theo phần trăm trên bộ kết quả (chỉ định bằng gia_tri_dau). Ví dụ TOP(10) PERCENT sẽ trả về top 10% kết quả đầu tiên trong bộ kết quả.
WITH TIES – Tùy chọn. Nếu chỉ định cụ thể thì các hàng cố định ở cuối trong kết quả có giới hạn sẽ được trả về. Điều này có thể khiến cho số hàng trả về nhiều hơn biến TOP cho phép.
Biểu thức – Cột hay giá trị tính toán mà bạn muốn lấy về. Dùng * nếu muốn lấy tất cả các cột.
Bảng – Bảng mà bạn muốn lấy kết quả về. 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 được.
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 các hàng trả về khi điều kiện được đáp ứng là TRUE.
ORDER BY “biểu thức” – Tùy chọn. Được dùng để lọc bộ 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 một bảng 
SELECT *
FROM hangtonkho
WHERE soluong > 5
ORDER BY hangtonkho_id ASC;
Trong ví dụ này, * được dùng để cho biết sẽ chọn tất cả các trường hangtonkho có số lượng lớn hơn 5 trong bảng hangtonkho.Bộ 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;
Ở ví dụ nói trên, kết quả trả về sẽ chỉ gồm có 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 là ID phải 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 của hàng tồn kho 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, bộ kết quả được lấy từ 2 bảng để cho ra hangtonkho_id, sanpham_ten và soluong, trong đói sanpham_id ở bảng hangtonkho và bảng sanpham 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;
Ở 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 là ‘phanmem’. Nếu còn các giá trị khác đáp ứng yêu cầu thì chúng cũng sẽ không được trả về.
Ví dụ – 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ẽ gồm 10% giá trị đầu tiên trong toàn bộ kết quả các hàng tồn kho là ‘phanmem’ trong bảng hangtonkho. 90% kết quả còn lại sẽ không được trả về.
Kết thúc bài viết đầu tiên trong Series Học SQL Server tại đây mọi ý kiến xin để lại vào phần bình luận cuối bài viết. Chúc các bạn thành công và đừng quên theo dõi AnonyHome nhé!
Share
0 0 vote
Vui lòng đánh giá bài viết
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
XEM THÊM
Ở bài 6 chúng ta đã tìm…
0
Bạn thích bài viết chứ? Hãy để lại bình luận.x
()
x