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