You are on page 1of 7

CREATE DATABASE QUANLYSINHVIEN

USE QUANLYSINHVIEN
GO

CREATE TABLE KHOA


(
MAKH CHAR(5) NOT NULL,
TENKH NVARCHAR(30),
CONSTRAINT PK_KHOA PRIMARY KEY(MAKH)
)
CREATE TABLE LOP
(
MALOP CHAR(10) NOT NULL,
TENLOP NVARCHAR(30),
SISO INT,
LOPTRUONG CHAR(20),
MAKH CHAR(5),
CONSTRAINT PK_LOP PRIMARY KEY(MALOP),
CONSTRAINT FK_LOP_KHOA FOREIGN KEY(MAKH) REFERENCES KHOA(MAKH)
)

CREATE TABLE SINHVIEN


(
MASV CHAR(20) NOT NULL,
HOTEN NVARCHAR(50),
NGSINH DATETIME,
GTINH NVARCHAR(5),
DCHI NVARCHAR(30),
MALOP CHAR(10),
CONSTRAINT PK_SINHVIEN PRIMARY KEY(MASV),
CONSTRAINT FK_SINHVIEN_LOP FOREIGN KEY(MALOP) REFERENCES LOP(MALOP)
)

ALTER TABLE LOP


ADD CONSTRAINT FK_LOP_SV FOREIGN KEY(LOPTRUONG) REFERENCES SINHVIEN(MASV)

CREATE TABLE GIANGVIEN


(
MAGV CHAR(10) NOT NULL,
TENGV NVARCHAR(50),
MAKH CHAR(5),
CONSTRAINT PK_GIANGVIEN PRIMARY KEY(MAGV),
CONSTRAINT FK_GIANGVIEN_KHOA FOREIGN KEY(MAKH) REFERENCES KHOA(MAKH)
)
CREATE TABLE MONHOC
(
MAMH CHAR(10) NOT NULL,
TENMH NVARCHAR(30),
SOTC INT,
CONSTRAINT PK_MONHOC PRIMARY KEY(MAMH)
)
CREATE TABLE DIEM
(
MASV CHAR(20) NOT NULL,
MAMH CHAR(10) NOT NULL,
LANTHI INT NOT NULL,
DIEMTHI FLOAT,
CONSTRAINT PK_DIEM PRIMARY KEY(MASV,MAMH,LANTHI),
CONSTRAINT FK_DIEM_SINHVIEN FOREIGN KEY(MASV) REFERENCES SINHVIEN(MASV),
CONSTRAINT FK_DIEM_MONHOC FOREIGN KEY(MAMH) REFERENCES MONHOC(MAMH)
)
CREATE TABLE GIANGDAY
(
MAGV CHAR(10) NOT NULL,
MAMH CHAR(10) NOT NULL,
NAMHOC CHAR(10) NOT NULL,
HOCKY INT NOT NULL,
CONSTRAINT PK_GIANGDAY PRIMARY KEY(MAGV,MAMH,NAMHOC,HOCKY)
)

ALTER TABLE GIANGDAY


ADD CONSTRAINT FK_GIANGDAY_GIANGVIEN FOREIGN KEY(MAGV) REFERENCES GIANGVIEN(MAGV),
CONSTRAINT FK_GIANGDAY_MONHOC FOREIGN KEY(MAMH) REFERENCES MONHOC(MAMH)
--THANNHAN(MANT,MASV, HOTEN, GIOITINH, QUANHE)
CREATE TABLE THANNHAN
(
MATN CHAR(20) NOT NULL,
HOTEN NVARCHAR(50),
GIOITINH NVARCHAR(8),
CONSTRAINT PK_THANNHAN PRIMARY KEY(MATN)
)
GO
CREATE TABLE QUANHE
(
MATN CHAR(20) NOT NULL,
MASV CHAR(20) NOT NULL,
QUANHE NVARCHAR(20)
CONSTRAINT PK_QUANHE PRIMARY KEY(MATN,MASV),
--CONSTRAINT FK_QUANHE_THANNHAN FOREIGN KEY(MATN) REFERENCES
THANNHAN(MATN),
CONSTRAINT FK_QUANHE_SV FOREIGN KEY (MASV) REFERENCES SINHVIEN(MASV)
)
--ALTER TABLE THANNHAN
--ADD CONSTRAINT FK_TN_SV FOREIGN KEY (MATN) REFERENCES SINHVIEN(MASV)

SELECT * FROM THANNHAN

-- ĐỊNH DẠNG NGÀY


SET DATEFORMAT DMY

-- NHẬP LIỆU

INSERT INTO KHOA VALUES ('TH',N'Công nghệ thông tin')


INSERT INTO KHOA VALUES ('TP',N'Công nghệ thực phẩm')
INSERT INTO KHOA VALUES ('SH',N'Công nghệ sinh học')
INSERT INTO KHOA VALUES ('TC',N'Tài chính kế toán')
INSERT INTO KHOA VALUES ('QT',N'Quản trị kinh doanh')
SELECT * FROM KHOA

INSERT INTO LOP VALUES ('10DHTH1',N'10 Đại học Tin học 1',50,null,'TH')
INSERT INTO LOP VALUES ('11DHTH2',N'11 Đại học Tin học 2',40,null,'TH')
INSERT INTO LOP VALUES ('12DHTP1',N'12 Đại học Thực phẩm 1',60,null,'TP')
INSERT INTO LOP VALUES ('10DHSH1',N'10 Đại học Sinh học 1',55,null,'SH')
INSERT INTO LOP VALUES ('12DHTC1',N'12 Đại học Tài chính 1',75,null,'TC')
SELECT * FROM LOP
SET DATEFORMAT DMY
INSERT INTO SINHVIEN VALUES ('SV001',N'Trần Lệ
Quyên','21/01/1995',N'Nữ',N'TPHCM','10DHTH1')
INSERT INTO SINHVIEN VALUES ('SV002',N'Nguyễn Thế Bình','04/06/1996',N'Nam',N'Tây
Ninh','11DHTH2')
INSERT INTO SINHVIEN VALUES ('SV003',N'Tô Ánh Nguyệt','02/05/1995',N'Nữ',N'Vũng
Tàu','12DHTP1')
INSERT INTO SINHVIEN VALUES ('SV004',N'Nguyễn Thế Anh','15/12/1996',N'Nam',N'Đồng
Nai','12DHTP1')
INSERT INTO SINHVIEN VALUES ('SV005',N'Lê Thanh Bình','09/12/1994',N'Nam',N'Long
An','10DHTH1')
INSERT INTO SINHVIEN VALUES ('SV006',N'Phạm Quang Hậu','12/10/1995',N'Nam',N'Tây
Ninh','10DHTH1')
INSERT INTO SINHVIEN VALUES ('SV007',N'Lê Cẩm Tú','13/02/1989',N'Nữ',N'Bình
Thuận','12DHTP1')
INSERT INTO SINHVIEN VALUES ('SV008',N'Trương Thế Sang','04/04/1993',N'Nam',N'Bình
Dương','10DHSH1')
INSERT INTO SINHVIEN VALUES ('SV009',N'Đậu Quang Ánh','03/12/1994',N'Nam',N'Long
An','12DHTC1')
INSERT INTO SINHVIEN VALUES ('SV010',N'Huỳnh Kim
Chi','18/10/1996',N'Nữ',N'TPHCM','11DHTH2')
INSERT INTO SINHVIEN VALUES ('SV011',N'Trịnh Đình Ánh','15/11/1995',N'Nam',N'Bình
Thuận','10DHTH1')
SELECT * FROM SINHVIEN

--- Cập nhật lớp trưởng


UPDATE LOP
SET LOPTRUONG='SV008' WHERE MALOP='10DHSH1'
UPDATE LOP
SET LOPTRUONG='SV001' WHERE MALOP='10DHTH1'
UPDATE LOP
SET LOPTRUONG='SV005' WHERE MALOP='11DHTH2'
UPDATE LOP
SET LOPTRUONG='SV009' WHERE MALOP='12DHTC1'
UPDATE LOP
SET LOPTRUONG='SV007' WHERE MALOP='12DHTP1'

INSERT INTO GIANGVIEN VALUES ('GV001',N'Phạm Thế Bảo','TH')


INSERT INTO GIANGVIEN VALUES ('GV002',N'Lê Thể Truyền','TH')
INSERT INTO GIANGVIEN VALUES ('GV003',N'Trương Anh Dũng','SH')
INSERT INTO GIANGVIEN VALUES ('GV004',N'Bùi Chí Anh','TC')
INSERT INTO GIANGVIEN VALUES ('GV005',N'Lê Công Hậu','QT')
INSERT INTO GIANGVIEN VALUES ('GV006',N'Lê Trung Thành','TP')
SELECT * FROM GIANGVIEN

INSERT INTO MONHOC VALUES ('CSDL',N'Cơ sở dữ liệu',3)


INSERT INTO MONHOC VALUES ('KTLT',N'Kỹ thuật lập trình',3)
INSERT INTO MONHOC VALUES ('TTNT',N'Trí tuệ nhân tạo',2)
INSERT INTO MONHOC VALUES ('TTQT',N'Thanh toán quốc tế',2)
INSERT INTO MONHOC VALUES ('TRR',N'Toán rời rạc',3)
INSERT INTO MONHOC VALUES ('THVP',N'Tin học văn phòng',3)
SELECT * FROM MONHOC

---DIEM(MASV, MAMH, LANTHI, DIEMTHI)


INSERT INTO DIEM VALUES ('SV001','CSDL',1,9.0)
INSERT INTO DIEM VALUES ('SV002','THVP',1,3.0)
INSERT INTO DIEM VALUES ('SV002','THVP',2,7.0)
INSERT INTO DIEM VALUES ('SV004','THVP',1,6.0)
INSERT INTO DIEM VALUES ('SV004','TTQT',1,5.0)
INSERT INTO DIEM VALUES ('SV005','CSDL',1,3.0)
INSERT INTO DIEM VALUES ('SV005','CSDL',2,6.0)
INSERT INTO DIEM VALUES ('SV006','KTLT',1,4.0)
INSERT INTO DIEM VALUES ('SV009','TTQT',1,4.0)
INSERT INTO DIEM VALUES ('SV010','THVP',1,8.0)
INSERT INTO DIEM VALUES ('SV010','TRR',1,7.0)
SELECT * FROM DIEM

--delete from diem

INSERT INTO GIANGDAY VALUES ('GV001','CSDL','2021-2022',1)


INSERT INTO GIANGDAY VALUES ('GV002','KTLT','2021-2022',2)
INSERT INTO GIANGDAY VALUES ('GV001','TTNT','2020-2021',1)
INSERT INTO GIANGDAY VALUES ('GV002','CSDL','2021-2022',2)
INSERT INTO GIANGDAY VALUES ('GV001','KTLT','2020-2021',2)
SELECT * FROM GIANGDAY

--THANNHAN(MATN, HOTEN, GIOITINH)


--QUANHE(MATN,MASV,QUANHE)

INSERT INTO THANNHAN VALUES ('TN001',N'Nguyễn Thế Thành',N'Nam')


INSERT INTO THANNHAN VALUES ('TN002',N'Tô Ánh Hồng',N'Nữ')
INSERT INTO THANNHAN VALUES ('TN003',N'Lê Thanh An',N'Nam')
INSERT INTO THANNHAN VALUES ('TN004',N'Phạm Thanh Tiền',N'Nữ')
INSERT INTO THANNHAN VALUES ('TN006',N'Đậu Văn Thanh',N'Nam')
INSERT INTO THANNHAN VALUES ('TN007',N'Nguyễn Thị Ánh',N'Nữ')
INSERT INTO THANNHAN VALUES ('TN008',N'Lê Quang Định',N'Nam')
INSERT INTO THANNHAN VALUES ('TN009',N'Huỳnh Văn Tư',N'Nam')
select * from THANNHAN

INSERT INTO QUANHE VALUES ('TN001','SV002',N'Bố')


INSERT INTO QUANHE VALUES ('TN007','SV002',N'Mẹ')
INSERT INTO QUANHE VALUES ('TN003','SV005',N'Bố')
INSERT INTO QUANHE VALUES ('TN006','SV009',N'Bố')
INSERT INTO QUANHE VALUES ('TN004','SV007',N'Mẹ')
INSERT INTO QUANHE VALUES ('TN008','SV005',N'Bố')
INSERT INTO QUANHE VALUES ('TN008','SV007',N'Bố')

ALTER TABLE LOP


ADD CONSTRAINT U_LOPTRUONG UNIQUE (LOPTRUONG)

--CAU2
UPDATE SINHVIEN
SET DCHI=N'CẦN THƠ' WHERE MASV='SV002'
SELECT *FROM SINHVIEN
GO
--CAU3
CREATE VIEW V_SINHVIEN
AS
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV
GO
SELECT *FROM V_SINHVIEN
--CAU4
SELECT MASV,HOTEN
FROM SINHVIEN
WHERE SINHVIEN.DCHI=N'Vũng Tàu'

--CAU5
SELECT SOTC
FROM MONHOC
WHERE MONHOC.TENMH=N'Toán rời rạc'

--CAU6
SELECT TENLOP
FROM LOP L,KHOA KH
WHERE L.MAKH=KH.MAKH AND KH.TENKH=N'Công nghệ thông tin'

--CAU7
SELECT * FROM SINHVIEN WHERE GTINH = N'Nam' AND HOTEN LIKE N'Nguyễn%';

--CAU8 CHO BIẾT HT NS DC CỦA NHỮNG SINH VIÊN NAM HỌC LỚP 10DHTH01
SELECT HOTEN,NGSINH,DCHI
FROM SINHVIEN SV
WHERE SV.GTINH=N'Nam' AND SV.MALOP='10DHTH1'

--CAU9 CHO BIẾT TÊN NHỮNG MÔN HỌC CÓ 1 HOẶC 2 TÍN CHỈ
SELECT TENMH
FROM MONHOC MH
WHERE MH.SOTC=1 OR MH.SOTC=2

--CAU10 CHO BIẾT HT ĐC NHỮNG SINH VIÊN NỮ THUỘC KHOA CNTT


SELECT HOTEN, DCHI
FROM SINHVIEN SV,LOP L,KHOA KH
WHERE SV.MALOP=L.MALOP AND KH.MAKH=L.MAKH AND SV.GTINH=N'NỮ' AND KH.TENKH=N'CÔNG
NGHỆ THÔNG TIN'

--CAU12
SELECT HOTEN
FROM SINHVIEN SV,LOP L,DIEM D
WHERE SV.MALOP=L.MALOP AND SV.MASV=D.MASV AND L.MALOP=N'10DHTH1' AND D.DIEMTHI
BETWEEN 6 AND 8

--CAU11
SELECT HOTEN
FROM SINHVIEN SV
WHERE SV.GTINH=N'NỮ' AND SV.DCHI=N'TP.HCM' OR SV.DCHI=N'VŨNG TÀU'

--CAU13
SELECT HOTEN
FROM SINHVIEN SV,DIEM D,KHOA KH,LOP L
WHERE SV.MALOP=L.MALOP AND KH.MAKH=L.MAKH AND SV.MASV=D.MASV AND
L.MALOP=N'10DHTH1' AND D.MAMH=N'CSDL' AND D.DIEMTHI>5

--CAU14
SELECT TENKH, COUNT(LOP.MALOP) AS SO_LUONG_LOP
FROM KHOA
JOIN LOP ON KHOA.MAKH = LOP.MAKH
GROUP BY TENKH

--CAU15
SELECT TENLOP, COUNT(SINHVIEN.MALOP) AS SO_LUONG_SV
FROM LOP
JOIN SINHVIEN ON LOP.MALOP=SINHVIEN.MALOP
GROUP BY TENLOP

--CAU16
--SELECT KHOA.TENKH, COUNT(SINHVIEN.MASV) AS SO_LUONG_SV
--FROM SINHVIEN,LOP
--INNER JOIN KHOA ON WHERE SINHVIEN.MALOP =LOP.MALOP AND KHOA.MAKH = LOP.MAKH

--CAU17
SELECT SV.MASV,HOTEN,DIEMTHI
FROM SINHVIEN SV,DIEM D
WHERE SV.MASV=D.MASV

--CAU18
SELECT HOTEN, COUNT(*) as TONG_SO_MH
FROM SINHVIEN
WHERE GTINH = N'Nam'
GROUP BY HOTEN

--CAU19
SELECT KHOA.TENKH
FROM LOP ,KHOA
GROUP BY KHOA.TENKH
HAVING COUNT(LOP.MALOP) >= 2

--CAU20
SELECT LOP.TENLOP
FROM LOP ,SINHVIEN
GROUP BY LOP.TENLOP
HAVING COUNT(SINHVIEN.MASV) >= 2

--CAU21
SELECT TENKH
FROM KHOA, SINHVIEN
GROUP BY TENKH
HAVING COUNT(SINHVIEN.MASV) < 500

--CAU22
SELECT TENMH
FROM MONHOC
WHERE SOTC > 1
AND MAMH IN (
SELECT MAMH
FROM DIEM
GROUP BY MAMH
HAVING COUNT(MASV) >= 2
)

--CAU23
SELECT TENMH, SOTC
FROM MONHOC
WHERE SOTC = (SELECT MAX(SOTC) FROM MONHOC)

--CAU24
SELECT HOTEN, GTINH
FROM SINHVIEN
UNION
SELECT HOTEN,GIOITINH
FROM THANNHAN

--CAU25
SELECT sv.*
FROM SINHVIEN SV
INNER JOIN LOP ON SV.MALOP = LOP.MALOP
WHERE LOP.TENLOP = N'12 Đại học Thực phẩm 1' OR (LOP.MALOP = '12DHTP1')

--CAU26
SELECT SV.*
FROM SINHVIEN SV
LEFT JOIN DIEM ON SV.MASV = DIEM.MASV
WHERE DIEM.MASV IS NULL;

--CAU27
SELECT SV.HOTEN, MONHOC.TENMH, DIEM.MASV
FROM SINHVIEN SV
RIGHT JOIN DIEM ON SV.MASV = DIEM.MASV
RIGHT JOIN MONHOC ON DIEM.MAMH = MONHOC.MAMH
WHERE DIEM.DIEMTHI IS NOT NULL
ORDER BY SV.HOTEN, MONHOC.MAMH;

You might also like