- Cấu trúc câu lệnh Select Select [Tên_bảng.]Tên_cột [, ]
Truy vấn dữ liệu Ghi chú:
- Ghi chú:
Mệnh đề Select: chứa các cột, các hàm muốn hiển thị. Nếu Tên_Cộttồn tại trong nhiều bảng, ta phải ghi rõ:Tên_Bảng.Tên_Cột
Nếu hiển thị tất cả các cột trong bảng: Ten_Bang.*
100
Xây dựng 1 CSDL với SQL Server
51
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Các toán tử dùng trên mệnh đề Select
∗ Cú pháp: SelectToán_tử [Tên_bảng.]Tên_cột [, U]
∗ Với các toán tử:
Distinct: loại bỏ các dòng dữ liệu trùng Top n: lấy n dòng đầu tiên
Top n with ties: lấy những dòng thuộc n cấp đầu tiên theo giá trị của cột được sắp xếp
Top n percent: lấy N % số dòng trả về
101
Môn học: CƠ SỞ DỮ LiỆU 101
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Trong mệnh đềSelect ta có thể dùng cấu trúc lệnh:
Case
When Điều_kiện_1 Then Giá_trị_1 When Điều_kiện_2 Then Giá_trị_2 U
Else Giá_trị_n End
102
Xây dựng 1 CSDL với SQL Server
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Mệnh đề From: cho biết dữ liệu trên câu truy vấn được lấy từ các bảng nào
Nếu dữ liệu lấy từ nhiều bảng thì các bảng này phải có quan hệ với nhau:
- Cú pháp:
Bảng_ 1 inner join Bảng_2on Bảng_1.Tên_cột =Bảng_2.Tên_cột
103
Xây dựng 1 CSDL với SQL Server
Môn học: CƠ SỞ DỮ LiỆU 103
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Nếu hai bảng liên kết với nhau qua mệnh đề inner join thì kết quả trả về là những dòng của hai bảng có giá trị bằng nhau tại cột liên kết.
Nếu hai bảng liên kết với nhau qua mệnh đề left join(right
join) thì kết quả trả về là những dòng của hai bảng có giá trị bằng nhau tại cột liên kết và các dòng của bảng bên trái (bên phải) có dữ liệu không bằng dữ liệu của cột liên kết trong bảng kia.
Nếu hai bảng liên kết với nhau qua mệnh đề full join thì kết quả trả về là những dòng của hai bảng có giá trị bằng nhau tại cột liên kết và các dòng dữ liệu của cả hai bảng không bằng nhau tại cột liên kết.
104
Xây dựng 1 CSDL với SQL Server
53
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Mệnh đề Where: để lọc dữ liệu trả về hoặc để gom nhóm Nếu có nhiều điều kiện lọc thì các điều kiện này phải kết với nhau bằng toán tử and(và) hoặc or(hoặc).
Trong mệnh đề Where,có thể sử dụng các toán tử:
∗ Liketìm chuỗi gần đúng
%: đại diện 1 chuỗi các ký tự
_(Gạch dưới): đại diện 1 ký tự
∗ Between Giá_trị_1and Giá_trị_2
105
Môn học: CƠ SỞ DỮ LiỆU 105
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Mệnh đề Group by: để gom nhóm dữ liệu
Mệnh đề này phải có khi câu truy vấn có sử dụng hàm thống kê và có lấy thêm các cột không sử dụng hàm thống kê trên mệnh đề Select
Cú pháp: Group By Danh_sách_cột, Biểu_thức
∗ Với Danh_sách_cột, Biểu_thức: là tất cả các cột không sử dụng hàm thống kê trên mệnh đề Select, lược bỏ các nhãn (asten_nhan)
106
Xây dựng 1 CSDL với SQL Server
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Các Hàm thống kê:
∗ Sum (Tên_cột):tính tổng với cột có kiểu số
∗ Count (Tên_cột / *): đếm tổng số dòng
∗ Avg (Tên_cột): tính giá trị trung bình cộng
∗ Max (Tên_cột): giá trị lớn nhất
∗ Min (Tên_cột): giá trị nhỏ nhất
107
Xây dựng 1 CSDL với SQL Server
Môn học: CƠ SỞ DỮ LiỆU 107
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Mệnh đề Having: dùng để lọc nhóm dữ liệu, chỉ tồn tại khi điều kiện lọc dữ liệu có hàm thống kê.
Chú ý:trong câu truy vấn có hai mệnh đề lọc dữ liệu là Where
và Having
∗ Where:lọc dữ liệu để tạo nhóm (các điều kiện không sử dụng hàm thống kê).
∗ Having: lọc nhóm (các điều kiện có sử dụng hàm thống kê).
108
Xây dựng 1 CSDL với SQL Server
55
Truy vấn dữ liệu- Ghi chú: - Ghi chú:
Mệnh đề OrDer By: để sắp xếp dữ liệu.
∗ Asc: tăng dần (default)
∗ Desc: giảm dần
Mệnh đề Compute /Compute By : tạo giá trị thống kê cuối kết quả hoặc thống kê theo cột.
∗ Compute Hàm_thống_kê: tạo thống kê cuối kết quả
∗ Compute Hàm_thống_kê By [Tên_bảng.]Tên_cột: thống kê theo cột, dữ liệu phải được sắp xếp theo cột này.
Chú ý: Trong View không có mệnh đề này
109
Môn học: CƠ SỞ DỮ LiỆU 109