ngoÂn ngÖÕ sql

61
1 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

Upload: dalton-rowland

Post on 03-Jan-2016

45 views

Category:

Documents


2 download

DESCRIPTION

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. 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) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: NGOÂN NGÖÕ SQL

1

NGOÂN NGÖÕ SQL

1. Ngoân ngöõ moâ taû döõ lieäu2. Ngoân ngöõ thao taùc döõ lieäu3. Ngoân ngöõ truy vaán döõ lieäu

Page 2: NGOÂN NGÖÕ SQL

2

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)

Page 3: NGOÂN NGÖÕ SQL

3

CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ

MSSV HOLOT TEN PHAI NGAYSINH

QUEQUAN DIACHI MALOP

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

SINHVIEN

Page 4: NGOÂN NGÖÕ SQL

4

CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ

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

DSLOP

MAKHOA TENKHOA

TH CONG NGHE THONG TIN

DD DIEN – DIEN TU

HH CONG NGHE HOA

KT KINH TE

DSKHOA

Page 5: NGOÂN NGÖÕ SQL

5

CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ

MAMH TENMH SOTC

THCB TIN HOC CAN BAN 4

THVP TIN HOC VAN PHONG 3

CSDL CO SO DU LIEU 4

LTCB LAP TRINH CAN BAN 5

CTDL CAU TRUC DU LIEU 4

MANG MANG MAY TINH 3

MONHOCMSSV MAMH DIEM

T001 THVP 6

T001 CSDL 7

D002 THCB 8

D002 THVP 5

D002 LTCB 3

H003 LTCB 9

H003 CTDL 6

K004 THCB 5

K004 THVP 7

K004 CSDL 9

T005 THCB 1

T005 MANG 5

KETQUA

Page 6: NGOÂN NGÖÕ SQL

6

1. Ngoân ngöõ moâ taû döõ lieäu1. Leänh Taïo Baûng2. Leänh Xoùa Baûng3. Leänh Theâm Coät4. Leänh Xoùa Coät5. Leänh Söûa Coät6. Leänh Taïo Khoùa chính7. Leänh Taïo Khoùa ngoaïi8. Leänh Taïo raøng buoäc veà mieàn giaù

trò9. Leänh Taïo raøng buoäc duy nhaát10. Leänh Taïo chæ muïc11. Leänh Xoùa chæ muïc

Page 7: NGOÂN NGÖÕ SQL

7

1. Ngoân ngöõ moâ taû döõ lieäu1.Leänh Taïo BaûngCREATE 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

Page 8: NGOÂN NGÖÕ SQL

8

1. Ngoân ngöõ moâ taû döõ lieäu1.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);

Page 9: NGOÂN NGÖÕ SQL

9

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

Ví duï:DROP TABLE SINHVIEN;

Page 10: NGOÂN NGÖÕ SQL

10

1. Ngoân ngöõ moâ taû döõ lieäu3.Leänh Theâm CoätALTER 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;

Page 11: NGOÂN NGÖÕ SQL

11

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

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

Page 12: NGOÂN NGÖÕ SQL

12

1. Ngoân ngöõ moâ taû döõ lieäu5.Leänh Söûa CoätALTER 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;

Page 13: NGOÂN NGÖÕ SQL

13

1. Ngoân ngöõ moâ taû döõ lieäu6.Leänh Taïo Khoùa chínhALTER 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

Page 14: NGOÂN NGÖÕ SQL

14

1. Ngoân ngöõ moâ taû döõ lieäu6.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);

Page 15: NGOÂN NGÖÕ SQL

15

1. Ngoân ngöõ moâ taû döõ lieäu7.Leänh Taïo Khoùa ngoaïiALTER 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

Page 16: NGOÂN NGÖÕ SQL

16

1. Ngoân ngöõ moâ taû döõ lieäu7.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);

Page 17: NGOÂN NGÖÕ SQL

17

1. Ngoân ngöõ moâ taû döõ lieäu8.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

Page 18: NGOÂN NGÖÕ SQL

18

1. Ngoân ngöõ moâ taû döõ lieäu8.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);

Page 19: NGOÂN NGÖÕ SQL

19

1. Ngoân ngöõ moâ taû döõ lieäu9.Leänh Taïo raøng buoäc duy nhaátALTER 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

Page 20: NGOÂN NGÖÕ SQL

20

1. Ngoân ngöõ moâ taû döõ lieäu9.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_MhUNIQUE (TenMH);

Page 21: NGOÂN NGÖÕ SQL

21

1. Ngoân ngöõ moâ taû döõ lieäu10.Leänh Taïo chæ muïcCREATE 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.

Page 22: NGOÂN NGÖÕ SQL

22

1. Ngoân ngöõ moâ taû döõ lieäu10.Leänh Taïo chæ muïc – Ví duï:CREATE INDEX Cm_sv1ON SINHVIEN (Ten);

CREATE INDEX Cm_mh1ON MONHOC (TenMH);

Page 23: NGOÂN NGÖÕ SQL

23

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

Ví duï:DROP INDEX Cm_sv1

DROP INDEX Cm_mh1

Page 24: NGOÂN NGÖÕ SQL

24

2. Ngoân ngöõ thao taùc döõ lieäu1. Leänh Theâm maãu tin

2. Leänh Xoùa maãu tin3. Leänh caäp nhaät maãu tin

Page 25: NGOÂN NGÖÕ SQL

25

2. Ngoân ngöõ thao taùc döõ lieäu1.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

Page 26: NGOÂN NGÖÕ SQL

26

2. Ngoân ngöõ thao taùc döõ lieäu1.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);

Page 27: NGOÂN NGÖÕ SQL

27

2. Ngoân ngöõ thao taùc döõ lieäu1.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>, ...);

Page 28: NGOÂN NGÖÕ SQL

28

2. Ngoân ngöõ thao taùc döõ lieäu1.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);

Page 29: NGOÂN NGÖÕ SQL

29

2. Ngoân ngöõ thao taùc döõ lieäu1.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ëcINSERT INTO <teân baûng><Caâu leänh Select>

Page 30: NGOÂN NGÖÕ SQL

30

2. Ngoân ngöõ thao taùc döõ lieäu1.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

Page 31: NGOÂN NGÖÕ SQL

31

2. Ngoân ngöõ thao taùc döõ lieäu2.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.

Page 32: NGOÂN NGÖÕ SQL

32

2. Ngoân ngöõ thao taùc döõ lieäu2.Leänh Xoùa maãu tin – Ví duï:Xoùa Sinh vieân coù Maõ soá laø T005

DELETE FROM SINHVIENWHERE MSSV=‘T005’;

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

DELETE FROM MONHOCWHERE SOTC = 5;

Page 33: NGOÂN NGÖÕ SQL

33

2. Ngoân ngöõ thao taùc döõ lieäu3.Leänh caäp nhaät maãu tin

Cuù phaùpUPDATE <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>];

Page 34: NGOÂN NGÖÕ SQL

34

2. Ngoân ngöõ thao taùc döõ lieäu3.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.

Page 35: NGOÂN NGÖÕ SQL

35

2. Ngoân ngöõ thao taùc döõ lieäu3.Leänh caäp nhaät maãu tinVí duï:Taêng cho taát caû sinh vieân 1 ñieåm moân

THCBUPDATE KETQUA

SET DIEM = DIEM +1 WHERE MAMH = ‘THCB’;

Caäp nhaät só soá lôùp T2N thaønh 90UPDATE DSLOP

SET SISO = 90 WHERE MALOP = ‘T2N’;

Page 36: NGOÂN NGÖÕ SQL

36

3. Ngoân ngöõ truy vaán döõ lieäu1. Cuù phaùp toång quaùt

2. Daïng ñôn giaûn3. Daáu *4. Meänh ñeà WHERE5. Meänh ñeà ORDER BY6. Meänh ñeà GROUP BY7. Meänh ñeà HAVING8. Phaùt bieåu Select vôùi AS9. Phaùt bieåu Select vôùi TOP N10. Phaùt bieåu Select vôùi DISTINCT11. Truy vaán töø nhieàu Baûng12. Truy vaán con

Page 37: NGOÂN NGÖÕ SQL

37

3. Ngoân ngöõ truy vaán döõ lieäu1.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>

Page 38: NGOÂN NGÖÕ SQL

38

3. Ngoân ngöõ truy vaán döõ lieäu2.Daïng ñôn giaûnSELECT <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, TENMHFROM MONHOC;

Page 39: NGOÂN NGÖÕ SQL

39

3. Ngoân ngöõ truy vaán döõ lieäu3.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;

Page 40: NGOÂN NGÖÕ SQL

40

3. Ngoân ngöõ truy vaán döõ lieäu4.Meänh ñeà WHEREDuø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, TENFROM SINHVIENWHERE QUEQUAN = ‘HA NOI’;

Page 41: NGOÂN NGÖÕ SQL

41

3. Ngoân ngöõ truy vaán döõ lieäu4.Meänh ñeà WHERECaùc pheùp toaùn trong meänh ñeà WHERE-So saùnh: >, <. >=, <=, =, <>-Logic: And, Or, NotVí duï: Laáy ra MSSV, HOTEN cuûa Sinh vieân lôùp

T2N queâ quaùn ‘HA NOI’

SELECT MSSV, HOLOT, TENFROM SINHVIENWHERE QUEQUAN = ‘HA NOI’ AND MALOP=

‘T2N’;

Page 42: NGOÂN NGÖÕ SQL

42

3. Ngoân ngöõ truy vaán döõ lieäu4.Meänh ñeà WHEREToaù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 SINHVIENWHERE NGAYSINH Between ‘1/1/1982’ And

’12/31/1982’;

Page 43: NGOÂN NGÖÕ SQL

43

3. Ngoân ngöõ truy vaán döõ lieäu4.Meänh ñeà WHEREToaù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 SINHVIENWHERE HOLOT LIKE ‘Phan%’;

Page 44: NGOÂN NGÖÕ SQL

44

3. Ngoân ngöõ truy vaán döõ lieäu4.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 SINHVIENWHERE QUEQUAN IN (‘Caàn Thô’, ‘An

Giang’, ‘Kieân Giang’);

Page 45: NGOÂN NGÖÕ SQL

45

3. Ngoân ngöõ truy vaán döõ lieäu4.Meänh ñeà WHEREIS 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 SINHVIENWHERE DIACHI IS NULL;

Page 46: NGOÂN NGÖÕ SQL

46

3. Ngoân ngöõ truy vaán döõ lieäu4.Meänh ñeà WHEREToaùn töû Exists: traû veà TRUE neáu coù ít

nhaát 1 maãu tin toàn taïiVí duï: Cho bieát coù sinh vieân naøo Queâ

quaùn ‘Nha Trang’ khoâng?If Exists (SELECT *FROM SINHVIENWHERE QUEQUAN = ‘Nha Trang’)Print ‘Co sinh vien’;

Page 47: NGOÂN NGÖÕ SQL

47

3. Ngoân ngöõ truy vaán döõ lieäu5.Meänh ñeà ORDER BYSaé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, MALOPFROM SINHVIENWHERE PHAI= 0ORDER BY TEN ASC

Page 48: NGOÂN NGÖÕ SQL

48

3. Ngoân ngöõ truy vaán döõ lieäu6.Meänh ñeà GROUP BYNhoù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 SOSVFROM SINHVIENGROUP BY MALOP

Page 49: NGOÂN NGÖÕ SQL

49

3. Ngoân ngöõ truy vaán döõ lieäu6.Meänh ñeà GROUP BYMoä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öû

Page 50: NGOÂN NGÖÕ SQL

50

3. Ngoân ngöõ truy vaán döõ lieäu7.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 BYVí duï: Trích ra Danh saùch caùc lôùp coù

treân 20 sinh vieân

SELECT MALOP, COUNT(*) AS SOSVFROM SINHVIENGROUP BY MALOP HAVING COUNT(*) > 20 ;

Page 51: NGOÂN NGÖÕ SQL

51

3. Ngoân ngöõ truy vaán döõ lieäu8.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 SOSVFROM SINHVIENGROUP BY MALOP HAVING COUNT(*) > 20 ;

Page 52: NGOÂN NGÖÕ SQL

52

3. Ngoân ngöõ truy vaán döõ lieäu9.Phaùt bieåu Select vôùi TOP NCho 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;

Page 53: NGOÂN NGÖÕ SQL

53

3. Ngoân ngöõ truy vaán döõ lieäu10.Phaùt bieåu Select vôùi DISTINCTNeá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 MALOPFROM SINHVIEN;

Page 54: NGOÂN NGÖÕ SQL

54

3. Ngoân ngöõ truy vaán döõ lieäu11.Truy vaán töø nhieàu baûngKhi 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>

Page 55: NGOÂN NGÖÕ SQL

55

3. Ngoân ngöõ truy vaán döõ lieäu11.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]

Page 56: NGOÂN NGÖÕ SQL

56

3. Ngoân ngöõ truy vaán döõ lieäu11.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, TENLOPFROM SINHVIEN, DSLOPWHERE SINHVIEN.MALOP = DSLOP.MALOP

AND TEN=‘NAM’;

Page 57: NGOÂN NGÖÕ SQL

57

3. Ngoân ngöõ truy vaán döõ lieäu11.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, TENLOPFROM SINHVIEN S, DSLOP L, DSKHOA KWHERE S.MALOP = L.MALOP

AND L.MAKHOA = K.MAKHOAAND TENKHOA=‘Cong nghe thong tin’;

Page 58: NGOÂN NGÖÕ SQL

58

3. Ngoân ngöõ truy vaán döõ lieäu12.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

Page 59: NGOÂN NGÖÕ SQL

59

3. Ngoân ngöõ truy vaán döõ lieäu12.Truy vaán conDaï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>)

Page 60: NGOÂN NGÖÕ SQL

60

3. Ngoân ngöõ truy vaán döõ lieäu12.Truy vaán conVí duï: Trích ra DS nhöõng SV coù ñieåm

moân THVP cao nhaát

SELECT S.MSSV,HOLOT,TEN,MAMH,DIEMFROM SINHVIEN S, KETQUA KWHERE S.MSSV = K.MSSV

AND MAMH=‘THVP’AND DIEM = ( SELECT MAX(DIEM)

FROM KETQUAWHERE MAMH=‘THVP’)

Page 61: NGOÂN NGÖÕ SQL

61

From --> Where --> Group By --> Having --> Select --> Order