You are on page 1of 10

2.

Truy vn lng
2.1 Gii thiu truy vn lng
nh ngha: Truy vn lng l mt cu truy vn m bn trong ni dung ca n c
cha mt cu truy vn con khc. C php:
SELECT A FROM X
WHERE ( SELECT B FROM Y WHERE )
Phn loi: Da vo c im ca cu truy vn con ngi ta phn truy vn lng
thnh 2 loi chnh:
- Truy vn lng phn cp: Khi ni dung ca cu truy vn con c lp vi cu truy
vn cha.
C php:
SELECT A FROM X
WHERE (SELECT B, C FROM Y)
v d trn, cu truy vn con SELECT B FROM Y khng s dng bt k thnh phn
no ca cu truy vn cha. Do y l mt cu truy vn lng phn cp.
- Truy vn lng tng quan: Khi ni dung ca cu truy vn con ph thuc vo cu
truy vn cha.
C php:
SELECT A FROM X
WHERE (SELECT B, C FROM Y WHERE B = X.A)
v d ny, cu truy vn con SELECT B, C FROM Y WHERE B = X.A c s dng
thnh phn ca cu truy vn cha qua biu thc so snh B = X.A. Do , y l mt cu truy
vn lng tng quan.
2.2 Cc v tr ca cu truy vn con:
Cu truy vn con c th nm v tr bt k trong cu truy vn cha. Cu truy vn con
c th t ti mnh SELECT, mnh FROM hoc thng thng nht l mnh
WHERE.
2.2.1 t ti mnh SELECT:
Kt qu ca cu truy vn s nh l mt gi tr ca mt thuc tnh.
V d 1: Vi mi b mn, cho bit tn b mn v s lng gio vin ca b mn .
SELECT BM.TENBM, ( SELECT COUNT(*)
FROM GIAOVIEN GV

WHERE GV.MABM = BM.MABM) FROM BOMON BM


2.2.2 t ti mnh FROM:
Kt qu ca cu truy vn s xem nh l mt bng d liu, do vy c th truy vn t
bng d liu ny.
V d 2: Cho bit h tn v lng ca cc gio vin b mn HTTT
SELECT T.HOTEN, T.LNG
FROM (

SELECT MAGV, HOTEN, LUONG as LNG


FROM GIAOVIEN
WHERE MAGV= 001)

2.2.3 t ti mnh WHERE:


Kt qu ca cu truy vn c s dng nh mt thnh phn trong biu thc iu
kin.
V d 3: Cho bit nhng gio vin c lng ln hn lng ca gio vin c
MAGV=001
SELECT *
FROM GIAOVIEN
WHERE LUONG > (SELECT LUONG
FROM GIAOVIEN
2.3 Truy vn lng phn cp vi ton t IN
Ton t IN dng kim tra mt gi tr c nm trong mt tp hp no hay
khng. Tp hp c th l kt qu ca mt cu truy vn hoc mt tp hp tng minh
(xem li chng 3 Truy vn c bn).
C php ca biu thc iu kin: [THUC TNH] IN [TP HP]
[THUC TNH] IN ( SELECT
FROM
WHERE ) Hoc
[THUC TNH] IN ( gi tr 1, gi tr 2, , gi tr n)
Chn tr ca mnh ny l TRUE nu gi tr ca thuc tnh nm trong tp hp.
Ngc li mnh s cho chn tr FALSE.

V d 4: Cho bit h tn nhng gio vin m khng c mt ngi thn no.


SELECT HOTEN FROM GIAOVIEN

WHERE MAGV NOT IN (SELECT MAGV FROM NGUOITHAN)


V d 5: Cho nhng gio vin c tham gia ti
SELECT *
FROM GIAOVIEN
WHERE MAGV IN (SELECT MAGV FROM THAMGIADT)
2.4 Truy vn lng phn cp vi ton t ALL
Ton t ALL c s dng vi cc ton t so snh s hc: >, <, >=, <=,
C php ca biu thc iu kin:
[THUC TNH] [> | < | >= | <= | !=] ALL [TP HP]
Biu thc iu kin ny cho chn tr ng nu gi tr ca thuc tnh > | < | >= | <=
| != mi phn t trong tp hp.
V d 6: Cho nhng gio vin c lng nh nht
SELECT *
FROM GIAOVIEN
WHERE LUONG <= ALL (SELECT LUONG FROM GIAOVIEN)
V d 7: Cho nhng gio vin c lng cao hn tt c cc gio vin ca b mn
HTTT
SELECT *
FROM GIAOVIEN
WHERE LUONG >=ALL( SELECT LUONG
FROM GIAOVIEN
WHERE MABM= HTTT)
V d 8: Cho bit b mn (MABM) c ng gio vin nht
SELECT MABM FROM GIAOVIEN GROUP BY MAMB
HAVING COUNT(*) >=ALL( SELECT COUNT(*)
FROM GIAOVIEN
GROUP BY MABM)
V d 9: Cho bit h tn nhng gio vin m khng c mt ngi thn no. (S
dng ALL thay v NOT IN)
SELECT HOTEN FROM GIAOVIEN
GROUP BY MAGV != ALL ( SELECT MAGV
FROM NGUOITHAN)

2.5 Truy vn lng phn cp vi ton t ANY, SOME


C php ca s dng ANY v SOME tng t vi c php s dng ton t ALL. ALL
c s dng khi mun gi tr ca thuc tnh tha mn vi tt c cc phn t trong tp
hp theo ton t s hc c s dng. Ngc li l ANY: bt k, SOME: mt vi.
V d 10: Cho bit h tn nhng gio vin c tham gia ti. (S dng = ANY thay
v IN)
SELECT HOTEN
FROM GIAOVIEN
WHERE MAGV = ANY (SELECT MAGV
FROM THAMGIADT)
2.6 Mt s v d truy vn lng tng quan vi EXISTS
C php s dng EXISTS:
- EXISTS thng c s dng trong biu thc iu kin:
EXISTS ( SELECT
FROM
WHERE )
Chn tr ca mnh EXISTS l TRUE nu kt qu ca cu truy vn con tr v t
mt b tr ln. Ngc li, nu cu truy vn con khng tr ra d liu th mnh EXISTS
cho chn tr FALSE.
- EXISTS thng dng trong cu truy vn lng tng quan.
V d 11: Cho bit cc gio vin c tham gia ti.
SELECT HOTEN FROM GIAOVIEN GV
WHERE EXISTS ( SELECT *
FROM THAMGIADT TG
WHERE TG.MAGV = GV.MAGV)
V d 12: Cho bit cc gio vin khng c ngi thn
SELECT HOTEN FROM GIAOVIEN GV
WHERE NOT EXISTS ( SELECT *
FROM NGUOITHAN NT
WHERE NT.MAGV = GV.MAGV)
V d 13: Cho bit cc gio vin khng c ngi thn
SELECT HOTEN FROM GIAOVIEN GV

WHERE NOT EXISTS ( SELECT *


FROM NGUOITHAN NT
WHERE NT.MAGV = GV.MAGV)
2.7 Mt s v d khc v truy vn lng tng quan
V d 14: Cho bit nhng gio vin c lng ln hn lng trung bnh ca b mn
m gio vin lm vic.
SELECT HOTEN
FROM GIAOVIEN GV1
WHERE GV1.LUONG > ( SELECT AVG (GV2.LUONG)
FROM GIAOVIEN GV2
WHERE GV2.MABM = GV1.MABM)
V d 15: Cho bit nhng gio vin c lng ln nht.
SELECT HOTEN
FROM GIAOVIEN GV1
WHERE ( SELECT COUNT(*)
FROM GIAOVIEN GV2
WHERE GV2.LUONG > GV1.LUONG) = 0
V d 16: Cho bit nhng ti m gio vin 001 khng tham gia.
SELECT MADT FROM DETAI DT
WHERE NOT EXISTS ( SELECT *
FROM THAMGIADT TG
WHERE TG.MADT = DT.MADT AND MAGV= 001)
Hoc
SELECT MADT
FROM DETAI
WHERE MADT NOT IN ( SELECT MADT
FROM THAMGIADT
WHERE MAGV = 001)
2.8 Mt cu truy vn c th gii bng nhiu cch
V d 17: Cho bit h tn nhng gio vin c vai tr qun l v mt chuyn mn vi
cc gio vin khc.
S dng EXISTS:

SELECT GV1.HOTEN FROM GIAOVIEN GV1


WHERE EXISTS ( SELECT *
FROM GIAOVIEN GV2
WHERE GV2.GVQLCM = GV1.MAGV)
Hoc
S dng IN:
SELECT HOTEN FROM GIAOVIEN
WHERE MAGV IN ( SELECT GVQLCM
FROM GIAOVIEN)
S dng php kt thng thng:
SELECT DISTINCT GV2.HOTEN
FROM GIAOVIEN GV1, GIAOVIEN GV2
WHERE GV1.GVQLCM = GV2.MAGV
2.9 Truy vn lng vi cc kt hp v gom nhm
V d 18: Cho bit nhng gio vin c lng cao nht
SELECT MABM FROM GIAOVIEN
WHERE LUONG =(SELECT MAX(LUONG)
FROM GIAOVIEN)
Hoc
SELECT MABM
FROM GIAOVIEN
WHERE LUONG >= ALL(SELECT LUONG
FROM GIAOVIEN)
V d 19: Cho bit nhng b mn (MABM) c ng gio vin nht.
SELECT MABM FROM GIAOVIEN GROUP BY MABM
HAVING COUNT(*) >= ALL ( SELECT COUNT(*)
FROM GIAOVIEN GV
GROUP BY GV.MABM)
Hoc
SELECT MABM FROM GIAOVIEN GROUP BY MABM
HAVING COUNT(*) = ( SELECT MAX (SLGV)

FROM (SELECT COUNT(*) AS SLGV


FROM GIAOVIEN
GROUP BY MABM) AS T )
V d 20: Cho bit nhng tn b mn, h tn ca trng b mn v s lng gio
vin ca b mn c ng gio vin nht.
SELECT BM.TENBM, TBM.HOTEN, COUNT(*) AS SLGV
FROM GIAOVIEN GV, BOMON BM, GIAOVIEN TBM
WHERE GV.MABM = BM.MABM AND BM.TRUONGBM=TBM.MAGV
GROUP BY GV.MABM, TBM.HOTEN
HAVING COUNT(*) >= ALL ( SELECT COUNT(*)
FROM GIAOVIEN
GROUP BY MABM)
V d 21: Cho bit nhng gio vin c lng ln hn mc lng trung bnh ca
gio vin b mn H thng thng tin m khng trc thuc b mn h thng thng tin.
SELECT GV.HOTEN
FROM GIAOVIEN GV
WHERE LUONG > ( SELECT AVG(GV.LUONG)
FROM GIAOVIEN GV, BOMON BM
WHERE GV.MABM=BM.MABM AND
BM.TENBM = H thng thng tin)
V d 22: Cho tn bit ti c ng gio vin tham gia nht vin b mn H thng
thng tin m khng trc thuc b mn h thng thng tin.
SELECT MAX (MADT)
FROM DETAI
WHERE LUONG > ( SELECT MADT, COUNT (DISTINCT MAGV) AS SL
FROM THAMGIADT
GROUP BY MADT )
2.10 Bi tp ti lp
Yu cu: Vit cc cu truy vn Q35, Q37, , Q57 trong bi tp Qun l ti.
Thi lng: 02 gi.
Bi tp Qun l TI:
Q35. Cho bit mc lng cao nht ca cc ging vin.

Q36. Cho bit nhng gio vin c lng ln nht.


Q37. Cho bit lng cao nht trong b mn HTTT.
Q38. Cho bit tn gio vin ln tui nht ca b mn H thng thng tin.
Q39. Cho bit tn gio vin nh tui nht khoa Cng ngh thng tin.
Q40. Cho bit tn gio vin v tn khoa ca gio vin c lng cao nht.
Q41. Cho bit nhng gio vin c lng ln nht trong b mn ca h.
Q42. Cho bit tn nhng ti m gio vin Nguyn Hoi An cha tham gia.
Q43. Cho bit nhng ti m gio vin Nguyn Hoi An cha tham gia. Xut ra tn
ti, tn ngi ch nhim ti.
Q44. Cho bit tn nhng gio vin khoa Cng ngh thng tin m cha tham gia
ti no.
Q45. Tm nhng gio vin khng tham gia bt k ti no
Q46. Cho bit gio vin c lng ln hn lng ca gio vin Nguyn Hoi An
Q47. Tm nhng trng b mn tham gia ti thiu 1 ti
Q48. Tm gio vin trng tn v cng gii tnh vi gio vin khc trong cng b
mn
Q49. Tm nhng gio vin c lng ln hn lng ca t nht mt gio vin b mn
Cng ngh phn mm
Q50. Tm nhng gio vin c lng ln hn lng ca tt c gio vin thuc b
mn H thng thng tin
Q51. Cho bit tn khoa c ng gio vin nht
Q52. Cho bit h tn gio vin ch nhim nhiu ti nht
Q53. Cho bit m b mn c nhiu gio vin nht
Q54. Cho bit tn gio vin v tn b mn ca gio vin tham gia nhiu ti nht.
Q55. Cho bit tn gio vin tham gia nhiu ti nht ca b mn HTTT.
Q56. Cho bit tn gio vin v tn b mn ca gio vin c nhiu ngi thn nht.
Q57. Cho bit tn trng b mn m ch nhim nhiu ti nht.
2.11 Bi tp v nh
Yu cu:
1. Vit cc cu truy vn Q36, Q38, , Q56 trong bi tp Qun l ti.
2. Vit cc cu truy vn Q34 Q50 trong bi tp Qun l Chuyn bay.
Thi lng: 03 gi.

Bi tp Qun l CHUYN BAY:


Q34. Cho bit hng sn xut, m loi v s hiu ca my bay c s dng nhiu
nht.
Q35. Cho bit tn nhn vin c phn cng i nhiu chuyn bay nht.
Q36. Cho bit thng tin ca phi cng (tn, a ch, in thoi) li nhiu chuyn bay
nht.
Q37. Cho bit sn bay (SBDEN) v s lng chuyn bay ca sn bay c t chuyn
bay p xung nht.
Q38. Cho bit sn bay (SBDI) v s lng chuyn bay ca sn bay c nhiu chuyn
bay xut pht nht.
Q39. Cho bit tn, a ch, v in thoi ca khch hng i trn nhiu chuyn bay
nht.
Q40. Cho bit m s, tn v lng ca cc phi cng c kh nng li nhiu loi my
bay nht.
Q41. Cho bit thng tin (m nhn vin, tn, lng) ca nhn vin c mc lng cao
nht.
Q42. Cho bit tn, a ch ca cc nhn vin c lng cao nht trong phi hnh on
(cc nhn vin c phn cng trong mt chuyn bay) m ngi tham gia.
Q43. Cho bit m chuyn bay, gi i v gi n ca chuyn bay bay sm nht trong
ngy.
Q44. Cho bit m chuyn bay c thi gian bay di nht. Xut ra m chuyn bay v
thi gian bay (tnh bng pht).
Q45. Cho bit m chuyn bay c thi gian bay t nht. Xut ra m chuyn bay v
thi gian bay.
Q46. Cho bit m chuyn bay v ngy i ca nhng chuyn bay bay trn loi my
bay B747 nhiu nht.
Q47. Vi mi chuyn bay c trn 3 hnh khch, cho bit m chuyn bay v s lng
nhn vin trn chuyn bay . Xut ra m chuyn bay v s lng nhn vin.
Q48. Vi mi loi nhn vin c tng lng trn 600000, cho bit s lng nhn
vin trong tng loi nhn vin . Xut ra loi nhn vin, v s lng nhn vin tng
ng.
Q49. Vi mi chuyn bay c trn 3 nhn vin, cho bit m chuyn bay v s lng
khch hng t ch trn chuyn bay .

Q50. Vi mi loi my bay c nhiu hn mt chic, cho bit s lng chuyn bay
c b tr bay bng loi my bay . Xut ra m loi v s lng.

You might also like