Bai 1: Quan ly hoc vien
BAI 1: QUAN LY HOC VIEN.
-- Bai 1 Quan Ly Hoc Vien
IF DB_ID('QLHV') IS NOT NULL
DROP DATABASE QLHV
CREATE DATABASE QLHV
USE QLSV
-- TAO TABLE MON HOC
IF OBJECT_ID('MONHOC') IS NOT NULL
DROP TABLE MONHOC
CREATE TABLE MONHOC
(
MAMH VARCHAR(10) NOT NULL PRIMARY KEY,
TENMH NVARCHAR(30)NOT NULL,
SOTC INT
)
-- TAO TABLE LOP
IF OBJECT_ID('LOP') IS NOT NULL
DROP TABLE LOP
CREATE TABLE LOP
(
MALP VARCHAR(10) NOT NULL PRIMARY KEY,
TENLP NVARCHAR(30)NOT NULL
)
-- TAO TABLE HOC VIEN
IF OBJECT_ID('HV') IS NOT NULL
DROP TABLE HV
CREATE TABLE HV
(
MAHV VARCHAR(10) NOT NULL,
TENHV NVARCHAR(30)NOT NULL,
DCHV NVARCHAR(10)NOT NULL,
MALP VARCHAR(10)NOT NULL,
PRIMARY KEY (MAHV,MALP)
)
-- TAO TABLE DIEMHV
IF OBJECT_ID('DIEMHV') IS NOT NULL
DROP TABLE DIEMHV
CREATE TABLE DIEMHV
(
MAHV VARCHAR(10) NOT NULL,
MAMH VARCHAR(30)NOT NULL,
DIEM FLOAT ,
PRIMARY KEY(MAHV,MAMH)
)
--- NHAP LIEU
-- NHAP BANG MON HOC
INSERT INTO MONHOC VALUES('M01', N'Cơ Sở Dữ Liệu',3)
INSERT INTO MONHOC VALUES('M02', N'Thiết Kế Web',3)
INSERT INTO MONHOC VALUES('M03', N'Xử Lý Ảnh',4)
select * from MONHOC
--- NHAP LIEU LOP
INSERT INTO LOP VALUES('L01', N'Công Nghệ TT 2009')
INSERT INTO LOP VALUES('L02', N'Quản Trị 2009')
INSERT INTO LOP VALUES('L03', N'Không Biết Lớp Gì Nữa')
select * from LOP
--- NHAP LIEU HV
INSERT INTO HV VALUES('H01', N'Nguyễn Văn A', 'Q1', 'L01')
INSERT INTO HV VALUES('H02', N'Nguyễn Văn B', 'Q2', 'L01')
INSERT INTO HV VALUES('H03', N'Nguyễn Văn C', 'Q1', 'L01')
INSERT INTO HV VALUES('H04', N'Nguyễn Văn B', 'Q3', 'L02')
INSERT INTO HV VALUES('H05', N'Nguyễn Văn A', 'Q3', 'L02')
INSERT INTO HV VALUES('H06', N'Nguyễn Văn A', 'Q2', 'L03')
select * from HV
--- NHAP LIEU DIE HV
INSERT INTO DIEMHV VALUES('H01', 'M01', 5)
INSERT INTO DIEMHV VALUES('H01', 'M02', 4)
INSERT INTO DIEMHV VALUES('H02', 'M01', 7)
INSERT INTO DIEMHV VALUES('H02', 'M02', 5)
INSERT INTO DIEMHV VALUES('H02', 'M03', 6)
INSERT INTO DIEMHV VALUES('H03', 'M01', 7)
SELECT * FROM DIEMHV
--- CÂU 1
SELECT TENMH AS 'TÊN MÔN HỌC', SOTC AS 'SỐ TÍN CHỈ'
FROM MONHOC
WHERE MAMH = 'M01'
--- CÂU 2
SELECT B.MAHV AS 'MÃ SỐ SINH VIÊN', B.TENHV AS 'TÊN HỌC VIÊN'
FROM LOP A, HV B
WHERE A.MALP = B.MALP AND TENLP = N'Quản Trị 2009'
--- CÂU 3
SELECT TENMH AS 'TÊN MÔN HỌC', DIEM AS 'ĐIỂM'
FROM MONHOC A, DIEMHV B
WHERE A.MAMH = B.MAMH AND MAHV = 'H01'
--- CÂU 4
SELECT A.MAHV AS 'MÃ HỌC VIÊN', TENHV AS 'TÊN HỌC VIÊN'
FROM HV A, DIEMHV B, MONHOC C
WHERE A.MAHV = B.MAHV AND C.MAMH = B.MAMH AND TENMH = N'Cơ Sở Dữ Liệu' AND DIEM < 5
--- CÂU 6
SELECT TENMH AS 'TÊN MÔN HỌC CHƯA THI'
FROM MONHOC
WHERE MAMH NOT IN ( SELECT MAMH
FROM DIEMHV
WHERE MAHV = 'H01'
)
--- CÂU 7
SELECT TENHV AS 'SINH VIÊN CÓ ĐIỂM MÔN M01 LỚN NHẤT', DIEM AS 'SỐ ĐIỂM'
FROM HV A, DIEMHV B
WHERE A.MAHV = B.MAHV AND DIEM >= ALL ( SELECT DIEM
FROM DIEMHV)
--- CÂU 8
SELECT TENLP AS 'TÊN LỚP', COUNT(*) AS 'SĨ SỐ'
FROM LOP A, HV B
WHERE A.MALP = B.MALP
GROUP BY TENLP
--- CÂU 9 CHO BIẾT LỚP CÓ SĨ SỐ NHIỀU NHẤT
SELECT TENLP AS 'TÊN LỚP NHIỀU NHẤT', COUNT(*) AS 'SĨ SỐ'
FROM LOP A, HV B
WHERE A.MALP = B.MALP
GROUP BY TENLP
HAVING COUNT(*)>=ALL (SELECT COUNT(*)
FROM LOP A, HV B
WHERE A.MALP = B.MALP
GROUP BY TENLP)
--- CÂU 10 CHO BIẾT ĐIỂM TRUNG BÌNH CỦA TỪNG THẰNG
SELECT TENHV AS 'THẰNG NÀO?', AVG(DIEM) AS 'ĐIỂM TB'
FROM HV A, DIEMHV B
WHERE A.MAHV = B.MAHV
GROUP BY TENHV
--- CÂU 11 CHO BIẾT THẰNG NÀO CÓ ĐIỂM TB LỚN NHẤT?
SELECT TENHV AS 'THẰNG NÀO ĐIỂM TB LỚN NHẤT?', AVG(DIEM) AS 'ĐIỂM TB'
FROM HV A, DIEMHV B
WHERE A.MAHV = B.MAHV
GROUP BY TENHV
HAVING AVG(DIEM) >= ALL (SELECT AVG(DIEM) AS 'ĐIỂM TB'
FROM HV A, DIEMHV B
WHERE A.MAHV = B.MAHV
GROUP BY TENHV)
Bạn đang đọc truyện trên: truyentop.pro