• Cho l
c đ quan h g m các quan h sau:
ượ
ệ ồ
ệ
ồ
• GIAOVIEN (MaGV,TenGV,Ngsinh,Diachi,NgVL,SoDT)
• DETAI (MaDT, TenDT, NgBD,NgKT,MaGV)
• SINHVIEN (MaSV, TenSV, Ngsinh, Gioitinh, MaDT)
GIAOVIEN—(MaGV)—DETAI—(MaDT)—SINHVIEN
1
ế ằ
• Câu 1.1a) Vi • Cho bi
t b ng Đ i s quan h : ệ ạ ố t thông tin v các đ tài b t đ u hay k t ắ ầ ề
ề
ế
ế thúc trong năm 2005 (MaDT, TenDT, TenGV).
MaGV
‹
= = (cid:218) ‹ Q 1 Q 2 DETAI Q (:1 YEAR ( GIAOVIEN NgBD ) 2005 YEAR ( NgKT ) 2005 )
2
‹ Q 3 Q [2 MaDT , TenDT , TenGV ]
t b ng ngôn ng SQL:
ế ằ
ữ
• Câu 1.1b) Vi • Cho bi
ế
t thông tin v các đ tài b t đ u hay k t ề
ắ ầ
ề
ế thúc trong năm 2005 (MaDT, TenDT, TenGV).
• SELECT detai.MaDT, TenDT, TenGV
FROM detai, giaovien WHERE detai.MaGV = giaovien.MaGV AND (YEAR(NgBD)=2005 OR YEAR(NgKT)=2005)
• Xem hàm: YEAR, MONTH
3
ế ằ
• Câu 1.2a) Vi • Cho bi
t b ng ĐSQH: ề ề
ế
ng d n nh sau:
t thông tin v các đ tài do giáo viên ở ư
ướ
ẫ
‘TP.HCM’ (Diachi=’ TP.HCM) h (MaDT, TenDT, TenGV, MaSV, TenSV).
MaGV
‹ Q 1 GIAOVIEN DETAI
MaDT
‹
‹ Q 1 Q (:2 SINHVIEN = TP . Diachi ' HCM )' Q Q 2 3
4
‹ Q 4 Q [3 MaDT , TenDT , TenGV , MaSV , TenSV ]
t b ng NN SQL:
ế ằ
• Câu 1.2b) Vi • Cho bi
ế
ề
ề
ng d n nh sau:
t thông tin v các đ tài do giáo viên ở ư
ướ
ẫ
‘TP.HCM’ (Diachi=’ TP.HCM) h (MaDT, TenDT, TenGV, MaSV, TenSV).
• SELECT detai.MaDT,TenDT, TenGV, MaSV,TenSV
FROM giaovien, detai, sinhvien WHERE giaovien.MaGV = detai.MaGV AND detai.MaDT = sinhvien.MaDT AND Diachi=’ TP.HCM
5
ế ằ
• Câu 1.3a) Vi t b ng ĐSQH: • In ra các giáo viên (MaGV, TenGV) không h
ng
ướ
ề
d n đ tài nào có ngày k t thúc trong tháng 10 năm ế ẫ 2005
= ‹ Q 1 DETAI (:
(cid:217) MONTH YEAR ( ( NgKT NgKT ) = ) 10 2005 )
‹ [1
‹ Q Q 2 3 Q MaGV ] GIAOVIEN [ MaGV ]
- ‹ Q 4 QQ 3 2
MaGV
‹ Q 5 Q 4 GIAOVIEN
6
‹ Q 6 Q [5 MaGV , TenGV ]
ế ằ
• Câu 1.3b) Vi t b ng NN SQL: • In ra các giáo viên (MaGV, TenGV) không h
ng
ướ
ề
d n đ tài nào có ngày k t thúc trong tháng 10 năm ế ẫ 2005
• SELECT MaGV, TenGV
FROM giaovien WHERE MaGV NOT IN (SELECT MaGV FROM detai WHERE YEAR(NgKT)=2005 AND
MONTH(NgKT)=10)
7
t b ng ĐSQH:
ế ằ
• Câu 1.4a) Vi • Tìm các sinh viên “nam” có làm chung đ tài v i các
ề
ớ
sinh viên “nu” (MaSV).
= ‹ Q 1 SINHVIEN (: Gioitinh ' nu )[' MaDT ]
MaDT Q
8
= ‹ Q 2 ( SINHVIEN (: Gioitinh ' nam )' [)1 MaSV ]
t b ng NN SQL:
ế ằ
• Câu 1.4b) Vi • Tìm các sinh viên “nam” có làm chung đ tài v i các
ề
ớ
sinh viên “nu” (MaSV).
• SELECT MaSV FROM sinhvien WHERE Gioitinh=‘nam’ AND MaDT
IN (SELECT MaDT FROM sinhvien WHERE Gioitinh=‘nu’)
9
t b ng NN SQL:
ế ằ
• Câu 1.5b) Vi • V i m i đ tài, hãy in thông tin sau:
ỗ ề
ớ
(MaDT,TenDT,SLSV)
• SELECT detai.MaDT, TenDT,
COUNT(MaSV) AS SLSV
FROM detai, sinhvien WHERE detai.MaDT = sinhvien.MaDT GROUP BY detai.MaDT, TenDT
• Xem hàm: COUNT, SUM, MIN, MAX, AVG
10
t b ng NN SQL:
ề
• Câu 1.6b) Vi ế ằ • V i các giáo viên ừ
ng d n có t ẫ
ớ ướ
ở
‘TP.HCM’ và các đ tài mà h ọ ở 2 sinh viên tr lên, hãy cho ra th ng ố
h kê sau: (MaGV,TenGV,TenDT,SLSV) • SELECT detai.MaGV, TenGV, TenDT,
COUNT(MaSV) AS SLSV
FROM giaovien, detai, sinhvien WHERE giaovien.MaGV = detai.MaGV AND detai.MaDT = sinhvien.MaDT AND Diachi=’ TP.HCM
GROUP BY detai.MaGV, TenGV, TenDT HAVING COUNT(MaSV) >= 2
11
ể
• Câu 2.1) Phát bi u ch c ch ràng bu c sau: ặ • R1: Ngày k t thúc c a m i đ tài ph i sau ngày ủ
ẽ ỗ ề
ộ ả
ắ ầ
ế b t đ u c a đ tài đó. ủ
bi n n b
ữ
ừ ế
ộ
"
ề • 1. Phát bi u:ể dùng ngôn ng tân t DETAI (d.NgBD < d.NgKT)
d ˛
• 2. B i c nh: ố ả • 3. T m nh h ầ ả
DETAI ng: ưở
Thêm
Xóa
S aử
R1 DETAI
+
-
+(NgBD,NgKT)
12
ẽ
ặ
ộ
ể ng d n 1 DT thì ngày b t đ u c a
ướ
ủ
• Câu 2.2) Phát bi u ch c ch ràng bu c sau: • R2: Khi GV h ắ ầ ẫ đ tài ph i sau ngày vào làm c a GV đó.
ủ
ề
ả
bi n n b
• 1. Phát bi u:ể dùng ngôn ng tân t
ữ
ừ ế
ộ
d ˛ ($ g ˛
g.NgVL DETAI
GIAOVIEN (g.MaGV=d.MaGV) (cid:222)
• 2. B i c nh:
ố ả
• 3. T m nh h
ầ ả " Thêm Xóa S aử R2
GIAOVIEN +(NgVL) DETAI +(NgBD,MaGV) 13 GIAOVIEN d ˛ g ˛ " Thêm Xóa S aử R2
GIAOVIEN +(SoDT) DETAI +(MaGV) • Xem hàm: COUNT, SUM 14 MaGV
= Bt
1 (( DETAI
(:
YEAR
( GIAOVIEN
)
=
2005
)) ) NgBD [ MaDT , TenDT , TenGV ] MaGV
= Bt =
(2 DETAI (: YEAR ( NgBD ) 2005
) GIAOVIEN ) MaGV
]
= MaDT
[
DETAI TenDT
TenGV
,
,
(:
NgBD
YEAR
(
) Bt =
(3 2005 )[ MaDT , TenDT , MaGV ] 15 GIAOVIEN [ MaGV , TenGV ])[ MaDT , TenDT , TenGV ] = · Bt
1 (( DETAI ) GIAOVIEN
= = (cid:217) (: DETAI MaGV
. GIAOVIEN MaGV
. YEAR ( NgBD ) 2005 )) MaGV
[ MaDT , TenDT , TenGV ] Bt =
(2 16 DETAI
(:
YEAR
( GIAOVIEN
=
2005 ) )
))[ NgBD MaDT , TenDT , TenGV ] MaGV
= Bt
1 = DETAI
(((
(:
YEAR
( NgBD ) GIAOVIEN
)
))
2005
= )) MONTH
(:
MaDT
[ (
TenDT NgBD
, )
TenGV 2005
] , MaGV
= Bt 2 ) = = (cid:217) DETAI
((
(:
YEAR
( GIAOVIEN
2005
) ) NgBD ( MONTH ( NgBD ) 2005 )) 17 [ MaDT , TenDT , TenGV ]DETAI
ng:
ưở
-
-
+
-
ể
ẽ
ặ
ộ
• Câu 2.3) Phát bi u ch c ch ràng bu c sau:
• R3: Thu c tính “SoDT” trong GIAOVIEN ph i b ng
ả ằ
ộ
ng đ tài” mà GV đó h
“s l
ề
ố ượ
bi n n b
ướ
• 1. Phát bi uể : dùng ngôn ng tân t
ng d n.
ẫ
ừ ế
ộ
ữ
DETAI
(g.SoDT = COUNTd˛ DETAI (cid:217) d.MaGV=g.MaGV(d.MaDT)
• 2. B i c nh:
ố ả
• 3. T m nh h
ầ ả
DETAI
ng:
ưở
-
-
+
+
• Câu 3.1) T i u câu tr l
i sau:
ố ư
ả ờ
• Câu 3.2) T i u câu tr l
i sau:
ố ư
ả ờ
• Câu 3.3) T i u câu tr l
i sau:
ố ư
ả ờ