Vous êtes sur la page 1sur 60

NGOÂN NGÖÕ SQL

1. Ngoân ngöõ moâ taû döõ lieäu


2. Ngoân ngöõ thao taùc döõ lieäu
3. Ngoân ngöõ truy vaán döõ lieäu

1
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ
Cho CSDL goàm caùc Baûng sau:
SINHVIEN (MSSV, HOLOT, TEN, PHAI, NGAYSINH,
QUEQUAN, DIACHI, MALOP)
DSLOP (MALOP, TENLOP, SISO, MAKHOA)
DSKHOA (MAKHOA, TENKHOA)
MONHOC (MAMH, TENMH, SOTC)
KETQUA (MSSV, MAMH, DIEM)

2
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ
SINHVIEN
MSSV HOLOT TEN PHAI NGAY QUEQUAN DIACHI MAL
SINH OP
T001 LE VAN TU NAM 13/5/81 TPHCM 12 LELOI-Q1 – TPHCM T1N
D002 TRAN THI DIEM NU 3/12/82 HANOI 3/1A BAHAT - Q10 D1N
H003 NGUYEN VU LINH NAM 1/6/80 DONGTHAP 25 VOTHISAU - Q3 H1N
K004 CAO VAN HUNG NAM 31/7/81 VINHLONG 33/5 HONG HA – TB K1N
T005 LE TIEN DUNG NAM 11/3/84 DONGNAI 77/8 LE LOI - Q1 T2N
T006 DAO VAN DUNG NAM 6/6/79 HUE 38/4 TAM DAO – Q10 T1N
H007 TRAN MINH HANH NU 4/8/81 HANOI 9 BINHGIA – TB H1N
D008 DINH THI TUYET NU 23/4/82 TPHCM 22 CC MIEUNOI D2N
D009 LY HAI TRIEU NAM 18/2/81 CANTHO F7 NGUYEN OANH D1N
K010 HA NGUYEN XUAN NU 16/3/80 ANGIANG 365 CAO THANG K1N

3
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ
DSLOP
MALOP TENLOP SISO MAKHOA
T1N TIN HOC 1 75 TH
T2N TIN HOC 2 68 TH
D1N DIEN TU 1 57 DD
D2N DIEN TU 2 61 DD
H1N HOA HOC 1 123 HH
K1N KINH TE 1 84 KT

DSKHOA
MAKHOA TENKHOA
TH CONG NGHE THONG TIN
DD DIEN – DIEN TU
HH CONG NGHE HOA
KT KINH TE
4
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ
MONHOC KETQUA
MAMH TENMH SOTC MSSV MAMH DIEM
THCB TIN HOC CAN BAN 4 T001 THVP 6
THVP TIN HOC VAN PHONG 3 T001 CSDL 7
CSDL CO SO DU LIEU 4 D002 THCB 8
LTCB LAP TRINH CAN BAN 5 D002 THVP 5
CTDL CAU TRUC DU LIEU 4 D002 LTCB 3
MANG MANG MAY TINH 3 H003 LTCB 9
H003 CTDL 6
K004 THCB 5
K004 THVP 7
K004 CSDL 9
T005 THCB 1
T005 MANG 5

5
1. Ngoân ngöõ moâ taû döõ lieäu
1. Leänh Taïo Baûng
2. Leänh Xoùa Baûng
3. Leänh Theâm Coät
4. Leänh Xoùa Coät
5. Leänh Söûa Coät
6. Leänh Taïo Khoùa chính
7. Leänh Taïo Khoùa ngoaïi
8. Leänh Taïo raøng buoäc veà mieàn giaù trò
9. Leänh Taïo raøng buoäc duy nhaát
10. Leänh Taïo chæ muïc
11. Leänh Xoùa chæ muïc
6
1. Ngoân ngöõ moâ taû döõ lieäu
1.Leänh Taïo Baûng
CREATE TABLE <teân baûng> (
<teân coät 1> <kieåu döõ lieäu 1> [NOT NULL],
<teân coät 2> <kieåu döõ lieäu 2> [NOT NULL],

<teân coät n> <kieåu döõ lieäu n> [NOT NULL]);

NOT NULL : Coät khoâng ñöôïc pheùp roãng

7
1. Ngoân ngöõ moâ taû döõ lieäu
1.Leänh Taïo Baûng – Ví duï
CREATE TABLE SINHVIEN (
MSSV char(4) not null,
HOLOT varchar(20) not null,
TEN varchar(7) not null,
PHAI bit,
NGAYSINH datetime,
QUEQUAN varchar(20),
DIACHI varchar(50),
MALOP char(3) not null);

8
1. Ngoân ngöõ moâ taû döõ lieäu
2.Leänh Xoùa Baûng
DROP TABLE <teân baûng>;

Ví duï:
DROP TABLE SINHVIEN;

9
1. Ngoân ngöõ moâ taû döõ lieäu
3.Leänh Theâm Coät
ALTER TABLE <teân baûng>
ADD <teân coät> <kieåu döõ lieäu> [NOT NULL];

Ví duï:
ALTER TABLE SINHVIEN
ADD DOANVIEN bit;

10
1. Ngoân ngöõ moâ taû döõ lieäu
4.Leänh Xoùa Coät
ALTER TABLE <teân baûng>
DROP COLUMN <teân coät>;

Ví duï:
ALTER TABLE SINHVIEN
DROP COLUMN DOANVIEN;

11
1. Ngoân ngöõ moâ taû döõ lieäu
5.Leänh Söûa Coät
ALTER TABLE <teân baûng>
ALTER COLUMN <teân coät> <kieåu döõ lieäu>;

Ví duï:
ALTER TABLE SINHVIEN
ALTER COLUMN Ngaysinh SmallDatetime;

12
1. Ngoân ngöõ moâ taû döõ lieäu
6.Leänh Taïo Khoùa chính
ALTER TABLE <teân baûng>
ADD CONSTRAINT <teân raøng buoäc>
PRIMARY KEY (DS teân coät);

Löu yù:
-Teân raøng buoäc laø duy nhaát
-Caùc coät trong DS teân coät phaûi coù thuoäc tính
NOT NULL

13
1. Ngoân ngöõ moâ taû döõ lieäu
6.Leänh Taïo Khoùa chính - Ví duï:
ALTER TABLE SINHVIEN
ADD CONSTRAINT Kc_Sv
PRIMARY KEY (mssv);

ALTER TABLE KETQUA


ADD CONSTRAINT Kc_Kq
PRIMARY KEY (mssv,mamh);

14
1. Ngoân ngöõ moâ taû döõ lieäu
7.Leänh Taïo Khoùa ngoaïi
ALTER TABLE <teân baûng>
ADD CONSTRAINT <teân raøng buoäc>
FOREIGN KEY (DS teân coät)
REFERENCES <teân baûng> (DS teân coät);

Löu yù:
-Teân raøng buoäc laø duy nhaát

15
1. Ngoân ngöõ moâ taû döõ lieäu
7.Leänh Taïo Khoùa ngoaïi - Ví duï:
ALTER TABLE SINHVIEN
ADD CONSTRAINT Kn_Sv
FOREIGN KEY(malop)
REFERENCES DSLOP (malop);

ALTER TABLE KETQUA


ADD CONSTRAINT Kn_Kq1
FOREIGN KEY (mssv)
REFERENCES SINHVIEN (mssv);

16
1. Ngoân ngöõ moâ taû döõ lieäu
8.Leänh Taïo raøng buoäc veà mieàn giaù trò
ALTER TABLE <teân baûng>
ADD CONSTRAINT <teân raøng buoäc>
CHECK (Ñieàu kieän);

Löu yù:
-Teân raøng buoäc laø duy nhaát

17
1. Ngoân ngöõ moâ taû döõ lieäu
8.Leänh Taïo raøng buoäc mieàn giaù trò - Ví duï:

ALTER TABLE KETQUA


ADD CONSTRAINT Kt_Kq
CHECK (Diem between 0 AND 10);

ALTER TABLE DSLOP


ADD CONSTRAINT Kt_Dslop
CHECK (Siso >= 50);

18
1. Ngoân ngöõ moâ taû döõ lieäu
9.Leänh Taïo raøng buoäc duy nhaát
ALTER TABLE <teân baûng>
ADD CONSTRAINT <teân raøng buoäc>
UNIQUE (DS Teân coät);

Löu yù:
-Teân raøng buoäc laø duy nhaát

19
1. Ngoân ngöõ moâ taû döõ lieäu
9.Leänh Taïo raøng buoäc duy nhaát – Ví duï
Teân moân hoïc khoâng ñöôïc truøng nhau:
ALTER TABLE MONHOC
ADD CONSTRAINT Dn_Mh
UNIQUE (TenMH);

20
1. Ngoân ngöõ moâ taû döõ lieäu
10.Leänh Taïo chæ muïc
CREATE INDEX <teân Index>
ON <teân baûng> (<coät 1>, <coät 2>, ...) ;

Ngöõ nghóa: Taïo chæ muïc ñeå löu thöù töï saép xeáp
caùc baûn ghi theo giaù trò taêng daàn cuûa caùc
coät ñöôïc cho trong danh saùch.
Ghi chuù: Chæ neân taïo chæ muïc cho caùc baûng coù
nhieàu baûn ghi vaø ít ñöôïc caäp nhaät, vaø chæ
neân taïo treân caùc coät maø thoâng tin cuûa noù
thöôøng xuyeân ñöôïc tham khaûo tôùi.
21
1. Ngoân ngöõ moâ taû döõ lieäu
10.Leänh Taïo chæ muïc – Ví duï:
CREATE INDEX Cm_sv1
ON SINHVIEN (Ten);

CREATE INDEX Cm_mh1


ON MONHOC (TenMH);

22
1. Ngoân ngöõ moâ taû döõ lieäu
11.Leänh Xoùa chæ muïc
DROP INDEX <teân Index> ;

Ví duï:
DROP INDEX Cm_sv1

DROP INDEX Cm_mh1

23
2. Ngoân ngöõ thao taùc döõ lieäu
1. Leänh Theâm maãu tin
2. Leänh Xoùa maãu tin
3. Leänh caäp nhaät maãu tin

24
2. Ngoân ngöõ thao taùc döõ lieäu
1.Leänh theâm maãu tin (1)
INSERT INTO <teân baûng> (<teân coät 1>, ...)
VALUES (<bieåu thöùc 1>, <bieåu thöùc 2>, ...);

Löu yù:
-Kieåu döõ lieäu
-Chieàu daøi
-Caùc raøng buoäc toaøn veïn: khoùa chính, khoùa
ngoaïi, kieåm tra, duy nhaát

25
2. Ngoân ngöõ thao taùc döõ lieäu
1.Leänh theâm maãu tin (1) – Ví duï

Theâm 1 Sinh vieân môùi:


INSERT INTO SINHVIEN (MSSV, HOLOT, TEN, PHAI,
NGAYSINH, QUEQUAN, DIACHI, MALOP)
VALUES (‘T005’,’LE TIEN’,’DUNG’,1,’3/18/84’,
’DONGNAI’,’77/8 LE LOI – Q1’,’T2N’);

Theâm 1 Moân hoïc môùi:


INSERT INTO MONHOC (MAMH, TENMH, SOTC)
VALUES (‘CSDL’,’CO SO DU LIEU’,4);

26
2. Ngoân ngöõ thao taùc döõ lieäu
1.Leänh theâm maãu tin (2)
Neáu caùc bieåu thöùc sau töø khoaù VALUES hoaøn
toaøn phuø hôïp veà thöù töï vôùi caùc coät trong
baûng  danh saùch caùc coät sau töø khoùa
INTO coù theå ñöôïc boû qua

INSERT INTO <teân baûng>


VALUES (<bieåu thöùc 1>, <bieåu thöùc 2>, ...);

27
2. Ngoân ngöõ thao taùc döõ lieäu
1.Leänh theâm maãu tin (2) – Ví duï

Theâm 1 Sinh vieân môùi:


INSERT INTO SINHVIEN
VALUES (‘T005’,’LE TIEN’, ’DUNG’, 1,
’3/18/84’, ’DONGNAI’,’77/8 LE LOI – Q1’,
’T2N’);

Theâm 1 Moân hoïc môùi:


INSERT INTO MONHOC
VALUES (‘CSDL’,’CO SO DU LIEU’,4);
28
2. Ngoân ngöõ thao taùc döõ lieäu
1.Leänh theâm maãu tin (3)
Ngoaøi ra ta coù theå theâm (caùc) maãu tin vaøo
baûng töø caâu leänh truy vaán (Select)

INSERT INTO <teân baûng> (<teân coät 1>, ...)


<Caâu leänh Select>
hoaëc
INSERT INTO <teân baûng>
<Caâu leänh Select>

29
2. Ngoân ngöõ thao taùc döõ lieäu
1.Leänh theâm maãu tin (3) – Ví duï

Theâm Sinh vieân môùi töø 1 danh saùch:


INSERT INTO SINHVIEN
SELECT * FROM DSSV_NEW ;

Löu yù:
-DSSV_New coù cuøng caáu truùc vôùi SINHVIEN

30
2. Ngoân ngöõ thao taùc döõ lieäu
2.Leänh Xoùa maãu tin
 Vieäc loaïi boû maãu tin khoûi 1 baûng trong CSDL laø 1
trong nhöõng thao taùc caäp nhaät döõ lieäu ñöôïc tieán
haønh moät caùch thöôøng xuyeân
 Cuù phaùp:
DELETE FROM <teân baûng>
[WHERE <ñieàu kieän>];
 Ngöõ nghóa: Caùc maãu tin thoaû maõn ñieàu kieän sau
WHERE seõ bò xoaù khoûi baûng. Neáu khoâng coù meänh
ñeà WHERE thì taát caû caùc maãu tin cuûa baûng seõ bò
xoùa khoûi baûng.

31
2. Ngoân ngöõ thao taùc döõ lieäu
2.Leänh Xoùa maãu tin – Ví duï:
Xoùa Sinh vieân coù Maõ soá laø T005
DELETE FROM SINHVIEN
WHERE MSSV=‘T005’;

Xoùa taát caû caùc moân hoïc coù 5 tín chæ


DELETE FROM MONHOC
WHERE SOTC = 5;

32
2. Ngoân ngöõ thao taùc döõ lieäu
3.Leänh caäp nhaät maãu tin
Cuù phaùp
UPDATE <teân baûng>
SET <teân coät 1> = <bieåu thöùc 1>,
<teân coät 2> = <bieåu thöùc 2>,
...
<teân coät n> = <bieåu thöùc n>
[WHERE <ñieàu kieän>];

33
2. Ngoân ngöõ thao taùc döõ lieäu
3.Leänh caäp nhaät maãu tin
Ngöõ nghóa: Giaù trò cuûa caùc field coù teân trong
danh saùch <teân coät 1>, <teân coät 2> ... cuûa
nhöõng maãu tin thoaû maõn ñieàu kieän sau
WHERE seõ ñöôïc söûa ñoåi thaønh giaù trò cuûa
caùc <bieåu thöùc 1>, <bieåu thöùc 2> ... töông
öùng.
Neáu khoâng coù meänh ñeà WHERE thì taát caû caùc
maãu tin cuûa baûng seõ ñöôïc söûa ñoåi.

34
2. Ngoân ngöõ thao taùc döõ lieäu
3.Leänh caäp nhaät maãu tin
Ví duï:
Taêng cho taát caû sinh vieân 1 ñieåm moân THCB
UPDATE KETQUA
SET DIEM = DIEM +1
WHERE MAMH = ‘THCB’;
Caäp nhaät só soá lôùp T2N thaønh 90
UPDATE DSLOP
SET SISO = 90
WHERE MALOP = ‘T2N’;

35
3. Ngoân ngöõ truy vaán döõ lieäu
1. Cuù phaùp toång quaùt
2. Daïng ñôn giaûn
3. Daáu *
4. Meänh ñeà WHERE
5. Meänh ñeà ORDER BY
6. Meänh ñeà GROUP BY
7. Meänh ñeà HAVING
8. Phaùt bieåu Select vôùi AS
9. Phaùt bieåu Select vôùi TOP N
10. Phaùt bieåu Select vôùi DISTINCT
11. Truy vaán töø nhieàu Baûng
12. Truy vaán con 36
3. Ngoân ngöõ truy vaán döõ lieäu
1.Cuù phaùp toång quaùt

SELECT <Danh saùch caùc coät>


FROM <Danh saùch Baûng>
WHERE <Caùc ñieàu kieän>
GROUP BY <Teân coät>
HAVING <Ñieàu kieän döïa treân GROUP BY>
ORDER BY <Danh saùch coät>

37
3. Ngoân ngöõ truy vaán döõ lieäu
2.Daïng ñôn giaûn
SELECT <Danh saùch caùc coät>
FROM <Teân Baûng>
 Trích ra moät soá coät trong 1 Baûng naøo ñoù

Ví duï: Laáy ra MAMH, TENMH töø baûng MONHOC


SELECT MAMH, TENMH
FROM MONHOC;

38
3. Ngoân ngöõ truy vaán döõ lieäu
3.Daáu *
Daáu * ñaïi dieän cho taát caû caùc coät

SELECT *
FROM <Teân Baûng>

Ví duï: Laáy ra danh saùch caùc moân hoïc


SELECT *
FROM MONHOC;

39
3. Ngoân ngöõ truy vaán döõ lieäu
4.Meänh ñeà WHERE
Duøng ñeå ñaët ñieàu kieän trích döõ lieäu
SELECT <Danh saùch caùc coät>
FROM <Teân Baûng>
WHERE <Danh saùch ñieàu kieän>

Ví duï: Laáy ra MSSV, HOTEN cuûa Sinh vieân queâ quaùn


‘HA NOI’
SELECT MSSV, HOLOT, TEN
FROM SINHVIEN
WHERE QUEQUAN = ‘HA NOI’;
40
3. Ngoân ngöõ truy vaán döõ lieäu
4.Meänh ñeà WHERE
Caùc pheùp toaùn trong meänh ñeà WHERE
-So saùnh: >, <, >=, <=, =, <>
-Logic: And, Or, Not
Ví duï: Laáy ra MSSV, HOTEN cuûa Sinh vieân lôùp T2N queâ
quaùn ‘HA NOI’
SELECT MSSV, HOLOT, TEN
FROM SINHVIEN
WHERE QUEQUAN = ‘HA NOI’ AND MALOP=
‘T2N’;
41
3. Ngoân ngöõ truy vaán döõ lieäu
4.Meänh ñeà WHERE
Toaùn töû Between: naèm trong 1 mieàn

Ví duï: Trích ra danh saùch Sinh vieân sinh naêm 1982


SELECT *
FROM SINHVIEN
WHERE NGAYSINH Between ‘1/1/1982’ And
’12/31/1982’;

42
3. Ngoân ngöõ truy vaán döõ lieäu
4.Meänh ñeà WHERE
Toaùn töû LIKE: pheùp toaùn so saùnh gaàn gioáng,
söû duïng daáu caùc kyù töï ñaïi dieän nhö _ (1
kyù töï), % (1 chuoãi baát kyø)

Ví duï: Trích ra danh saùch Sinh vieân Hoï ‘Phan’


SELECT *
FROM SINHVIEN
WHERE HOLOT LIKE ‘Phan%’;

43
3. Ngoân ngöõ truy vaán döõ lieäu
4.Meänh ñeà WHERE
Toaùn töû IN: pheùp toaùn so saùnh trong 1 taäp
hôïp, 1 danh saùch

Ví duï: Trích ra danh saùch Sinh vieân queâ quaùn


ôû caùc tænh ‘Caàn Thô’, ‘An Giang’, ‘Kieân
Giang’
SELECT *
FROM SINHVIEN
WHERE QUEQUAN IN (‘Caàn Thô’, ‘An
Giang’, ‘Kieân Giang’);
44
3. Ngoân ngöõ truy vaán döõ lieäu
4.Meänh ñeà WHERE
IS NULL ( IS NOT NULL ): kieåm tra 1 giaù trò coù
roãng hay khoâng (keát quaû: TRUE – FALSE)

Ví duï: Trích ra danh saùch Sinh vieân chöa coù


ñòa chæ
SELECT *
FROM SINHVIEN
WHERE DIACHI IS NULL;

45
3. Ngoân ngöõ truy vaán döõ lieäu
4.Meänh ñeà WHERE
Toaùn töû Exists: traû veà TRUE neáu coù ít nhaát 1
maãu tin toàn taïi
Ví duï: Cho bieát coù sinh vieân naøo Queâ quaùn
‘Nha Trang’ khoâng?
If Exists (SELECT *
FROM SINHVIEN
WHERE QUEQUAN = ‘Nha Trang’)
Print ‘Co sinh vien’;

46
3. Ngoân ngöõ truy vaán döõ lieäu
5.Meänh ñeà ORDER BY
Saép xeáp keát quaû theo thöù töï mong muoán

ORDER BY <DS Teân coät [ASC | DESC]>


Ví duï: Trích ra danh saùch sinh vieân nöõ, saép
theo teân taêng daàn?
SELECT MSSV, HOLOT, TEN, MALOP
FROM SINHVIEN
WHERE PHAI= 0
ORDER BY TEN ASC;
47
3. Ngoân ngöõ truy vaán döõ lieäu
6.Meänh ñeà GROUP BY
Nhoùm döõ lieäu laïi theo töøng nhoùm ñeå thöïc
hieän caùc pheùp toaùn thoáng keâ

GROUP BY <DS Teân coät>

Ví duï: Cho bieát soá löôïng sinh vieân töøng lôùp


SELECT MALOP, COUNT(*) AS SOSV
FROM SINHVIEN
GROUP BY MALOP
48
3. Ngoân ngöõ truy vaán döõ lieäu
6.Meänh ñeà GROUP BY
Moät soá Haøm thoâng duïng:
-AVG: giaù trò trung bình
-MIN: giaù trò nhoû nhaát
-MAX: giaù trò lôùn nhaát
-COUNT: ñeám soá phaàn töû
-SUM : Toång caùc phaàn töû

49
3. Ngoân ngöõ truy vaán döõ lieäu
7.Meänh ñeà HAVING
Ñaët ñieàu kieän choïn sau khi ñaõ nhoùm döõ lieäu
baèng meänh ñeà GROUP BY
Ví duï: Trích ra Danh saùch caùc lôùp coù treân 20
sinh vieân

SELECT MALOP, COUNT(*) AS SOSV


FROM SINHVIEN
GROUP BY MALOP
HAVING COUNT(*) > 20 ;
50
3. Ngoân ngöõ truy vaán döõ lieäu
8.Phaùt bieåu Select vôùi AS
Ñaët laïi teân Field khi hieån thò keát quaû
Ví duï: Trích ra Danh saùch caùc lôùp coù treân 20
sinh vieân

SELECT MALOP AS ML, COUNT(*) AS SOSV


FROM SINHVIEN
GROUP BY MALOP
HAVING COUNT(*) > 20 ;

51
3. Ngoân ngöõ truy vaán döõ lieäu
9.Phaùt bieåu Select vôùi TOP N
Cho pheùp laáy ra chæ moät soá maãu tin naøo ñoù
theo 1 tieâu chuaån naøo ñoù.

Ví duï: Trích ra Danh saùch 10 sinh vieân ñaàu tieân.

SELECT TOP 10 *
FROM SINHVIEN;

52
3. Ngoân ngöõ truy vaán döõ lieäu
10.Phaùt bieåu Select vôùi DISTINCT
Neáu keát quaû truy vaán coù nhieàu maãu tin truøng
nhau, ñeå chæ laáy 1 maãu tin ta duøng
DISTINCT
Ví duï: Trong Danh saùch Sinh vieân, cho bieát coù
nhöõng lôùp naøo

SELECT DISTINCT MALOP


FROM SINHVIEN;

53
3. Ngoân ngöõ truy vaán döõ lieäu
11.Truy vaán töø nhieàu baûng
Khi thoâng tin caàn laáy ra coù töø nhieàu baûng
khaùc nhau, caàn thöïc hieän truy vaán töø
nhieàu baûng

SELECT <Danh saùch caùc coät>


FROM <Danh saùch caùc Baûng>
WHERE <Caùc ñieàu kieän>

54
3. Ngoân ngöõ truy vaán döõ lieäu
11.Truy vaán töø nhieàu baûng

Löu yù:
 Caàn keát caùc baûng laïi vôùi nhau. Vôùi n
baûng caàn coù n-1 ñieàu kieän keát.
 Caùc teân coät cuøng coù ôû nhieàu baûng caàn
ghi roõ theo daïng [Teân Baûng].[Teân coät]

55
3. Ngoân ngöõ truy vaán döõ lieäu
11.Truy vaán töø nhieàu baûng

Ví duï: Trích ra MSSV, HOTEN, MALOP,TENLOP


cuûa nhöõng sinh vieân teân ‘NAM’

SELECT MSSV, HOLOT, TEN, DSLOP.MALOP, TENLOP


FROM SINHVIEN, DSLOP
WHERE SINHVIEN.MALOP = DSLOP.MALOP
AND TEN=‘NAM’;

56
3. Ngoân ngöõ truy vaán döõ lieäu
11.Truy vaán töø nhieàu baûng
-Coù theå söû duïng teân taét cuûa caùc Baûng

Ví duï: Trích ra MSSV, HOTEN, MALOP, TENLOP


cuûa nhöõng sinh vieân khoa CNTT
SELECT MSSV, HOLOT, TEN, L.MALOP, TENLOP
FROM SINHVIEN S, DSLOP L, DSKHOA K
WHERE S.MALOP = L.MALOP
AND L.MAKHOA = K.MAKHOA
AND TENKHOA=‘Cong nghe thong tin’;

57
3. Ngoân ngöõ truy vaán döõ lieäu
12.Truy vaán con
-Ñoâi khi ta caàn söû duïng keát quaû cuûa 1 caâu
truy vaán ñeå laøm ñieàu kieän cho 1 caâu truy
vaán khaùc, khi ñoù ta goïi laø truy vaán con.
-Khi thöïc hieän, truy vaán con seõ ñöôïc thöïc
hieän tröôùc, roài laáy keát quaû ñeå thöïc hieän
truy vaán lôùn

58
3. Ngoân ngöõ truy vaán döõ lieäu
12.Truy vaán con
Daïng toång quaùt:

SELECT <Danh saùch caùc coät>


FROM <Danh saùch Baûng>
WHERE <Caùc ñieàu kieän>
… < Teân coät > IN ( NOT IN, =, <>, …)
( SELECT <Danh saùch caùc coät>
FROM <Danh saùch Baûng>
WHERE <Caùc ñieàu kieän>)

59
3. Ngoân ngöõ truy vaán döõ lieäu
12.Truy vaán con
Ví duï: Trích ra DS nhöõng SV coù ñieåm moân THVP
cao nhaát

SELECT S.MSSV,HOLOT,TEN,MAMH,DIEM
FROM SINHVIEN S, KETQUA K
WHERE S.MSSV = K.MSSV
AND MAMH=‘THVP’
AND DIEM = ( SELECT MAX(DIEM)
FROM KETQUA
WHERE MAMH=‘THVP’)
60

Vous aimerez peut-être aussi