Tải bản đầy đủ (.pdf) (7 trang)

Bài tập Quản lý điểm sinh viên SQL Sever

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (116.05 KB, 7 trang )

Tạo cơ sở dữ liệu QLDSV
SinhVien(MaSV, HoDem, Ten, NgaySinh, GioiTinh, NoiSinh, QueQuan,
DiaChi, DienThoai, DiemDauVao, DoiTuong, KhuVuc)
MonHoc(MaMon, TenMon, SoTinChi, HocKy)
Diem(MaSV, MaMon, Diem)
1. Đưa ra họ tên sinh viên nữ có điểm đầu vào nằm trong khoảng từ 20
đến 25 và đối tượng là 5 hoặc 6 hoặc 7
2. Đưa ra họ tên, ngày sinh những sinh viên sinh vào quý II năm 1990
3. Đưa ra họ tên, tuổi những sinh viên có tuổi không thuộc từ 24 đến 27
4. Đưa ra mức điểm đầu vào cao nhất
5. Đếm xem có bao nhiêu sinh viên có đối tượng là 1
6. Đưa ra giới tính và số lượng sinh viên tương ứng
7. Đưa ra tên môn có số tín chỉ nhỏ nhất
8. Đếm xem có bao nhiêu sinh viên có khu vực là KV3 và KV1
9. Đưa ra danh sách 5 sinh viên có điểm đầu vào cao nhất
10. Đưa ra danh sách tỉnh thành mà sinh viên có nơi sinh ở đó (không
kể trùng lại)
11. Đưa ra đối tượng và số lượng sinh viên tương ứng
12. Đưa ra số tín chỉ và số lượng môn tương ứng
13. Đưa ra học kỳ và tổng số tín chỉ tương ứng của học kỳ đó
14. Đưa ra họ tên, ngày sinh, nơi sinh, điểm đầu vào của những sinh
viên có điểm nhỏ hơn 25 và có họ là Phan
15. Đưa ra họ tên, ngày sinh, tuổi của những sinh viên có tên bắt đầu
bằng chữ M
16. Đưa ra mức điểm đầu vào trung bình
17. Đưa ra danh sách sinh viên sắp xếp theo tên, họ đệm tăng dần
18. Đưa ra họ tên, ngày sinh, nơi sinh, điểm đầu vào của những sinh
viên có nơi sinh không phải là Hà Nội và điểm đầu vào nằm trong
khoảng từ 18 đến 22
 



 
 


USE [​ QLDSV] 
 
CREATE TABLE​ SinhVien( 
MaSV ​VARCHAR​(10), 
HoDem N
​ VARCHAR​(30), 
Ten N
​ VARCHAR​(20), 
NgaySinh D
​ ATETIME​, 
GioiTinh ​BIT​, 
NoiSinh N
​ VARCHAR​(30), 
QueQuan N
​ VARCHAR​(30), 
DiaChi N
​ VARCHAR​(50), 
DienThoai ​VARCHAR​(15), 
DiemDauVao F
​ LOAT​, 
DoiTuong V
​ ARCHAR​(10), 
KhuVuc V
​ ARCHAR​(10) 


 
 
INSERT INTO​ SinhVien ​VALUES​('001', N
​ 'Nguyễn Văn', N
​ 'A'​,​ '1990-10-2'​, 1, 
N'Hà Nội', ​N'Hà Nội',​ N'192 Minh Khai'​,​ '0336677889'​, 24,​ '1'​,​ 'KV1'​) 
INSERT INTO S
​ inhVien ​VALUES​('002'​,​ N'Nguyễn Thị',​ N'B'​,​ '1990-2-19'​, 0, 
N'Hà Nội',​ N'Hà Nội',​ N'192 Minh Khai'​,​ '0336677889'​, 18,​ '1'​,​ 'KV1'​) 
INSERT INTO S
​ inhVien ​VALUES​('003'​,​ N'Phan Văn'​,​ N'C', '1990-6-21'​, 1, 
N'Bắc Ninh',​ N'Hà Nội',​ N'192 Minh Khai'​,​ '0336677889'​, 18, ​'1'​,​ 'KV1'​) 
INSERT INTO S
​ inhVien ​VALUES​('​ 004'​,​ N'Mai Thị',​ N'D'​,​ '1990-8-19'​, 0, 
N'Hà Nội',​ N'Hà Nội',​ N'192 Minh Khai'​,​ '0336677889'​, 24, ​'5'​,​ 'KV2'​) 
INSERT INTO S
​ inhVien ​VALUES​('​ 005'​,​ N'Hà Thị',​ N'E'​,​ '1990-1-19'​, 0, ​N'Hà 
Nội',​ N'Hà Nội',​ N'192 Minh Khai'​,​ '0336677889'​, 18, '​ 7'​,​ 'KV3'​) 
GO 
SELECT *​ F
​ ROM​ SinhVien 
 
 


 
CREATE TABLE​ MonHoc( 
MaMon V
​ ARCHAR​(10), 
TenMon N

​ VARCHAR​(30), 
SoTinChi ​INT​, 
HocKy ​INT 

 
 
INSERT INTO M
​ onHoc V
​ ALUES​ (​'1001'​,​ N'CSDL'​, 3, 2) 
INSERT INTO M
​ onHoc V
​ ALUES ​('​ 1002'​,​ N'SQL'​, 3, 2) 
INSERT INTO M
​ onHoc V
​ ALUES ​('​ 1003'​,​ N'Toán A1'​, 2, 2) 
GO 
SELECT *​ F
​ ROM M
​ onHoc 
 
CREATE TABLE ​Diem( 
MaSV ​VARCHAR​(10), 
MaMon V
​ ARCHAR​(10), 
Diem ​FLOAT 

 
-- 1. Đưa ra họ tên sinh viên nữ có điểm đầu vào nằm trong khoảng từ 
20 đến 25 và đối tượng là 5 hoặc 6 hoặc 7 
SELECT​ CONCAT_WS​('​ '​, HoDem, Ten) ​AS ​N'Họ Tên'  

FROM S
​ inhVien 
WHERE ​GioiTinh = 0 
AND ​DiemDauVao B
​ ETWEEN ​20 A
​ ND ​25 
AND ​DoiTuong I​ N ​(5, 6, 7) 
 
-- 2. Đưa ra họ tên, ngày sinh những sinh viên sinh vào quý II năm 1990 
SELECT C
​ ONCAT_WS​('​ '​, HoDem, Ten) ​AS ​N'Họ Tên'  
FROM S
​ inhVien 
WHERE ​YEAR​(NgaySinh) = 1990 A
​ ND ​MONTH​(NgaySinh) ​BETWEEN ​4 
AND ​6 
 


-- 3. Đưa ra họ tên, tuổi những sinh viên có tuổi không thuộc từ 24 đến 
27 
SELECT C
​ ONCAT_WS​('​ '​, HoDem, Ten) ​AS ​N'Họ Tên'  
FROM S
​ inhVien 
WHERE ​YEAR​(NgaySinh)​ NOT BETWEEN 2
​ 4 ​AND 2
​ 7 
 
-- 4. Đưa ra mức điểm đầu vào cao nhất 

SELECT TOP 1
​ DiemDauVao ​AS N
​ 'Điểm đầu vào cao nhất'  
FROM S
​ inhVien 
ORDER BY​ DiemDauVao ​DESC 
 
-- 5. Đếm xem có bao nhiêu sinh viên có đối tượng là 1 
SELECT D
​ oiTuong, ​COUNT​(MaSV) A
​ S ​N'Số sinh viên'  
FROM S
​ inhVien 
GROUP BY​ DoiTuong 
HAVING ​DoiTuong = 1 
 
-- 6. Đưa ra giới tính và số lượng sinh viên tương ứng 
SELECT ​(C
​ ASE​ GioiTinh ​WHEN​ '0'​ T
​ HEN N
​ 'Nữ' W
​ HEN ​'1' T
​ HEN N
​ 'Nam' 
END​) ​AS​ N'Giới Tính', ​COUNT​(MaSV) A
​ S ​N'Số sinh viên'  
FROM S
​ inhVien 
GROUP BY​ GioiTinh 
 

-- 7. Đưa ra tên môn có số tín chỉ nhỏ nhất 
SELECT TOP (​ 1) TenMon  
FROM M
​ onHoc 
ORDER BY ​SoTinChi A
​ SC 
 
-- 8. Đếm xem có bao nhiêu sinh viên có khu vực là KV3 và KV1 
SELECT K
​ huVuc, ​COUNT​(MaSV) A
​ S​ N'Số sinh viên'  
FROM S
​ inhVien 
GROUP BY​ KhuVuc 
HAVING ​KhuVuc I​ N (​ '​ KV1'​,​ 'KV3'​) 
 


 
 
-- 9. Đưa ra danh sách 5 sinh viên có điểm đầu vào cao nhất 
SELECT TOP​(5) C
​ ONCAT_WS​('​ '​, HoDem, Ten) ​AS​ N'Họ Tên', 
DiemDauVao  
FROM S
​ inhVien 
ORDER BY ​DiemDauVao D
​ ESC 
 
-- 10. Đưa ra danh sách tỉnh thành mà sinh viên có nơi sinh ở đó (không 

kể trùng lại) 
SELECT DISTINCT ​NoiSinh  
FROM S
​ inhVien 
 
-- 11. Đưa ra đối tượng và số lượng sinh viên tương ứng 
SELECT D
​ oiTuong, ​COUNT​(MaSV) A
​ S​ N'Số sinh viên'  
FROM S
​ inhVien 
GROUP BY​ DoiTuong 
 
-- 12. Đưa ra số tín chỉ và số lượng môn tương ứng 
SELECT S
​ oTinChi, C
​ OUNT​(MaMon) ​AS ​N'Số môn'  
FROM M
​ onHoc 
GROUP BY S
​ oTinChi 
 
-- 13. Đưa ra học kỳ và tổng số tín chỉ tương ứng của học kỳ đó 
SELECT H
​ ocKy, S
​ UM​(SoTinChi) A
​ SN
​ 'Tổng số tín chỉ'  
FROM M
​ onHoc 

GROUP BY​ HocKy 
 
-- 14. Đưa ra họ tên, ngày sinh, nơi sinh, điểm đầu vào của những sinh 
viên có điểm nhỏ hơn 25 và có họ là Phan 
SELECT​ CONCAT_WS​('​ '​, HoDem, Ten) ​AS ​N'Họ Tên', NgaySinh, NoiSinh, 
DiemDauVao  
FROM S
​ inhVien 
WHERE ​DiemDauVao < 25 A
​ ND ​HoDem L
​ IKE ​N'Phan%' 
 


-- 15. Đưa ra họ tên, ngày sinh, tuổi của những sinh viên có tên bắt đầu 
bằng chữ M 
SELECT C
​ ONCAT_WS​('​ '​, HoDem, Ten) ​AS ​N'Họ Tên', NgaySinh, 
YEAR​(​GETDATE​()) - Y
​ EAR​(NgaySinh) A
​ S ​N'Tuổi' 
FROM S
​ inhVien 
WHERE ​Ten L
​ IKE​ N'M%' 
 
-- 16. Đưa ra mức điểm đầu vào trung bình 
SELECT A
​ VG​(DiemDauVao) ​AS​ N'Điểm đầu vào trung bình'  
FROM S

​ inhVien 
 
-- 17. Đưa ra danh sách sinh viên sắp xếp theo tên, họ đệm tăng dần 
SELECT H
​ oDem, Ten, NgaySinh, NoiSinh, DiemDauVao  
FROM S
​ inhVien 
ORDER BY​ HoDem, Ten ​DESC 
 
 
-- 18. Đưa ra họ tên, ngày sinh, nơi sinh, điểm đầu vào của những sinh 
viên có nơi sinh không phải là Hà Nội và điểm đầu vào nằm trong 
khoảng từ 18 đến 22 
SELECT C
​ ONCAT_WS(' ', HoDem, Ten) ​AS​ N'Họ Tên', NgaySinh, NoiSinh, 
DiemDauVao  
FROM S
​ inhVien 
WHERE ​NoiSinh N
​ OT LIKE​ N'Hà Nội' A
​ ND ​DiemDauVao B
​ ETWEEN ​18 
AND ​22 
 



×