SQL Test

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

--Tạo Bảng

--Bảng Sinh Viên


CREATE TABLE SVIEN(
MASV INT NOT NULL PRIMARY KEY,
TEN NVARCHAR (40),
NAM INT ,
MAKHOA INT NOT NULL)

--Bảng Khoa
CREATE TABLE KHOA(
MAKHOA INT NOT NULL PRIMARY KEY,
TENKHOA NVARCHAR(30),
NAMTHANHLAP INT)

--Bảng Môn Học


CREATE TABLE MHOC(
MAMH INT NOT NULL PRIMARY KEY,
TENMH NVARCHAR(20),
TINCHI INT,
MAKHOA INT NOT NULL)

--Bảng Điều Kiện


CREATE TABLE DKIEN(
MAMH_TRUOC INT NOT NULL PRIMARY KEY,
MAMH INT NOT NULL)

--Bảng Kết Quả


CREATE TABLE KQUA(
MASV INT NOT NULL,
MAHP INT NOT NULL,
DIEM INT)
--Bảng Học Phần
CREATE TABLE HPHAN(
MAHP INT NOT NULL PRIMARY KEY,
MAMH INT NOT NULL,
HOCKY INT,
NAM INT,
GV NVARCHAR(20))

-- Tạo Khóa Ngoại


ALTER TABLE DKIEN ADD FOREIGN KEY (MAMH_TRUOC) REFERENCES MHOC(MAMH)
ALTER TABLE DKIEN ADD FOREIGN KEY (MAMH_TRUOC) REFERENCES MHOC(MAMH)
ALTER TABLE SVIEN ADD FOREIGN KEY (MAKHOA) REFERENCES KHOA(MAKHOA)
ALTER TABLE KQUA ADD FOREIGN KEY (MASV) REFERENCES SVIEN(MASV)
ALTER TABLE KQUA ADD FOREIGN KEY (MAHP) REFERENCES HPHAN(MAHP)
ALTER TABLE HPHAN ADD FOREIGN KEY (MAMH) REFERENCES MHOC(MAMH)

-- Nhập Dữ Liệu Cho Bảng


INSERT INTO SVIEN(MASV,TEN,NAM,MAKHOA) VALUES (20016691,'NGUYEN VIET KHANH',
2000,111)
INSERT INTO SVIEN(MASV,TEN,NAM,MAKHOA) VALUES (20110641,'NGUYEN HUU THIEN DUC',
2003,112)
INSERT INTO SVIEN(MASV,TEN,NAM,MAKHOA) VALUES (20030651,'DANG VAN THE', 2002,113)
INSERT INTO SVIEN(MASV,TEN,NAM,MAKHOA) VALUES (20121221,'HOANG THI THANH',
2004,114)
INSERT INTO SVIEN(MASV,TEN,NAM,MAKHOA) VALUES (20065541,'TO CONG TRUONG', 2000,115)
SELECT * FROM SVIEN

INSERT INTO KHOA(MAKHOA,TENKHOA,NAMTHANHLAP) VALUES(111,'CNTT',1991)


INSERT INTO KHOA(MAKHOA,TENKHOA,NAMTHANHLAP) VALUES(112,'TMDT',1988)
INSERT INTO KHOA(MAKHOA,TENKHOA,NAMTHANHLAP) VALUES(113,'QTKD',1890)
INSERT INTO KHOA(MAKHOA,TENKHOA,NAMTHANHLAP) VALUES(114,'KHCB',1990)
INSERT INTO KHOA(MAKHOA,TENKHOA,NAMTHANHLAP) VALUES(115,'KTCT',1992)
SELECT * FROM KHOA

INSERT INTO MHOC(MAMH,TENMH,TINCHI,MAKHOA) VALUES(02,'LAP TRINH C',2,111)


INSERT INTO MHOC(MAMH,TENMH,TINCHI,MAKHOA) VALUES(04,'KY NANG GIAO TIEP',2,112)
INSERT INTO MHOC(MAMH,TENMH,TINCHI,MAKHOA) VALUES(06,'HE QTCSDL',3,113)
INSERT INTO MHOC(MAMH,TENMH,TINCHI,MAKHOA) VALUES(08,'TOAN CAO CAP',4,114)
INSERT INTO MHOC(MAMH,TENMH,TINCHI,MAKHOA) VALUES(10,'TOAN ROI RAC',2,115)
SELECT * FROM MHOC

INSERT INTO DKIEN(MAMH_TRUOC,MAMH) VALUES(06,02)


INSERT INTO DKIEN(MAMH_TRUOC,MAMH) VALUES(08,04)
INSERT INTO DKIEN(MAMH_TRUOC,MAMH) VALUES(10,08)
INSERT INTO DKIEN(MAMH_TRUOC,MAMH) VALUES (04,08)
INSERT INTO DKIEN(MAMH_TRUOC,MAMH) VALUES(02,10)
SELECT* FROM DKIEN

INSERT INTO HPHAN(MAHP,MAMH,HOCKY,NAM,GV) VALUES (123,02,2,2018,'NGUYEN VAN A')


INSERT INTO HPHAN(MAHP,MAMH,HOCKY,NAM,GV) VALUES (234,04,3,2019,'NGUYEN VAN B')
INSERT INTO HPHAN(MAHP,MAMH,HOCKY,NAM,GV) VALUES (345,06,4,2020,'NGUYEN VAN C')
INSERT INTO HPHAN(MAHP,MAMH,HOCKY,NAM,GV) VALUES (456,08,5,2021,'NGUYEN VAN D')
INSERT INTO HPHAN(MAHP,MAMH,HOCKY,NAM,GV) VALUES (567,10,6,2022,'N.C.PHU')
SELECT * FROM HPHAN

INSERT INTO KQUA(MASV,MAHP,DIEM) VALUES (20016691,123,7)


INSERT INTO KQUA(MASV,MAHP,DIEM) VALUES (20110641,234,8)
INSERT INTO KQUA(MASV,MAHP,DIEM) VALUES (20030651,345,9)
INSERT INTO KQUA(MASV,MAHP,DIEM) VALUES (20121221,456,10)
INSERT INTO KQUA(MASV,MAHP,DIEM) VALUES (20065541,567,4)
SELECT * FROM KQUA

--------------------------------------------------------------CÂU 2: TRẢ LỜI CÂU


HỎI------------------------------------------------------------------------

--CÂU A: Cho biết họ tên sinh viên và tên môn học mà sinh viên đó đăng ký học với
kết quả cuối khoá trên 7 điểm
SELECT TEN,TENMH , DIEM
FROM SVIEN S JOIN KHOA K ON S.MAKHOA=K.MAKHOA
JOIN KQUA Q ON Q.MASV=S.MASV
JOIN MHOC M ON M.MAKHOA=K.MAKHOA
WHERE DIEM>=7

--CÂU B: Tên các sinh viên thuộc về khoa có phụ trách môn học "Toán rời rạc"
SELECT MASV,K.MAKHOA,TEN,TENKHOA,TENMH
FROM SVIEN S JOIN KHOA K ON S.MAKHOA=K.MAKHOA
JOIN MHOC M ON M.MAKHOA=K.MAKHOA
WHERE TENMH = 'TOAN ROI RAC'

--CÂU C: Tên các môn học phải học ngay trước môn "Cơ sở dữ liệu"
SELECT M.MAMH,TENMH,MAMH_TRUOC
FROM MHOC M JOIN DKIEN D ON M.MAMH=D.MAMH
WHERE TENMH= 'HE QTCSDL'

--CâU D: Tên các môn học phải học ngay sau môn "Cơ sở dữ liệu"
SELECT M.MAMH,TENMH,MAMH_TRUOC
FROM MHOC M JOIN DKIEN D ON M.MAMH=D.MAMH
WHERE MAMH_TRUOC= '06'

--CÂU E:Mã học phần và số lượng sinh viên đăng ký theo từng học phần
SELECT H.MAHP,COUNT(S.MASV) AS SL_SINHVIEN
FROM HPHAN H JOIN KQUA Q ON H.MAHP=Q.MAHP
JOIN SVIEN S ON S.MASV=Q.MASV
GROUP BY H.MAHP

--CÂU F: Tên sinh viên và điểm trung bình của sinh viên đó trong từng học kỳ của
từng niên học
SELECT TEN,AVG(DIEM) AS DIEMTRUNGBINH,HOCKY
FROM SVIEN S JOIN KQUA Q ON S.MASV=Q.MASV
JOIN HPHAN H ON H.MAHP=Q.MAHP
GROUP BY TEN,HOCKY

--CÂU G: Tên sinh viên chưa đăng ký học môn Toán rời rạc
SELECT TEN
FROM SVIEN S JOIN KHOA K ON S.MAKHOA=K.MAKHOA
JOIN MHOC M ON M.MAKHOA=K.MAKHOA
WHERE NOT EXISTS( SELECT TEN
FROM SVIEN S JOIN KHOA K ON S.MAKHOA=K.MAKHOA
WHERE TENMH='TOAN ROI RAC')

--CÂU H: Cập nhật những sinh viên khoa TOAN thành khoa CNTT
UPDATE KHOA
SET TENKHOA='CNTT'
WHERE TENKHOA='TOAN'

--CÂU I: Cho biết tên các môn học mà giáo viên N.C.Phú tham gia giảng dạy và tên
các sinh viên theo học môn đó. Sắp xếp theo thứ tự giảm dần theo môn học, tăng dần
theo tên.
SELECT TENMH,TEN,GV
FROM SVIEN S JOIN KHOA K ON S.MAKHOA=K.MAKHOA
JOIN MHOC M ON M.MAKHOA=K.MAKHOA
JOIN HPHAN H ON H.MAMH=M.MAMH
WHERE GV='N.C.PHU'
ORDER BY TENMH DESC, TEN ASC

--CÂU J: Xóa đi những dữ liệu trong bảng kết quả mà sinh viên có điểm dưới trung
bình.
DELETE FROM KQUA
WHERE DIEM<=5

You might also like