ĐẠI HỌC QUOC GIA THANH PHO HO CHI MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THONG TIN KHOA KHOA HỌC VÀ KỸ THUẬT THÔNG TIN
UIT TRƯỜNG ĐẠI HỌC
CÔNG NGHE THONG TIN
QUAN LY THONG TIN IE103.N21.VB2
BAI TAP THUC HANH 2
Sinh viên thực hiện: Nguyên Cao Trí - 21522918 Giảng viên:
ThS Lưu Thanh Sơn ThS Nguyên Thành Phong
Thành phố Hồ Chí Minh, năm 2023
Trang 2
MỤC LỤC
1 Câu 1: Tạo CSDL tên là QLTT Viết các câu lệnh SQL tạo các quan bệ trên với các kiểu
dữ liệu mô tả trong bảng sau (tạo các ràng buộc khóa chính, khóa ngoại tương ứng): 1
3.1 Cho biết danh sách giáo viên gồm mã số GV, Tên GV, Địa chỉ, Số ĐT, tên học hàm của
GV 2
3.2 Liệt kê danh sách đề tài và tên GVHD tương ứng 3
3.3 Cho biết số lượng đề tài đã hướng dẫn ứng với từng GV, sccseceereecsecee 4
3.4 Liệt kê danh sách giáng viên chưa hướng dẫn đề tài nào 5
3.5 _ Cho biết tên Dé tài có nhiều SV tham gia nhất 6
3.6 Cho biếtGV nào hướng dẫn nhiều đề tài nhất 7
3.7, Hãy liệt kê danh sách GV, và học vị cao nhất của họ Thông tin xuất ra gồm: Mã số
3.8 Cho biết tên Đề tài có nhiều SV tham gia nhất 9
Trang 31 Câu 1: Tạo CSDL tên là QLTT Viết các câu lệnh SQL tạo các quan hệ trên với các kiểu dữ liệu mô tả trong bảng sau (tạo các ràng buộc khóa chính, khóa ngoại tương ứng):
Quick Launch (Ctri+Q ® - #8 x
2} me QuantyTrsg court = Microsoft SOL
File Edit View Project Tools Window Help
© eb ADMIN\SQLEXPRESS (SCL Server 15.0.2 10 ^,
INSERT THTO DETAT VALUES( '97061',H'Quản lý thư viện" IHSERT TNTƠ DETAI VâLUES/ `97082`,H"Nhận đạng vấn ) INSERT INTO DETAT VALUES/ '97063',H'Bán đấu giá trên nạng" IHSERT TNTO DETAI VALUES( '97084','Quản lý siêu thị INSERT INTO DETAI VALUES/ '97065",H*Xở lý ảnh") INSERT INTO DETAT VALUES/ '97066`,H'Mộ giải toán thông minh’ fa Ml System Databases
@ &@ Bentizng @ srm¿ oLrr
INSERT INTO SV_DETAI VALUES( '13520081 INSERT INTO SV_DETAI VALUES( ‘13520083 Mt Database Diagrams
© Mt Tables Mt System Tables
oS ng TSERT TATA HOCHAN VAI J£%/1.M'PHẾ &TÁN Sit") x
œ fl dbe.DETAI 10% + œ BR dbeGIA Meveeges & Fil dbo.Gv_HOD a
BÄ dboGV-HV.CN (É rewe affected| a
& Fl dboSINHVIEN
œ FB dbosv_CeTal (1 row attected)
2 ver * ternal Resources lợn (coe atten !
@ Mt Synonyms v ‹ ›
^8@®dđ tNG vente RB
2 Cau 2: Thém (Insert) dir ligu vao CSDL
Be BTHz QuanyTTsal our ~ Microsoft SQL ki Quic + 2 = 8# x
File Edit View Project Teals Windew Help
5@-+O|@-o- SMW | Biworny /8 @ @ @ @ + © | 1| ~ | ÿH tkmahd heideng dt “| eeo-, Execute 8 | ' i | = =
| Object Ex 7
Connects ¥ He T G+
© BB ADMIN\SQLEXPRESS (SQL Server 15.0210 a =
f@ MB dbo CHUVENNGANH ` 3 THSFAT TNTO HOCHAM VAIUIFS(1.M'PHS GTÁO Sit’) *
& FB dboDETAl 1o% + & FB dbeGIAt Meveeges
#ø 52 “# 9 €@mãä€ s (ạ @ 5: 4# ^8@®#®® no LIM RR
Trang 4Sau đó chọn thuộc tính theo yêu cầu đề bài
Trang 5
3.2 _ Liệt kê danh sách đề tài và tên GVHD tương ứng
DT MSDT = HD.MSDT AND GV.MSGV = HD.MSGV Sau đó chọn thuộc tính theo yêu cầu đề bài
Trang 6
Kết quả 9 Eiselect g.TENGV os [Tên giõo viễn], COUNT (t.MSDT) as [ 5ö lượng]
229 frow DETAI t l8 @V HDOT hon t MSDT=h fSDT
= GTAOVTEN g on g.MSGV-h HSGV 232 _ group by g TENGV 100% v
EB Reouts G8 Messages Tân qáo vên
5 Trân Thu Trang
6 Tin Tang
- Bang GV _HDDT véi bang GIAOVIEN bang MSGV
- _ Đếm số lượng đề tài của mỗi giáo viên băng hàm count và gom nhóm theo TENGV sao cho mỗi giáo viên chỉ xuất hiện 01 lần
theo yêu câu bài toán
3.4 _ Liệt kê danh sách giảng viên chưa hướng dẫn đề tài nào
Cầu 3.4 | Liệt kê danh sách giảng viên chưa hướng dân đề tài nào SOL SELECT MSGV, TENGV as[Tén Giao viên]
FROM GIAOVIEN GV EXCEPT
SELECT GV.MSGV, TENGV
FROM GV_HDDT HD, GIAOVIEN GV WHERE GV.MSGV = HD.MSGV
Trang 7
FROM GV_HOOT HO, GIAOVIEN GV = SGV EE Reats pill Meceagee
Giáo việc 207 | Nowte van a
Sau đó từ bảng GV_HDDT kết với Bảng GIAOVIEN bằng MSGV thỏa
yêu câu đề bài
SELECT TOP | WITH TIES COUNT(SD.MSSV) AS N'S6 sinh viên', DT.MSDT AS NMã đề tài, TENDT AS N'Tên đề tài
FROM DETAI DT, SV_DETAI SD WHERE DT.MSDT = SD.MSDT GROUP BY DT.MSDT, TENDT ORDER BY COUNT(SD.MSSV) DESC
Trang 8
Kết quả 40) BELECT TOP 1 MITH TIES C9//1/50.#S5V) A5 H'58 sinh viện", DT.#6DT A5 M'MŠ đề tài', TENDT A5 N'Tên để tài"
247) FROM DETAT DT, SV ĐETAI SD 2) WHERE OT.MSOT = SD.MSOT
4 GROUP BY ØT MSDT, TEMDT
59) ORDER BY COUNT(SD.MSSV) DESC
viên M&đềtả: Tên đễtảt
thích
Count (MSSV) theo MSDT, sau đó gom nhóm theo DEMSDT, TENDT
Str dung TOP | WITH TIES Đề tài có Count(MSSV) theo thứ tự giảm dan đê thỏa yêu câu đề bài
Order by count (HD.MSDT) dese
Trang 9
Kết quả
55] Select top 2 with thes count (HO.MSDT) Ñ' Số lượng đề tài ',@V.MSGV,TENGV ›⁄j_ ffem GW_HUOT HD, GIAOVIEN GV
where GV.MSGV- HD.NSGỤ 55) group by @V.MSGV,TENGV
Order by count (HO.NSDT) dese
Count (MSDT), sau d6 gom nhom theo GV.MSGV, TENGV
Sắp xếp count(MSDT), str dung top | with ties theo thir ty tang dan thoa yéu cau dé bai
SELECT MAXGVHV.MSGV, MAXGVHV.TENGV, HV.TENHV FROM
(SELECT GV.MSGV, GV.TENGV, MAXHV.MAXHV
FROM GIAOVIEN GV JOIN (SELECT MAX(GVHV.MSHV) MAXHV, GVHV.MSGV
FROM GV_HV_CN GVHV
GROUP BY GVHV.MSGV) AS MAXHV ON MAXHV.MSGV = GVMSGV)AS MAXGVHV JOIN HOCVI HV ON HV.MSHV MAXGVHV.MAXHV
Trang 10
Kết quả -— BELECT MAXGVHV.MSGY, MAXGVHV TENGY, HV TENHV
2 (SELECT GV.MSGV, GV TENGV, MAXHV MAXHY
FROM GIAOVIEN GY JOIN (SELECT (4X (GVHV.MSHV) MAXHV, GVHV.MSGV
gom nhóm kết quả theo MSGV
Định nghĩ bảng vừa tạo thành là MAXX, kết MAXX với 02 bảng GIAOVIEN và HOCVI lần lượt bằng MSGV và MSHV
Sử dụng Order by DESC sắp xếp MSHV theo thứ tự giảm dần thỏa
from GIAOVIEN evl, HOCVI hy, (select max (HVGV.MSHV)
HVMAX, gv2.MSGV gv3 from GIAOVIEN gv2, GV HV_CN HVGV
where gv2.MSGV = HVGV.MSGV group by gv2.MSGV) MAXX
where gvl.MSGV = MAXX.ev3 and hv MSHV = MAXX.HVMAX
Trang 11Kết quả SELECT MAXGVHV.MSGV, CONCAT WS (' ",HV TENHV,HAXGVHV TENGV) AS [<Tên học vị Tên giáo viên»] FROM
(SELECT GV.MSGV, GV TENGY, MAXHV MAXHV
FROM GIAOVIEN GV OI) (SELECT MAX(GVHV.MSHY) MAXHV, GVHV.ESGV FROM GV_HV_CN GVIV
GROUP BY GVHV.MSGV) AS MAXHV ON MAXHY MSGV = GV MSGV)AS MAXGVHY JOl) HOCVT MỤ ON HV NSHV - MAXGVHU MAUGW
Thạc sĩ N Thành Phong
Lấy học vị cao nhất HVMAX bằng hàm MAX
Group by gom nhóm kết quả theo MSGV
Định nghĩ bảng vừa tạo thành là MAXX, ta kết MAXX với 02 bảng
GIAOVIEN và HOCVI lần lượt băngf MSGV và MSHV
Sử dụng Order by DESC sắp xếp MSHV theo thứ tự giảm dần thỏa yêu cầu để bài
Đặt tên cột mới sinh ra là: ŒV và Học vị