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ế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ọ.. Cho biết tên Đề tài
Trang 1ĐẠ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
:©~+©|-~ ö- Si Mã? ĐNGGuey ¿3 £@ @ @ @ :
> | FH fk mahd hoidong dt - Oe SoO-,
T Execute # | ' F | = s
| Object Explorer Connet+ ý "ý s Ý Ó +
© 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
& Ml FileTebles INSERT INTO SV_DETAI VALUES( ‘13520006
E Si External Tables IWSERT TNTO SV DETAI VALUES/ '13529665', `
(2 Gl Groph Tables INSERT INTO SV_DETAT VALUES( ‘13520006
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
œ EB dbo.GV_PEDT
ø EB dbo.GV_UVDT (1 cow affected)
6 3B dbo.HOCHAM
E HR dbeHOCW (1 row affected)
oe Sees FB) dbo HOIDONG DT {1 row affected)
& Fl dbo HOIDONG Gv (1 row attectea)
& 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
=
INSERT THTO DETAT VALUES( '97081',I'Quấn lý thư viện"
IHSERT INTƠ DETAI VâLUES/ `97082`,H"Nhận đạng vân tay') INSERT INTO DETAT VALUES/ '97083',H'Bán đấu giá trên mạng"
IRSERT TNTO DETAI VALUES( '97084",J'Quản lý siêu thị"
IHSERT TNTO DETAI VALUES( '97065',H*Xử lỷ ảnh") THSERT TNT0 DETAT VALUES/ '97006`,H'Mộ giải toán thông minh’
fa Ml System Databases
I\ 86 Datsbese Snepshcts
INSERT INTO SV_DETAT VALUES( '135200811, ` V_DETAI VALUES( ‘13520002 INSERT INTO SV_DETAI VALUES( ‘13520083
E 3É FieTa IHSERT TNTƠ SV DETAT VALUES( '13520004
(2 lll External Tables INSERT INTO SV_DETAI VALUES( '13520005" , *
(2 tll Groph Tables INSERT INTO SV_DETAT VALUES( ‘13520006
f@ MB dbo CHUVENNGANH ` 3 THSFAT TNTO HOCHAM VAIUIFS(1.M'PHS GTÁO Sit’) *
& FB dboDETAl 1o% +
& FB dbeGIAt Meveeges
& Fl dbo.GV_HOD a
————— (6 rows affected!
28 i $e $3 22 3 Šễ i affecte:
fA) dbo HOcM (1 row affected)
& IB doe HOIDONG Gv & Fl dboSINHVIEN iam erveaa
& BR dbcSV DETAL (1 row affected)
* ternal Resources a
B iM Synonyms »
‹ ›
#ø 52 “# 9 €@mãä€ s (ạ @ 5: 4# ^8@®#®® no LIM RR
Trang 43 Câu 3:
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
Cau 3.1 Cho biết danh sách giáo viên gôm mã số GI, Tên GI/ Địa chí, Số
DT, tên học hàm cua GV
SOL SELECT MSGV, TENGV, DIACHI, SODT, TENHH
FROM GIAOVIEN GV, HOCHAM HH
Két qua m chế recy, Tete “vao eo) Te mồ sỐ GV, Tên GV, Địa chí, Số ĐT, tên học hầm cúa GV
Gidi thich Co 2 bang GIAO VIEN va HOC HAM
FROM GIAOVIEN GV va HOCHAM HH
Ta kết nối được 2 bảng bằng MSHH
GV.MSHH = HH.MSHH
Sau đó 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
Cáu 3.2 Liệt kê danh sách đê tài và tên GVHD tương ứng
gv TENGV AS N'Tén GV'
FROM DETAI DT, GIAOVIEN GV, GV_HDDT HD
WHERE DT MSDT = HD.MSDT AND GV.MSGV = HD.MSGV
Kết quả
SELECT dt.MSOT AS N'Ma <3 08 tai’, dt TENDT AS N'Tén 08 tai’, gv.TENGU AS N'Tên 6V
FROM DETAL DT, GIADVIEN 6V, GV_HDOT HD
8 | WHERE DT MSOT = HD.MSDT AND GV.MSGV = HD.MSGV
1:42PM
Pe 97 Pa
Giải
thích
Có 3 bảng DETAT, GIAOVIEN,GV_HDDT
FROM DETAI DT, GIAOVIEN GV, GV_HDDT HD
Ta kết nối được 3 bảng bằng MSHH
DT MSDT = HD.MSDT AND GV.MSGV = HD.MSGV
Sau đó chọn thuộc tính theo yêu cầu đề bài
3.3 Cho biết số lượng đề tài đã hướng dẫn ứng với từng GV
Cdu 3.3 Cho biết số lượng đề tài đã hướng dân ứng voi ting GV
SOL
select g TENGV as [Tén giáo vién], COUNT (t MSDT) as [ So luong] from DETAI t
join GV_HDDT h on t MSDT=h.MSDT
join GIAOVIEN g on g MSGV=h.MSGV
group by g TENGV
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
Kết quả 3.4
+ BELECT MSGV, TENGV as[Tên Gido viẽn]
FROM GLAOVIEN GV
PT
SELECT GV.MSGV, TENG
FROM GV_HOOT HO, GIAOVIEN GV
= SGV
EE Reats pill Meceagee
Giáo việc
207 | Nowte van a
© (tạ tạ & A 8 @ wow NG le
Giải
thích
Sử dụng toán tử EXCEPT (phép trừ )
Sau đó từ bảng GV_HDDT kết với Bảng GIAOVIEN bằng MSGV thỏa
yêu câu đề bài
3.5 _ Cho biết tên Đề tài có nhiều SV tham gia nhất
Cdu 3.5 Cho biét tén Dé tai cé nhiéu SV tham gia nhất
SOL
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
7005 Xửyänh
321PM
1246
Gs (tạ !tặ @ Se ^ 8 đ tO dW ENS up
Giải
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
3.6 Cho biết GV nào hướng dẫn nhiều đề tài nhất
Cdu 3.6 Cho biết GV nào hướng dân nhiêu đê tài nhất
SOL
select top 1 with ties count (HD.MSDT) N' So luong dé tai
',GV.MSGV,TENGV
from GV_HDDT HD, GIAOVIEN GV
where GV.MSGV= HD.MSGV
group by GV.MSGV,TENGV
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
100% +
BE fesils gẾ Mamagea
SZli#ngđÈlà MSGY TENGV
1 ]§ ]} 206 — Nguyễn Thành Phong
;
Giải
thích
Kết bảng GV_HDDT và GIAOVIEN băng MSGV
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
3.7 Hay liét ké danh sach GV, va hoc vi cao nhat cua ho Théng tin xuat ra gom: Mã số GV, Tên GV, tên Học vi
Cdu 3.7 Hãy liệt kê danh sách GV, va hoc vị cao nhát của họ Thông tin xuất ra
gom: Mã số GV, Tén GV, tên Học vị
SOL
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
4 FRƠI GV_HV_CN GURY
GROUP BY GVHY MSGV) AS MAXHV ON MAXHY SGV = GV MSGV)AS MAXGVHV JOT! HOCVT HV ON HV MSHY = MAKGVHV MAXHY
3.8
100 %
100% -
RẺ Feuls pH Mozasspee
MSGV TENGV
Gidi Két bang GIAOVIEN va GV_HV_CN bang MSGV Ce oe ae Fame ee ae
thich Sử dụng hàm MAX lấy học vị cao nhất HVMAX, sau đó Group by
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
3.8 Cho biết tên Đề tài có nhiều SV tham gia nhất
Cdu 3.8 Cho biết tên Đề tài có nhiều SV tham gia nhất
SOL
Select gvl.MSGV, hv TENHV + gv1 TENGV as N'<Tén hoc vi Tén
GV >
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
Thạc sĩ Nguyễn Văn Á,
) ke i a & A & & waa ENG {AOFM 2023-04-02
Giải
thích
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ị