You are on page 1of 115

CHNG 5

NGN NG SQL

KNOWLEDGE FOR SHARE

Ti liu tham kho


[1] Phc, Nguyn ng T.
Gio trnh c s d liu.
i hc Quc gia Tp.HCM.
[2] ng Th Bch Thy.
Gio trnh c s d liu.
i hc Quc gia Tp.HCM.
[3] Trn Ngc Bo.
Slide bi ging CSDL
i hc S Phm TP.HCM
[4] L Minh Trit.
Slide bi ging CSDL
i hc S Phm TP.HCM
3/22/2013

KNOWLEDGE FOR SHARE

Ni dung
1. Gii thiu v SQL
2. Kiu d liu
3. nh ngha d liu
4. Truy vn d liu
5. Cp nht d liu
6. Mt s vn khc
3/22/2013

KNOWLEDGE FOR SHARE

1. Gii thiu
Ngn ng SQH
Cch thc truy vn d liu
Kh khn cho ngi s dng

SQL (Structured Query Language)


Ngn ng cp cao
Ngi s dng ch cn a ra ni dung cn truy
vn
c pht trin bi IBM (1970s)
c gi l SEQUEL
c ANSI cng nhn v pht trin thnh chun
SQL-86
SQL-92
SQL-99
3/22/2013

KNOWLEDGE FOR SHARE

1. Gii thiu
SQL gm
nh ngha d liu (DDL)
Thao tc d liu (DML)
nh ngha khung nhn
Rng buc ton vn
Phn quyn v bo mt
iu khin giao tc

SQL s dng thut ng


Bng ~ quan h
Ct ~ thuc tnh
Dng ~ b
3/22/2013

L thuyt
Chun SQL-92,
SQL Server 2000

Minh ha
SQL Server 2000

KNOWLEDGE FOR SHARE

1. Gii thiu v SQL

Ngn ng nh ngha d liu


DDL - Data Definition Language
Cc lnh dng nh ngha CSDL: to lp (create),
thay i (alter) v hy b (drop) cc i tng d liu,
thit lp cc rng buc.

Ngn ng thao tc d liu


DML - Data Manipulation Language
Cc lnh dng bo tr v truy vn CSDL: thm
(insert), sa (update), xa (delete) d liu ca bng,
truy vn (select).

Ngn ng iu khin d liu


DCL - Data Control Language
Cc lnh dng iu khin CSDL: qun tr cc quyn
(grant, revoke).

3/22/2013

KNOWLEDGE FOR SHARE

1. Gii thiu v SQL

3/22/2013

KNOWLEDGE FOR SHARE

2. Kiu d liu
Kiu d liu trong SQL Server

3/22/2013

KNOWLEDGE FOR SHARE

2. Kiu d liu
Kiu d liu trong SQL Server

3/22/2013

KNOWLEDGE FOR SHARE

2. Kiu d liu
Kiu d liu trong SQL Server

3/22/2013

10

KNOWLEDGE FOR SHARE

3. nh ngha d liu
L ngn ng m t

Lc cho mi quan h
Min gi tr tng ng ca tng thuc tnh
Rng buc ton vn
Ch mc trn mi quan h

Cc lnh thng dng

CREATE TABLE (to bng)


ALTER TABLE (sa bng)
DROP TABLE (xa bng)
CREATE DOMAIN (to min gi tr)
CREATE DATABASE

3/22/2013

11

KNOWLEDGE FOR SHARE

3. nh ngha d liu
nh ngha mt bng
Tn bng
Cc thuc tnh

To bng

Tn thuc tnh
Kiu d liu
Cc RBTV trn thuc tnh

C php
CREATE TABLE <Tn_bng>
(
<Tn_ct> <Kiu_d_liu> [<RBTV>],
<Tn_ct> <Kiu_d_liu> [<RBTV>],

[<RBTV>]
)
3/22/2013

12

KNOWLEDGE FOR SHARE

3. nh ngha d liu
CREATE TABLE NHANVIEN
(
MANV

CHAR(9),

HONV

NVARCHAR(10),

TENLOT

NVARCHAR(20),

TENNV

NVARCHAR(10),

NGSINH

DATETIME,

DCHI

NVARCHAR(50),

PHAI

CHAR(3),

LUONG

INT,

MA_NQL

CHAR(9),

PHG

INT

To bng

)
3/22/2013

13

KNOWLEDGE FOR SHARE

3. nh ngha d liu
<RBTV>
NOT NULL
NULL
UNIQUE (kha ch nh)
DEFAULT
PRIMARY KEY
FOREIGN KEY / REFERENCES
CHECK (k rng buc)

To bng

t tn cho RBTV
CONSTRAINT <Ten_RBTV> <RBTV>

3/22/2013

14

KNOWLEDGE FOR SHARE

3. nh ngha d liu
CREATE TABLE NHANVIEN
(
HONV
NVARCHAR(10) NOT NULL,
TENLOT NVARCHAR(20) NOT NULL,
TENNV
NVARCHAR(10) NOT NULL,
MANV
CHAR(9) PRIMARY KEY,
NGSINH DATETIME,
DCHI
NVARCHAR(50),
PHAI
NCHAR(4) CHECK (PHAI IN (NNam, NN)),
LUONG INT DEFAULT (10000),
MA_NQL CHAR(9),
PHG
INT
)

To bng

3/22/2013

15

KNOWLEDGE FOR SHARE

3. nh ngha d liu
CREATE TABLE PHONGBAN
(

To bng

TENPB NVARCHAR(20) UNIQUE,


MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME DEFAULT (GETDATE())
)
CREATE TABLE PHANCONG
(
MANV CHAR(9) FOREIGN KEY (MANV)
REFERENCES NHANVIEN(MANV),
MADA INT REFERENCES DEAN(MADA),
THOIGIAN DECIMAL(3,1),
PRIMARY KEY(MANV,MADA)
)
3/22/2013

16

KNOWLEDGE FOR SHARE

3. nh ngha d liu
CREATE TABLE NHANVIEN
(

To bng

HONV NVARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL,


TENLOT NVARCHAR(20) NOT NULL,
TENNV NVARCHAR(10) NOT NULL,
MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY,
NGSINH

DATETIME,

DCHI NVARCHAR(50),
PHAI NCHAR(3) CONSTRAINT NV_PHAI_CHK
CHECK (PHAI IN (NNam,N N)),
LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000),
MA_NQL CHAR(9),
PHG INT
)
3/22/2013

17

KNOWLEDGE FOR SHARE

3. nh ngha d liu
CREATE TABLE PHANCONG
(

To bng

MANV CHAR(9),
MADA INT,
THOIGIAN DECIMAL(3,1),
CONSTRAINT PC_MANV_MADA_PK
PRIMARY KEY (MANV, MADA),
CONSTRAINT PC_MANV_FK FOREIGN KEY (MANV)
REFERENCES NHANVIEN(MANV),
CONSTRAINT PC_MADA_FK FOREIGN KEY (MADA)
REFERENCES DEAN(MADA)
)

3/22/2013

18

KNOWLEDGE FOR SHARE

3. nh ngha d liu
Thay i cu trc bng

Sa bng

Thm ct
Xa ct
M rng ct

Thay i rng buc ton vn (RBTV)


Thm RBTV
Xa RBTV
3/22/2013

19

KNOWLEDGE FOR SHARE

3. nh ngha d liu
ALTER TABLE <Tn_bng> ADD COLUMN
<Tn_ct> <Kiu_d_liu> [<RBTV>]
ALTER TABLE <Tn_bng> DROP COLUMN <Tn_ct>

ALTER TABLE <Tn_bng> ADD


CONSTRAINT <Ten_RBTV> <RBTV>,
CONSTRAINT <Ten_RBTV> <RBTV>,

Sa bng

ALTER TABLE <Tn_bng> ALTER COLUMN


<Tn_ct> <Kiu_d_liu_mi>

ALTER TABLE <Tn_bng> DROP <Tn_RBTV>


3/22/2013

20

KNOWLEDGE FOR SHARE

3. nh ngha d liu
Sa bng
ALTER TABLE NHANVIEN
ADD NGHENGHIEP CHAR(20)

ALTER TABLE NHANVIEN


DROP COLUMN NGHENGHIEP

ALTER TABLE NHANVIEN


ALTER COLUMN NGHENGHIEP CHAR(50)

3/22/2013

21

KNOWLEDGE FOR SHARE

3. nh ngha d liu
CREATE TABLE PHONGBAN
(
TENPB

VARCHAR(20),

MAPHG

INT NOT NULL,

TRPHG

CHAR(9),

Sa bng

NG_NHANCHUC DATETIME
)
ALTER TABLE PHONGBAN ADD
CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG),
CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG)
REFERENCES NHANVIEN(MANV),
CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE())
FOR (NG_NHANCHUC),
CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB)
3/22/2013

22

KNOWLEDGE FOR SHARE

3. nh ngha d liu
Xa
bng
c dng xa cu trc bng
Tt c d liu ca bng cng b xa

C php
DROP TABLE <Tn_bng>

V d
DROP TABLE NHANVIEN
DROP TABLE PHONGBAN
DROP TABLE PHANCONG
3/22/2013

23

KNOWLEDGE FOR SHARE

3. nh ngha d liu
Xa bng
NHANVIEN
HONV

TENLOT

TENNV

MANV

NGSINH

DCHI

PHAI

LUONG

MA_NQL

PHG

PHONGBAN
TENPHG

3/22/2013

MAPHG

TRPHG

NG_NHANCHUC

24

KNOWLEDGE FOR SHARE

3. nh ngha d liu
To ra mt kiu d liu mi k tha
nhng kiu d liu c sn
C php
CREATE DOMAIN <Tn_kdl_mi> AS <Kiu_d_liu>

V d

To min GT
CREATE DOMAIN kieu_MANV AS CHAR(9)

3/22/2013

25

KNOWLEDGE FOR SHARE

4. Truy vn d liu
1. Truy vn c bn
2. Tp hp, so snh tp hp
3. Truy vn lng
4. Hm kt hp, gom nhm
5. Mt s kiu truy vn khc

3/22/2013

26

KNOWLEDGE FOR SHARE

4. Truy vn d liu
L ngn ng rt trch d liu tha mt s
iu kin no
Da trn
Php ton SQH

Mt s b sung

Lnh c bn rt trch thng tin: SELECT


Cho php 1 bng c nhiu dng trng nhau
Bng l bag (a b) quan h l set (tp hp)

3/22/2013

27

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>

<danh sch cc ct>


Tn cc ct cn c hin th trong kt qu truy vn
<danh sch cc bng>
Tn cc bng lin quan n cu truy vn
<iu kin>
Biu thc boolean xc nh dng no s c rt
trch
Ni cc biu thc: AND, OR, v NOT
Php ton: , , , , (<>) , , LIKE v BETWEEN
3/22/2013

28

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
SELECT <danh sch cc ct>

FROM <danh sch cc bng>

WHERE <iu kin>


SELECT L
FROM R,S

L (C (RxS))

WHERE C
3/22/2013

29

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
Ly tt c cc ct ca
quan h kt qu

SELECT *
FROM NHANVIEN
WHERE PHG=5
MANV

HONV

TENLOT

TENNV

NGSINH

DCHI

PHAI

LUONG

MA_NQL

PHG

333445555

Nguyen

Thanh

Tung

12/08/1955

638 NVC Q5

Nam

40000

888665555

987987987

Nguyen

Manh

Hung

09/15/1962

Ba Ria VT

Nam

38000

333445555

3/22/2013

PHG=5

(NHANVIEN)
30

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
SELECT MANV, HONV, TENLOT, TENNV
FROM NHANVIEN
WHERE PHG=5 AND PHAI=Nam

MANV

HONV

TENLOT

TENNV

333445555

Nguyen

Thanh

Tung

987987987

Nguyen

Manh

Hung

MANV,HONV,TENLOT,TENNV(

3/22/2013

PHG=5 PHAI=Nam

(NHANVIEN))
31

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
Tn b danh

SELECT MANV, HONV AS [H], TENLOT AS [TN LT], TENNV AS [TN]


FROM NHANVIEN
WHERE PHG=5 AND PHAI=Nam

MANV,H,TN LT,TN

3/22/2013

MANV

TN LT

TN

333445555

Nguyen

Thanh

Tung

987987987

Nguyen

Manh

Hung

MANV,HONV,TENLOT,TENNV(

PHG=5PHAI=Nam(NHANVIEN)))
32

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
M rng

SELECT MANV, HONV + + TENLOT + + TENNV AS [H TN]


FROM NHANVIEN
WHERE PHG=5 AND PHAI=Nam

3/22/2013

MANV

H TN

333445555

Nguyen Thanh Tung

987987987

Nguyen Manh Hung

33

KNOWLEDGE FOR SHARE

4. Truy vn d liu
M rng

Truy vn c bn
SELECT MANV, LUONG*1.1 AS [LUONG10%]
FROM NHANVIEN
WHERE PHG=5 AND PHAI=Nam

MANV

LUONG10%

333445555

33000

987987987

27500

MANV,LUONG10%(

3/22/2013

MANV,LUONG*1.1(

PHG=5PHAI=Nam(NHANVIEN)))

34

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
Loi b cc dng trng nhau

SELECT DISTINCT LUONG


FROM NHANVIEN
WHERE PHG=5 AND PHAI=Nam

LUONG
30000

- Tn chi ph

25000

- Ngi dng mun thy

25000
38000
38000

3/22/2013

35

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
Cho bit MANV v TENNV lm vic
phng Nghien cuu
NHANVIEN
PHG=MAPHG PHONGBAN
KQ MANV, TENNV (TENPHG=Nghien cuu(R1))
R1

SELECT MANV, TENNV

Biu thc lun l

FROM NHANVIEN, PHONGBAN


WHERE TENPHG=Nghien cuu AND PHG=MAPHG

TRUE
3/22/2013

TRUE
36

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
u tin

SELECT MANV, TENNV


FROM NHANVIEN, PHONGBAN
WHERE (TENPHG=Nghien cuu OR TENPHG=Quan ly) AND PHG=MAPHG

3/22/2013

37

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
BETWEEN
SELECT MANV, TENNV

SELECT MANV, TENNV

FROM NHANVIEN

FROM NHANVIEN

WHERE LUONG>=20000 AND

WHERE LUONG BETWEEN 20000 AND 30000

LUONG<=30000
NOT BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG NOT BETWEEN 20000 AND 30000

3/22/2013

38

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
LIKE

SELECT MANV, TENNV

SELECT MANV, TENNV

FROM NHANVIEN

FROM NHANVIEN

WHERE DCHI LIKE Nguyen _ _ _ _

WHERE HONV NOT NOT LIKE Nguyen

K t bt k

SELECT MANV, TENNV


FROM NHANVIEN
WHERE DCHI LIKE Nguyen %
Chui bt k

3/22/2013

39

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
ESCAPE

SELECT MANV, TENNV


FROM NHANVIEN
WHERE DCHI LIKE % Nguyens_% ESCAPE s

Nguyen_

3/22/2013

40

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
SELECT MANV, TENNV

Ngy gi

FROM NHANVIEN
WHERE NGSINH = 1955-12-08

SELECT MANV, TENNV


FROM NHANVIEN
WHERE NGSINH BETWEEN 1955-12-08 AND 1966-07-19
1955-12-08

YYYY-MM-DD

17:30:00

12/08/1955

MM/DD/YYYY

05:30 PM

HH:MI:SS

December 8, 1955
1955-12-08 17:30:00
3/22/2013

41

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
Hm CONVERT
Convert(kiu_d_liu, biu_thc [,kiu_chuyn_i])
Hm c chc nng chuyn i gi tr ca biu thc
sang kiu_d_liu.
Tham s kiu_chuyn_i l mt gi tr s thng
c s dng khi chuyn i gi tr kiu ngy sang
kiu chui nhm quy nh khun dng d liu c
hin th.

3/22/2013

42

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
HOADON(SoHD, MaKH, ngaylap, trigia)
V d: nh dng ngy theo dng dd/mm/yyyy
SELECT SoHD, MaKH, CONVERT(varchar(10),ngaylap,103) as ngaylap
FROM HOADON

3/22/2013

43

KNOWLEDGE FOR SHARE

4. Truy vn d liu

3/22/2013

44

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
S dng trong trng hp
Khng bit (value unknown)
Khng th p dng (value inapplicable)
Khng tn ti (value withheld)

NULL

Nhng biu thc tnh ton c lin quan n gi tr


NULL s cho ra kt qu l NULL
x c gi tr l NULL
x + 3 cho ra kt qu l NULL
x + 3 l mt biu thc khng hp l trong SQL

Nhng biu thc so snh c lin quan n gi tr


NULL s cho ra kt qu l UNKNOWN
x = 3 cho ra kt qu l UNKNOWN
x = 3 l mt so snh khng hp l trong SQL
3/22/2013

45

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
SELECT MANV, TENNV
FROM NHANVIEN

NULL

WHERE MA_NQL IS NULL

SELECT MANV, TENNV


FROM NHANVIEN
WHERE MA_NQL IS NOT NULL

3/22/2013

46

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
Khng s dng
mnh WHERE
(Tch cho RxS)
MANV

FROM NHANVIEN, PHONGBAN


WHERE TRUE

MAPHG

333445555

333445555

333445555

987987987

987987987

987987987

3/22/2013

SELECT MANV, MAPHG

47

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn
Tn b danh
SELECT TENPHG, DIADIEM

SELECT TENPHG, DIADIEM

FROM PHONGBAN, DDIEM_PHG

FROM PHONGBAN PB, DDIEM_PHG DD

WHERE MAPHG=MAPHG

WHERE PB.MAPHG=DD.MAPHG

SELECT TENNV, NGSINH, TENTN, NGSINH


FROM NHANVIEN, THANNHAN
WHERE MANV=MA_NVIEN

SELECT TENNV, NV.NGSINH, TENTN, TN.NGSINH


FROM NHANVIEN NV, THANNHAN TN
WHERE MANV=MA_NVIEN

3/22/2013

48

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn Bi tp
1. Vi nhng n Ha Noi, cho bit m n, m
phng ban ch tr n, h tn trng phng cng
vi ngy sinh v a ch ca ngi y
2. Tm h tn ca nhn vin phng s 5 c tham gia vo
n Sn phm X vi s gi lm vic trn 10 gi
3. Tm h tn ca tng nhn vin v ngi ph trch
trc tip nhn vin
4. Tm h tn ca nhng nhn vin c Nguyen Thanh
Tung ph trch trc tip
3/22/2013

49

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn Sp xp
Dng hin th kt qu cu truy vn
theo mt th t no
ORDER BY
C php
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>
ORDER BY <danh sch cc ct>

ASC: tng (mc nh)


DESC: gim
3/22/2013

50

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn Sp xp
SELECT MA_NVIEN, SODA

ORDER BY

FROM PHANCONG
ORDER BY MA_NVIEN DESC, SODA
MA_NVIEN

3/22/2013

SODA

999887777

10

999887777

30

987987987

10

987987987

30

987654321

10

987654321

20

987654321

30

51

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn c bn Tng kt

DISTINCT
BETWEEN
LIKE
ESCAPE
NGY GI
CONVERT
NULL
TCH CHO
T TN
ORDER BY

3/22/2013

52

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php ton tp hp trong SQL


SQL c ci t cc php ton
Hi (UNION)
Giao (INTERSECT)
Tr (EXCEPT)

Kt qu tr v l tp hp
Loi b cc b trng nhau
gi li cc b trng nhau
UNION ALL
INTERSECT ALL
EXCEPT ALL
3/22/2013

53

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php ton tp hp trong SQL


SELECT <ds ct> FROM <ds bng> WHERE <iu kin>
UNION [ALL]
SELECT <ds ct> FROM <ds bng> WHERE <iu kin>
SELECT <ds ct> FROM <ds bng> WHERE <iu kin>
INTERSECT [ALL]
SELECT <ds ct> FROM <ds bng> WHERE <iu kin>
SELECT <ds ct> FROM <ds bng> WHERE <iu kin>
EXCEPT [ALL]
SELECT <ds ct> FROM <ds bng> WHERE <iu kin>
3/22/2013

54

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php ton tp hp trong SQL


Cho bit cc m n c
Nhn vin vi h l Nguyen tham gia n
hoc
Trng phng ch tr n vi h l Nguyen
SELECT MADA
FROM NHANVIEN, PHANCONG

Php hp

WHERE MANV=MA_NVIEN AND HONV=Nguyen


UNION
SELECT MADA
FROM NHANVIEN, PHONGBAN, DEAN
WHERE MANV=TRPHG AND MAPHG=PHONG AND HONV=Nguyen
3/22/2013

55

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php ton tp hp trong SQL


Tm nhn vin c ngi thn cng
tn v cng gii tnh
Php giao
SELECT TENNV, PHAI, MANV FROM NHANVIEN
INTERSECT
SELECT TENTN, PHAI, MA_NVIEN FROM THANNHAN
SELECT NV.*
FROM NHANVIEN NV, THANNHAN TN
WHERE NV.MANV=TN.MA_NVIEN
AND NV.TENNV=TN.TENTN AND NV.PHAI=TN.PHAI
3/22/2013

56

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php ton tp hp trong SQL


Tm nhng nhn vin khng c thn
nhn no
Php tr
SELECT MANV FROM NHANVIEN
EXCEPT
SELECT MA_NVIEN AS MANV FROM THANNHAN
SELECT MANV
FROM NHANVIEN
WHERE MANV NOT IN
(SELECT MANV FROM THANNHAN)
3/22/2013

57

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng
Tm nhn vin c ngi thn
SELECT DISTINCT NV.MANV,HONV + + TENNV [H TN]
FROM NHANVIEN NV, THANNHAN TN
WHERE NV.MANV=TN.MANV
SELECT MANV
FROM NHANVIEN
WHERE MANV IN
(SELECT MANV FROM THANNHAN)

3/22/2013

58

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng
Cu truy vn cha
(Outer query)

SELECT <danh sch cc ct>


FROM <danh sch cc bng>
WHERE <so snh tp hp> (
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>)

3/22/2013

Cu truy vn con
(Subquery)

59

KNOWLEDGE FOR SHARE

4. Truy vn d liu
Cc lnh SELECT c th lng nhau nhiu mc
Cc cu truy vn con trong cng mt mnh WHERE
c kt hp bng php ni logic
Cu truy vn con thng tr v mt tp cc gi tr
Mnh WHERE ca cu truy vn cha
<biu thc> <so snh tp hp> <truy vn con>
So snh tp hp thng i cng vi mt s ton t
IN, NOT IN
ALL
ANY hoc SOME
Kim tra s tn ti
EXISTS
NOT EXISTS

Truy vn lng

3/22/2013

60

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng
SELECT *
FROM NHANVIEN
WHERE MLUONG >= ALL
(SELECT MLUONG FROM NHANVIEN)
SELECT *
FROM NHANVIEN
WHERE MLUONG >= ANY/SOME
(SELECT MLUONG FROM NHANVIEN)
3/22/2013

61

KNOWLEDGE FOR SHARE

4. Truy vn d liu
1. Lng phn cp

Truy vn lng

Mnh WHERE ca truy vn con khng tham chiu


n thuc tnh ca cc quan h trong mnh FROM
truy vn cha

Khi thc hin, cu truy vn con s c thc hin


trc

2. Lng tng quan

Mnh WHERE ca truy vn con tham chiu t nht


mt thuc tnh ca cc quan h trong mnh FROM
truy vn cha

Khi thc hin, cu truy vn con s c thc hin


nhiu ln, mi ln tng ng vi mt b ca truy vn
cha

3/22/2013

62

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Phn cp


SELECT MADA
FROM NHANVIEN NV, PHANCONG PC
WHERE NV.MANV=PC.MA_NVIEN AND NV.HONV=Nguyen
UNION
SELECT MADA
FROM NHANVIEN NV, PHONGBAN PB, DEAN DA
WHERE NV.MANV=PB.TRPHG AND PB.MAPHG=DA.PHONG
AND NV.HONV=Nguyen

Hy tm
n m nhn vin tham gia n c h Nguyen
HOC
n c trng phng ch tr n c h Nguyen
3/22/2013

63

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Phn cp


SELECT DISTINCT TENDA
FROM DEAN
WHERE MADA IN (
SELECT MADA
FROM NHANVIEN, PHANCONG
WHERE MANV=MA_NVIEN AND HONV=Nguyen )
OR

MADA IN (
SELECT MADA
FROM NHANVIEN, PHONGBAN PB, DEAN DA
WHERE MANV=TRPHG AND PB.MAPHG=DA.PHONG
AND HONV=Nguyen )

3/22/2013

64

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Phn cp


SELECT *

Hy tm
nhng nhn vin
khng c thn nhn

FROM NHANVIEN
WHERE MANV NOT IN (
SELECT MA_NVIEN
FROM THANNHAN )
SELECT *
FROM NHANVIEN
WHERE MANV <> ALL (
SELECT MA_NVIEN
FROM THANNHAN )

3/22/2013

65

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Phn cp


1. Tm nhng nhn vin c lng ln hn
lng ca t nht mt nhn vin
phng 4
2. Tm nhng nhn vin c lng ln hn
lng ca tt c nhn vin phng 4
3. Tm nhng trng phng c ti thiu
mt thn nhn
3/22/2013

66

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Phn cp


SELECT *

SELECT NV1.*

FROM NHANVIEN

FROM NHANVIEN NV1, NHANVIEN NV2

WHERE LUONG > ANY (

WHERE NV1.LUONG > NV2.LUONG AND


NV2.PHG=4

SELECT LUONG
FROM NHANVIEN
WHERE PHG=4 )

SELECT *
FROM NHANVIEN
WHERE LUONG > ALL (

SELECT *

SELECT LUONG

FROM NHANVIEN

FROM NHANVIEN

WHERE MANV IN (SELECT MA_NVIEN FROM THANNHAN)

WHERE PHG=4 )

AND MANV IN (SELECT TRPHG FROM PHONGBAN)


3/22/2013

67

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Tng quan


SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=Nghien cuu AND PHONG=MAPHG

SELECT MANV, TENNV


FROM NHANVIEN

Tm nhn vin
Phng nghin cu

WHERE EXISTS (
SELECT *
FROM PHONGBAN
WHERE TENPHG=Nghien cuu AND PHONG=MAPHG )

3/22/2013

68

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Tng quan


Tm nhn vin
c thn nhn
cng tn, cng phi

SELECT *
FROM NHANVIEN NV
WHERE EXISTS (
SELECT *

FROM THANNHAN TN
WHERE NV.MANV=TN.MA_NVIEN
AND NV.TENNV=TN.TENTN
AND NV.PHAI=TN.PHAI )

3/22/2013

69

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Tng quan


1. Tm nhng nhn vin khng c thn
nhn no
2. Tm nhng nhn vin c lng ln hn
lng ca t nht mt nhn vin phng
4
3. Tm nhng trng phng c ti thiu
mt thn nhn
3/22/2013

70

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Truy vn lng Tng quan


IN

<tn ct> IN <cu truy vn con>


Thuc tnh mnh SELECT ca truy vn con
phi c cng kiu d liu vi thuc tnh mnh
WHERE ca truy vn cha

EXISTS

Khng cn c thuc tnh, hng s hay biu thc


no khc ng trc
Khng nht thit lit k tn thuc tnh mnh
SELECT ca truy vn con
Nhng cu truy vn c = ANY hay IN u c th
chuyn thnh cu truy vn c EXISTS

3/22/2013

71

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php chia trong SQL


R

bi

RS

ai

RS l tp cc gi tr ai trong R sao cho


khng c gi tr bi no trong S lm cho b
(ai, bi) khng tn ti trong R
3/22/2013

72

KNOWLEDGE FOR SHARE

4. Truy vn d liu
SELECT R1.A, R1.B, R1.C
FROM R R1

Php chia trong SQL

WHERE NOT EXISTS (


SELECT *
FROM S
WHERE NOT EXISTS (
SELECT *

S dng
NOT EXISTS
biu din

FROM R R2
WHERE R2.D=S.D AND R2.E=S.E
AND R1.A=R2.A AND R1.B=R2.B AND R1.C=R2.C
)
)
3/22/2013

73

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php chia trong SQL


S dng truy vn lng
biu din php chia
SELECT R.A,R.B,R.C
FROM R
WHERE R.A+R.B+R.C NOT IN
(
SELECT Q2.A+Q2.B+Q2.C
FROM (SELECT R.A,R.B,R.C,S.* FROM R,S) Q2
WHERE Q2.A+Q2.B+Q2.C+Q2.D+Q2.E NOT IN
(SELECT R.A+R.B+R.C+R.D+R.E FROM R)
) -- Q3 L A,B,C KHNG THAM GIA Y VO S
3/22/2013

74

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php chia trong SQL


S dng hm count

SELECT MANV,COUNT(MADA)
FROM PHANCONG
GROUP BY MANV
HAVING COUNT(MADA)=(SELECT COUNT(MADA) FROM DEAN)

3/22/2013

75

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php chia trong SQL


Tm tn cc nhn vin c phn cng lm tt
c cc n
Tm tn cc nhn vin m khng c n no l
khng c phn cng lm
Tp b chia: PHANCONG(MA_NVIEN, MADA)
Tp chia: DEAN(MADA)
Tp kt qu: KQ(MA_NVIEN)
Kt KQ vi NHANVIEN ly ra TENNV
3/22/2013

76

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Php chia trong SQL


SELECT NV.TENNV
FROM NHANVIEN NV, PHANCONG PC1
WHERE NV.MANV=PC1.MANV
AND NOT EXISTS (
SELECT *
FROM DEAN DA
WHERE NOT EXISTS (
SELECT *
FROM PHANCONG PC2
WHERE PC2.MADA=DA.MADA
AND PC1.MANV=PC2.MANV ))
3/22/2013

77

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Hm kt hp

COUNT
1. COUNT(*) m s dng
2. COUNT(<tn thuc tnh>) m s gi tr khc NULL ca
thuc tnh
3. COUNT(DISTINCT <tn thuc tnh>) m s gi tr khc
nhau v khc NULL ca thuc tnh

MIN
MAX
SUM
AVG

Cc hm kt hp c t mnh SELECT
3/22/2013

78

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Hm kt hp
SELECT SUM(LUONG), MAX(LUONG), MIN(LUONG), AVG(LUONG)
FROM NHANVIEN

SELECT COUNT(*) AS SL_NV


FROM NHANVIEN, PHONGBAN
WHERE PHG=MAPHG AND TENPHG=Nghien cuu

3/22/2013

79

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Gom nhm
C php
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>
GROUP BY <danh sch cc ct gom nhm>

Sau khi gom nhm: mi nhm cc b


s c cng gi tr ti cc thuc tnh
gom nhm
3/22/2013

80

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Gom nhm
SELECT PHG, COUNT(*) AS SL_NV
FROM NHANVIEN
GROUP BY PHG

SELECT TENPHG, COUNT(*) AS SL_NV


FROM NHANVIEN, PHONGBAN
WHERE PHG=MAPHG
GROUP BY TENPHG

3/22/2013

SELECT
ct no
GROUP BY
ct
(ngoi tr hm kt hp)
81

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Gom nhm
1. Vi mi nhn vin
cho bit m s, h
tn, s lng n
v tng thi gian
m h tham gia
2. Cho bit nhng
nhn vin tham gia
t 2 n tr ln

3/22/2013

MA_NVIEN

SODA

THOIGIAN

123456789

32.5

123456789

7.5

333445555

10.0

333445555

10.0

333445555

10

10.0

888665555

20

20.0

987987987

10

35.0

987987987

30

5.0

987654321

30

20.0

987654321

20

15.0

453453453

20.0

453453453

20.0

82

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Gom nhm
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <iu kin>
GROUP BY <danh sch cc ct gom nhm>
HAVING <iu kin trn nhm>

SELECT MANV
FROM PHANCONG
GROUP BY MANV
HAVING COUNT(*) >= 2
3/22/2013

83

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Gom nhm
Cho bit nhng phng ban (TENPHG)
c lng trung bnh ca cc nhn vin ln ln 20000
SELECT PHONG, AVG(LUONG) AS LUONG_TB
FROM NHANVIEN
GROUP BY PHONG

SELECT TENPHG, AVG(LUONG) AS LUONG_TB

HAVING AVG(LUONG) > 20000

FROM NHANVIEN, PHONGBAN


WHERE PHG=MAPHG
GROUP BY TENPHG
HAVING AVG(LUONG) > 20000

3/22/2013

84

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Gom nhm
Mnh GROUP BY
Cc thuc tnh trong mnh SELECT (tr nhng
thuc tnh trong cc hm kt hp) phi xut hin
trong mnh GROUP BY
Mnh HAVING
S dng cc hm kt hp trong mnh SELECT
kim tra mt s iu kin no
Ch kim tra iu kin trn nhm, khng l iu
kin lc trn tng b
Sau khi gom nhm iu kin trn nhm mi c
thc hin
3/22/2013

85

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Gom nhm Th t cu lnh

Chn ra nhng dng tha iu kin trong


mnh WHERE
Nhng dng ny s c gom thnh nhiu
nhm tng ng vi mnh GROUP BY
p dng cc hm kt hp cho mi nhm
B qua nhng nhm khng tha iu kin
trong mnh HAVING
Rt trch cc gi tr ca cc ct v hm kt
hp trong mnh SELECT

3/22/2013

86

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Mt s dng truy vn khc

3/22/2013

87

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Mt s dng truy vn khc


Kt qu tr v ca mt cu truy vn
ph l mt bng
Bng trung gian trong qu trnh truy vn
Khng c lu tr tht s

C php
SELECT <danh sch cc ct>
FROM R1, R2, (<truy vn con>) AS tn_bng
WHERE <iu kin>
3/22/2013

88

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Mt s dng truy vn khc


Kt bng
SELECT <danh sch cc ct>
FROM R1 [INNER] JOIN R2 ON <biu thc>
WHERE <iu kin>

Kt ngoi

FULL JOIN

SELECT <danh sch cc ct>


FROM R1 LEFT|RIGHT [OUTER] JOIN R2 ON <biu thc>
FULL
WHERE <iu kin>
3/22/2013

89

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Cu trc CASE
Cho php kim tra iu kin v xut
thng tin theo tng trng hp
C php
CASE <tn ct>
WHEN <gi tr> THEN <biu thc>
WHEN <gi tr> THEN <biu thc>

[ELSE <biu thc>]


END
3/22/2013

90

KNOWLEDGE FOR SHARE

4. Truy vn d liu
SELECT HONV, TENNV
FROM NHANVIEN
WHERE YEAR(GETDATE()) YEAR(NGSINH) >= (CASE PHAI
WHEN 'Nam' THEN 60
WHEN 'Nu' THEN 55
END )
SELECT HONV, TENNV,
( CASE PHAI

CASE

WHEN 'Nam' THEN YEAR(NGSINH) + 60


WHEN 'Nu THEN YEAR(NGSINH) + 55
END ) AS NAMVEHUU
FROM NHANVIEN
3/22/2013

91

KNOWLEDGE FOR SHARE

4. Truy vn d liu

QUY TRNH X L CU TRUY VN

3/22/2013

92

KNOWLEDGE FOR SHARE

4. Truy vn d liu

3/22/2013

93

KNOWLEDGE FOR SHARE

4. Truy vn d liu

Cross-Tab
SELECT Year,
SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
FROM Pivot
GROUP BY Year
3/22/2013

94

KNOWLEDGE FOR SHARE

5. Cp nht d liu

THM D LIU VO BNG


S dng thm 1 hay nhiu dng vo bng
C php:
INSERT INTO <tn bng>(<danh sch cc thuc tnh>)
VALUES (<danh sch cc gi tr>)

V d:

3/22/2013

95

KNOWLEDGE FOR SHARE

5. Cp nht d liu

THM D LIU VO BNG


INSERT INTO NHANVIEN(HONV, TENLOT, TENNV, MANV)
VALUES (NL, NVn, NTuyn, 635635635)

INSERT INTO NHANVIEN(HONV, TENLOT, TENNV, MANV, DCHI)


VALUES (Le, Van, Tuyen, 635635635, NULL)

INSERT INTO NHANVIEN


VALUES (Le, Van, Tuyen, 635635635, 12/30/1952, 98 HV, Nam, 37000, 4)

3/22/2013

96

KNOWLEDGE FOR SHARE

5. Cp nht d liu

THM D LIU VO BNG


Th t cc gi tr phi trng vi th t cc
ct
C th thm gi tr NULL nhng thuc tnh
khng l kha chnh v NOT NULL
Cu lnh INSERT s gp li nu vi phm
RBTV
Kha chnh
Tham chiu
NOT NULL - cc thuc tnh c rng buc NOT
NULL bt buc phi c gi tr
3/22/2013

97

KNOWLEDGE FOR SHARE

5. Cp nht d liu

THM NHIU DNG DL VO BNG


INSERT INTO <tn bng>(<danh sch cc thuc tnh>)
<cu truy vn con>
CREATE TABLE THONGKE_PB
(
TENPHG VARCHAR(20),
SL_NV INT,
LUONG_TC INT
)
INSERT INTO THONGKE_PB(TENPHG, SL_NV, LUONG_TC)
SELECT TENPHG, COUNT(MANV), SUM(LUONG)
FROM NHANVIEN, PHONGBAN
WHERE PHG=MAPHG
GROUP BY TENPHG
3/22/2013

98

KNOWLEDGE FOR SHARE

5. Cp nht d liu

XA D LIU TRONG BNG


DELETE FROM <tn bng>
[WHERE <iu kin>]
DELETE FROM NHANVIEN
DELETE FROM NHANVIEN
DELETE FROM NHANVIEN

WHERE MANV=345345345

WHERE HONV=Tran

3/22/2013

99

KNOWLEDGE FOR SHARE

5. Cp nht d liu

XA D LIU TRONG BNG

Xa nhn vin
phng nghin cu
DELETE FROM NHANVIEN
WHERE PHG IN (
SELECT MAPHG
FROM PHONGBAN
WHERE TENPHG=Nghien cuu)

3/22/2013

100

KNOWLEDGE FOR SHARE

5. Cp nht d liu

XA D LIU TRONG BNG


S lng s dng b xa ph thuc vo iu kin
mnh WHERE
Nu khng ch nh iu kin mnh WHERE, tt
c cc dng trong bng s b xa
Lnh DELETE c th gy ra vi phm RB tham chiu
Khng cho xa
Xa lun nhng dng c gi tr ang tham chiu
n
CASCADE
t NULL cho nhng gi tr tham chiu
3/22/2013

101

KNOWLEDGE FOR SHARE

5. Cp nht d liu

XA D LIU TRONG BNG


MANV

HONV

TENLOT

TENNV

NGSINH

DCHI

PHAI

LUONG

MA_NQL

PHG

333445555

Nguyen

Thanh

Tung

12/08/1955

638 NVC Q5

Nam

40000

888665555

987987987

Nguyen

Manh

Hung

09/15/1962

Ba Ria VT

Nam

38000

333445555

453453453

Tran

Thanh

Tam

07/31/1972

543 MTL Q1

Nu

25000

333445555

999887777

Bui

Ngoc

Hang

07/19/1968

33 NTH Q1

Nu

38000

987654321

987654321

Le

Quynh

Nhu

07620/1951

219 TD Q3

Nu

43000

888665555

987987987

Tran

Hong

Quang

04/08/1969

980 LHP Q5

Nam

25000

987654321

888665555

Pham

Van

Vinh

11/10/1945

450 TV HN

Nam

55000

NULL

MA_NVIEN

SODA

333445555

10

10.0

888665555

20

20.0

987987987

10

35.0

987987987

30

5.0

987654321

30

20.0

453453453

20.0

3/22/2013

THOIGIAN

102

KNOWLEDGE FOR SHARE

5. Cp nht d liu

CP NHT D LIU TRONG BNG


UPDATE <tn bng>

UPDATE NHANVIEN

SET <tn thuc tnh>=<gi tr mi>,

SET NGSINH=08/12/1965

<tn thuc tnh>=<gi tr mi>,

[WHERE <iu kin>]

WHERE MANV=333445555
UPDATE NHANVIEN
SET LUONG=LUONG*1.1

Vi n c m s 10, hy thay i
ni thc hin n thnh Vung Tau v
phng ban ph trch l phng 5
3/22/2013

103

KNOWLEDGE FOR SHARE

5. Cp nht d liu

CP NHT D LIU TRONG BNG


Nhng dng tha iu kin ti mnh WHERE
s c cp nht gi tr mi
Nu khng ch nh iu kin mnh WHERE,
tt c cc dng trong bng s b cp nht
Lnh UPDATE c th gy ra vi phm RB tham
chiu
Khng cho sa
Sa lun nhng dng c gi tr ang tham
chiu n
CASCADE
3/22/2013

104

KNOWLEDGE FOR SHARE

6. Mt s vn khc

KHUNG NHN - VIEW


Bng l mt quan h c t chc lu
tr vt l trong CSDL
Khung nhn cng l mt quan h
Khng c lu tr vt l (bng o)
Khng cha d liu
c nh ngha t nhng bng khc
C th truy vn hay cp nht thng qua
khung nhn
3/22/2013

105

KNOWLEDGE FOR SHARE

6. Mt s vn khc

KHUNG NHN - VIEW


Ti sao phi s dng khung nhn?
Che du tnh phc tp ca d liu
n gin ha cc cu truy vn
Hin th d liu di dng tin dng nht
An ton d liu

3/22/2013

106

KNOWLEDGE FOR SHARE

6. Mt s vn khc

KHUNG NHN - VIEW


C php
CREATE VIEW <tn khung nhn> AS
<cu truy vn>
DROP VIEW <tn khung nhn>

Bng o ny c
Danh sch thuc tnh trng vi cc thuc tnh
trong mnh SELECT
S dng ph thuc vo iu kin mnh
WHERE
D liu c ly t cc bng mnh FROM
3/22/2013

107

KNOWLEDGE FOR SHARE

6. Mt s vn khc

KHUNG NHN - VIEW


CREATE VIEW NV_P5 AS
SELECT MANV, HONV, TENLOT, TENVN
FROM NHANVIEN
WHERE PHG=5
CREATE VIEW TONGLNG_SLNV_PB AS
SELECT MAPHG, TENPHG, COUNT(*) AS SLNV,
SUM(LUONG) AS TONGLNG
FROM NHANVIEN, PHONGBAN
WHERE PHG=MAPHG
GROUP BY TENPHG, MAPHG
3/22/2013

108

KNOWLEDGE FOR SHARE

6. Mt s vn khc

TRUY VN TRN KHUNG NHN


SELECT TENNV

SELECT HONV, TENVN, TENDA, THOIGIAN

FROM NV_P5

FROM NV_P5, PHANCONG, DEAN

WHERE HONV LIKE Nguyen

WHERE MANV=MA_NVIEN AND SODA=MADA

Tuy khng cha d liu nhng


c th thc hin cc cu truy vn
trn khung nhn
C th vit cu truy vn d liu
t khung nhn v bng
3/22/2013

109

KNOWLEDGE FOR SHARE

6. Mt s vn khc

CP NHT TRN KHUNG NHN


C th dng cc cu lnh INSERT, DELETE
v UPDATE cho cc khung nhn n gin
Khung nhn c xy dng trn 1 bng v c
kha chnh ca bng

Khng th cp nht d liu nu


Khung nhn c dng t kha DISTINCT
Khung nhn c s dng cc hm kt hp
Khung nhn c mnh SELECT m rng
Khung nhn c xy dng t bng c RB trn
ct
Khung nhn c xy dng t nhiu bng

3/22/2013

110

KNOWLEDGE FOR SHARE

6. Mt s vn khc

CP NHT TRN KHUNG NHN


Sa li h cho nhn vin
123456789 phng 5 l Pham

UPDATE NV_P5
SET HONV=Pham
WHERE MANV= 123456789

3/22/2013

111

KNOWLEDGE FOR SHARE

6. Mt s vn khc

INDEX CH MC
Ch mc trn thuc tnh A l mt cu
trc d liu lm cho vic tm kim mu
tin c cha A hiu qu hn
SELECT *
FROM NHANVIEN
WHERE PHG=5 AND PHAI=Nu

3/22/2013

112

KNOWLEDGE FOR SHARE

6. Mt s vn khc
INDEX CH MC
C php
CREATE INDEX <tn ch mc> ON <tn bng>(<tn ct>)
DROP INDEX <tn ch mc>

V d
CREATE INDEX PHG_IND ON NHANVIEN(PHG)
CREATE INDEX PHG_PHAI_IND ON NHANVIEN(PHG, PHAI)
3/22/2013

113

KNOWLEDGE FOR SHARE

6. Mt s vn khc
INDEX CH MC
Nhn xt
Tm kim nhanh trong trng hp so snh
vi hng s v php kt
Lm chm i cc thao tc thm, xa v
sa
Tn chi ph
Lu tr ch mc
Truy xut a nhiu

Chn la ci t ch mc hp l???
3/22/2013

114

HT

You might also like