Bài này sẽ nói về truy vấn dữ liệu trong SQL SERVER.
Một số câu lệnh truy vấn dữ liệu:
Câu lệnh SELECT (hoa hay thường đều ổn) đơn giản như
SELECT * FROM <Danh sách Bảng>
Câu lệnh này sẽ hiển thị hết tất cả các cột trong bảng.
Thế nếu muốn lấy ra bảng 2 bảng trong 5 bảng thôi thì sao? Chúng ta sẽ dùng
SELECT <cột1>, <cột2> FROM <Danh sách Bảng>
Trong trường hợp muốn lấy ra những thông tin cần thôi, không cần hiển thị hết thì có thể dùng mệnh đề WHERE để đặt điều kiện, cấu trúc là:
SELECT <Danh sách các cột> FROM <Danh sách Bảng> WHERE <Các điều kiện>
Nếu muốn “nối” hai bảng lại thì mình dùng INNER JOIN, cấu trúc:
SELECT <ds cột>
FROM < TÊN BẢNG 1>
INNER JOIN <TÊN BẢNG 2> ON <BIỂU THỨC KHỚP NỐI>
Ngoài ra còn các LIKE, BETWEEN-AND,…
Ví dụ ở đây:
Cho biết số lượng giáo viên hiện có
Nguon du lieu: GiaoVien
- Đếm số lượng giáo vien
- count(GiaoVien)
Giải
select
count(MAGV) AS [Tổng giáo viên]
from GIAOVIEN
Cho biết số lượng giáo viên sinh vào năm 1960
Nguon du lieu: GiaoVien
- Chọn giáo viên sinh năm 1960 và đếm.
- Q = GiaoVien(nam(NgaySinh) = 1960)
- count(Q)
select
count(NAMSINH) AS [Số GV sinh năm 1960]
from GIAOVIEN
where year(NAMSINH)=’1960′
Cho biết thông tin của giáo viên có họ Lê
Q = GiaoVien(Ho(HoTen) = Lê)
Q = GiaoVien(Left(HoTen,3) = ‘Lê ‘)
select * from GIAOVIEN
where (LEFT(HOTEN,3) = N’Lê’)
Cho biết mã học viên, họ tên, ngày sinh, của học viên tham gia lớp học thuộc khóa PE010918
Select HOCVIEN.MAHV, HoTen = HO + ‘ ‘ + TEN, NAMSINH
from HOCVIEN inner join BIENLAI on HOCVIEN.MAHV = BIENLAI.MAHV
where (MAKH = ‘PE010918’)
Cho biết tên lớp, tổng số học viên, số lượng học viên Không đậu, số lượng học viên xếp loại yếu, trung bình, khá, giỏi của từng lớp.
select TENLOP,
sum(case when MALH is not null then 1 else 0 end) as [Tổng số học viên],
sum(case when KETQUA = N’Không Đậu’ then 1 else 0 end) as [Học viên không đậu],
sum(case when XEPLOAI = N’Yếu’ then 1 else 0 end) as [Học viên yếu],
sum(case when XEPLOAI = N’Trung Bình’ then 1 else 0 end) as [Học viên trung bình],
sum(case when XEPLOAI = N’Khá’ then 1 else 0 end) as [Học viên khá],
sum(case when XEPLOAI = N’Giỏi’ then 1 else 0 end) as [Học viên giỏi]
from LOPHOC inner join BIENLAI on LOPHOC.MALOP = BIENLAI.MALH
group by TENLOP
Tham khảo thêm: GG DRIVE