You are on page 1of 64

P H N

C S II
NGN NG SQL
D L I U

o Gii thiu
o Ngn ng nh ngha d liu
o Ngn ng qun tr d liu
o Ngn ng iu khin d liu
o Ngn ng truy vn d liu
o Bi tp tng hp

GV. Phm Th Hong Nhung


B mn Cng ngh phn mm
i hc Thy li
MC LC

1 Chng 1. GII THIU................................................................................... 4


1.1 Lch s pht trin....................................................................................... 4
1.2 Chun SQL................................................................................................ 4
1.3 c im ca SQL .................................................................................... 4
1.4 Cc loi lnh ca SQL............................................................................... 5
2 Chng 2. CC LNH NH NGHA D LIU (DDL) .............................. 6
2.1 To mt c s d liu................................................................................ 6
2.2 To mt bng............................................................................................. 6
2.2.1 C php .............................................................................................. 6
2.2.2 Tn ca bng...................................................................................... 6
2.2.3 Xc nh cc thuc tnh ..................................................................... 7
2.3 Cc loi d liu ......................................................................................... 7
2.3.1 Cc loi d liu c s dng trong MS Access............................... 7
2.3.2 Cc loi d liu c s dng trong Oracle:..................................... 8
2.3.3 Cc loi d liu s dng trong SQL SERVER................................ 12
2.4 Cc loi rng buc trong bng d liu . .................................................. 12
2.4.1 NOT NULL- Khng rng ................................................................ 12
2.4.2 UNIQUE-Duy nht .......................................................................... 12
2.4.3 PRIMARY KEY- Kho chnh ......................................................... 13
2.4.4 FOREIGN KEY-Kho ngoi ........................................................... 13
2.4.5 CHECK- Rng buc kim tra gi tr................................................ 14
2.4.6 DEFAULT-Mc nh....................................................................... 14
2.5 Sa i cu trc....................................................................................... 15
2.6 Xo i tng.......................................................................................... 17
3 Chng 3. CC LNH QUN TR D LIU ............................................. 17
3.1 Thm hng (INSERT) ............................................................................. 17
3.2 Xa hng (DELETE)............................................................................... 18
3.3 Sa i gi tr ca mt hng (UPDATE) ................................................ 18
4 Chng 4. NGN NG IU KHIN (DCL) ............................................. 19
4.1 Lnh GRANT.......................................................................................... 19
4.2 Lnh REVOKE ....................................................................................... 20
5 Chng 5. TRUY VN D LIU (SELECT) .............................................. 21
5.1 C php ................................................................................................... 21
5.2 V d:....................................................................................................... 21
5.3 a ra cc ct.......................................................................................... 22
5.3.1 a tt c cc ct............................................................................. 22
5.3.2 a mt s cc ct........................................................................... 22
5.3.3 Trnh cc gi tr trng lp (DISTINCT).......................................... 23
5.3.4 a ra cc gi tr ca cc biu thc................................................. 23
5.3.5 S dng b danh ct ......................................................................... 23
5.3.6 Sp xp th t (ORDER BY) .......................................................... 24
5.4 a ra cc hng....................................................................................... 24

PHN II- NGN NG SQL 2


MC LC

5.4.1 S dng cc php so snh ................................................................ 24


5.4.2 S dng cc php logic: AND, OR, NOT ....................................... 25
5.4.3 Cc ton t ca SQL........................................................................ 25
5.5 S dng cc hm ..................................................................................... 27
5.5.1 Hm s hc ...................................................................................... 27
5.5.2 Mt s hm kiu s tham kho khc: .............................................. 27
5.5.3 Cc hm k t .................................................................................. 29
5.5.4 Cc hm ngy................................................................................... 33
5.5.5 Cc hm chuyn i kiu................................................................. 35
5.5.6 Hm nhm........................................................................................ 37
5.5.7 S dng hm nhm .......................................................................... 37
5.5.8 Mnh GROUP BY ...................................................................... 37
5.5.9 Mnh HAVING........................................................................... 38
5.6 Ly thng tin t nhiu bng .................................................................... 39
5.6.1 Ni bng (Equi-Join) ....................................................................... 39
5.6.2 B danh bng .................................................................................... 40
5.6.3 Ni khng bng (Non Equi-Join) .................................................... 40
5.6.4 Ni bng vi chnh n...................................................................... 41
5.6.5 Thc hin kt ni thng qua t kha Join ....................................... 41
5.7 Thc hin cc php ton trn tp hp ..................................................... 43
5.8 Cc cu hi lng nhau ............................................................................. 44
5.8.1 Lnh SELECT bn trong cho kt qu l 1 hng .............................. 44
5.8.2 Lnh SELECT bn trong cho kt qu l nhiu hng ....................... 45
5.8.3 Mnh HAVING trong SELECT lng nhau. ............................... 48
5.8.4 Mnh ORDER BY trong SELECT lng nhau ............................ 49
5.9 Cc lnh lng nhau lin kt..................................................................... 49
6 THC HNH TNG HP ........................................................................... 51
6.1 Hng dn thc hnh .............................................................................. 51
6.2 Bi s 1.................................................................................................... 52
6.3 Bi s 2.................................................................................................... 54
6.4 Bi s 3.................................................................................................... 58

PHN II- NGN NG SQL 3


Chng 1. GII THIU

1 Chng 1. GII THIU


1.1 Lch s pht trin
SQL (Structured Query Language, c l "sequel") l tp lnh truy xut
CSDL quan h. Ngn ng SQL c IBM s dng u tin trong h qun tr
CSDL System R vo gia nhng nm 70, h ngn ng SQL u tin (SEQUEL2)
c IBM cng b vo thng 11 nm 1976. Nm 1979, tp on ORACLE gii
thiu thng phm u tin ca SQL, SQL cng c ci t trong cc h qun tr
CSDL nh DB2 ca IBM v SQL/DS.
Ngy nay, SQL c s dng rng ri v uc xem l ngn ng chun
truy cp CSDL quan h.

1.2 Chun SQL


Nm 1989, vin tiu chun quc gia Hoa k (ANSI) cng nhn SQL l
ngn ng chun truy cp CSDL quan h trong vn bn ANSI SQL89.
Nm 1989, t chc tiu chun quc t (ISO) cng nhn SQL ngn ng
chun truy cp CSDL quan h trong vn bn ISO 9075-1989.
Tt c cc h qun tr CSDL ln trn th gii cho php truy cp bng SQL
v hu ht theo chun ANSI.

1.3 c im ca SQL
- Ngn ng gn vi ngn ng t nhin (ting Anh)
- SQL l ngn ng phi cu trc, tc l trong cc lnh ca SQL ngi s
dng CH CN a ra yu cu h thng CI G ch khng cn ch ra
phi lm TH NO.
- V d: Cho cu trc d liu qun l hc sinh nh sau
HOCSINH(MaHS, TenHS, TB, Xeploai). a ra TenHS, TB ca
cc hc sinh c TB>=8.0.
Pascal SQL
Type Hocsinh=Record - To bng HOCSINH
MaHS: String[5]; TenHS: String[30]; - S dng lnh SELECT
TB: Real; Xeploai: String[30]; Select TenHS, TB
End; From HOCSINH
HS: Array[1..100] Of Hocsinh; Where TB>=5.0;
Begin
.
For i:=1 to n do
If HS[i].TB>=8.0 then
Writeln(HS[i].TenHS, HS[i].DTB);
.
End.

PHN II- NGN NG SQL 4


Chng 1. GII THIU

- Ngn ng SQL c s dng rt rng ri trong cc H qun tr c s d


liu.
- SQL c chia 2 loi: SQL (ngn ng hi) v PL/SQL (ngn ng lp
trnh)

1.4 Cc loi lnh ca SQL


Chia lm cc nhm chnh:
- Cho php truy vn c s d liu a ra cc thng tin cn thit
(SELECT).
- Cc lnh nh ngha d liu (DDL_ Data Definition Language): To v
thay i cu trc cc i tng trong c s d liu (CREATE, ALTER)
- Cc lnh thc hin trn d liu (DML_ Data Manipulation Language):
Cho php thm, sa, xa d liu (INSERT, UPDATE, DELETE).
- Cc lnh iu khin d liu (DCL_Data Control Language): Cho php
gn hoc hu cc quyn truy cp d liu (GRANT, REVOTE)

PHN II- NGN NG SQL 5


Chng 2. CC LNH NH NGHA D LIU (DDL)

2 Chng 2. CC LNH NH NGHA D LIU (DDL)


2.1 To mt c s d liu
C php:
Create Database <Tn CSDL>
V d: To mt c s d liu c tn l QLTV _ Qun l th vin
Create Database QLTV;

2.2 To mt bng
2.2.1 C php
CREATE TABLE <Ten bang> (Tn_thuc_tnh1
Kiu_tt1 [NOT NULL],
Tn_thuc_tnh2 Kiu_tt2 [NOT NULL],

Tn_thuc_tnhn Kiu_ttn [NOT NULL]


[, CONSTRAINT mnh ] )

Trong , mnh CONSTRAINT cho php ta khai bo cc rng buc d


liu(chi tit s c trnh by phn sau).
V d:
To bng DOCGIA, c cc thuc tnh:
CREATE TABLE DOCGIA(
MaDG Text(10) NOT NULL PRIMARY KEY,
TenDG Text(30) NOT NULL,
DiaChi Text(50) NOT NULL,
Tuoi NUMBER)
Bng ny s c nhn mt tn gi v mt cu trc (danh sch tn cc
thuc tnh v mt vi c trng). Khi mi c to, bng cha c d liu, ch l
mt cu trc lgic c th tip nhn cc d liu.

2.2.2 Tn ca bng
Tn ca bng c xc nh ngay sau lnh CREATE TABLE.
Mi HQTCSDL c mt quy tc t tn ring. V d :
- Tn bng phi bt u bng mt ch ci, c di 30 k t (ch ci, ch s,
v du _).

PHN II- NGN NG SQL 6


Chng 2. CC LNH NH NGHA D LIU (DDL)

- Tn bng phi khc tn gi khc ca bng hay ca khung nhn v vi tn


gi dnh ring ca SQL.
- Khng phn bit hoa, thng.

2.2.3 Xc nh cc thuc tnh


Trong lnh to bng ta phi xc nh cu trc ca bng. Cn phi xc nh
mi thuc tnh ca mt nh ngha kt thc bng du , v gm:
- Tn thuc tnh
- Loi d liu v di
- Cc rng buc c lin quan.

2.3 Cc loi d liu


Cc loi d liu c s dng cn ty theo HQTCSDL.

2.3.1 Cc loi d liu c s dng trong MS Access

Kiu d Miu t Kch c


liu
Text S dng k t hoc kt hp gia k Kh nng lu tr ti a
t v s, nh a ch, hoc nhng s (FieldSize)l 255 k t.
khng yu cu tnh ton, nh s in
thoi, m nc, m vng

Memo S dng khi bn cn lu tr mt Kh nng lu tr ti a l 65.536


lng thng tin ln, v d nh trng k t.
thng tin ghi ch v mt cn b.

Number Number: S dng cho nhng d liu Kh nng lu tr c th l 1, 2, 4, 8


cn tnh ton (loi tr tnh tin, s tu thuc bo kiu d liu ta chn
dng Currency Type). (byte, integer, long integer, single,
douple, decimal), ring i vi kiu
d liu ReplicationID (GUI) thi kh
nng lu tr l 16 byte.

Date/Time Lu tr thng tin v thi gian. S dng 8 byte lu tr.

Currency S dng Currency cho cc d liu Kh nng lu tr l 8 byte.


cn tnh ton. Phn thp phn c th
c t 1 n 4 s.

AutoNumber y l kiu s t ng tng vi bc S dng 4 byte lu tr. Nu


tng l 1. Ta khng th cp nht li chn kiu d liu l ReplicationID

PHN II- NGN NG SQL 7


Chng 2. CC LNH NH NGHA D LIU (DDL)

c trng ny. th kh nng lu tr c th ln ti


16 byte.

Yes/No Kiu d liu YES/NO ch cha mt S dng 1 bite lu tr.


trong 2 gi tr (Yes/No, True/False,
On/ Off)Y

OLE Object i tng (nh l mt vn bn trong S dng 1 GB lu tr (tu thuc


Microsoft Word, d liu ho, m vo dung lng ca a).
thanh, hoc mt kiu d liu nh
phn )

Ngoi ra cn 2 loi d liu khc nh Hyperlink, Lookup Wizard.


i vi kiu d liu Number, ta cn c th la ch chi tit:

Kiu d liu Miu t Kch c


chnh
xc thp
phn

Byte Lu tr s t 0 n 255 (khng c phn s) Khng 1 byte

Decimal Lu tr ti a 10^38-1 28 12bytes

Integer Lu tr s t -32,768 to 32,767 (khng c Khng 2 bytes


phn s).

Long Integer Lu tr s t -2,147,483,648 ti None 4 bytes


2,147,483,647 (khng c phn s).

Single Lu tr s t -3.402823E38 to -1.401298E- 7 4 bytes


45 cho gi tr m v t 1.401298E-45 to
3.402823E38 gi tr dng.

Double Lu tr s t -1.79769313486231E308 ti - 15 8 bytes


4.94065645841247E-324 cho gi tr m v
t 4.94065645841247E324 to
1.79769313486231E308 gi tr dng.

2.3.2 Cc loi d liu c s dng trong Oracle:


1. CHAR
Kiu CHAR dng khai bo mt chui c chiu di c nh, khi khai bo
bin hoc ct kiu CHAR vi chiu di ch nh th tt c cc mc tin ca bin hay
ct ny u c cng chiu di c ch nh. Cc mc tin ngn hn ORACLE s
t ng thm vo cc khong trng cho chiu di. ORACLE khng cho php

PHN II- NGN NG SQL 8


Chng 2. CC LNH NH NGHA D LIU (DDL)

gn mc tin di hn chiu di ch nh i vi kiu CHAR. Chiu di ti a cho


php ca kiu CHAR l 255 byte
2. VARCHAR2
Kiu VARCHAR2 dng khai bo chui k t vi chiu di thay i. Khi
khai bo mt bin hoc ct kiu VARCHAR2 phi ch ra chiu di ti a, cc mc
tin cha trong bin hay ct kiu VARCHAR2 c chiu di thc s l chiu di ca
mc tin. ORACLE khng cho php gn mc tin di hn chiu di ti a ch nh
i vi kiu VARCHAR2. Chiu di ti a kiu VARCHAR2 l 2000 byte
3. VARCHAR
Hin ti ORACLE xem kiu VARCHAR2 v VARCHAR l nh nhau, tuy
nhin ORACLE khuyn nn dng VARCHAR2. ORACLE d nh trong tng
lai dng kiu VARCHAR cha cc chui vi chiu di bin i, nhng trong
php so snh s c ch nh theo nhiu ng ngha khc nhau.
4. NUMBER
Kiu s ca ORACLE dng cha cc mc tin dng s dng, s m, s
vi du chm ng.
NUMBER(p, s)
Trong :
p: s ch s trc du chm thp phn (precision), p t 1 n 38 ch s
s: s cc ch s tnh t du chm thp phn v bn phi (scale), s t -84 n
127
NUMBER(p) s c du chm thp phn c nh vi precision bng p v
scale bng 0
NUMBER s vi du chm ng vi precision bng 38. Nh rng scale
khng c p dng cho s vi du chm ng.
V d sau cho thy cch thc ORACLE lu tr d liu kiu s ty theo
cch nh precision v scale khc nhau:

D liu thc Kiu Lu tr

7456123.89 NUMBER 7456123.89

7456123.89 NUMBER(9) 7456123

7456123.89 NUMBER(9,2) 7456123.89

7456123.89 NUMBER(9,1) 7456123.8

7456123.89 NUMBER(6) Khng hp l

PHN II- NGN NG SQL 9


Chng 2. CC LNH NH NGHA D LIU (DDL)

7456123.8 NUMBER(15,1) 7456123.8

7456123.89 NUMBER(7,-2) 7456100

7456123.89 NUMBER(-7,2) Khng hp l

5. FLOAT
Dng khai bo kiu s du chm ng, vi chnh xc thp phn 38
hay chnh xc nh phn l 126.
FLOAT(b) Khai bo kiu du chm ng vi chnh xc nh phn l b, b
t 1 n 126. C th chuyn t chnh xc nh phn sang chnh xc thp phn
bng cch nhn chnh xc nh phn vi 0.30103.
6. LONG
Dng khai bo kiu chui k t vi di bin i, chiu di ti a ca
kiu LONG l 2 gigabyte. Kiu LONG thng c dng cha cc vn bn.
C mt s hn ch khi dng kiu LONG:
- Mt table khng th cha nhiu hn mt ct kiu LONG.
- D liu kiu LONG khng th tham gia vo cc rng buc ton vn, ngoi
tr kim tra NULL v khc NULL.
- Khng th index mt ct kiu LONG.
- Khng th truyn tham s kiu LONG cho hm hoc th tc.
- Cc hm khng th tr v d liu kiu LONG.
- Trong cu lnh SQL c truy cp cc ct kiu LONG, th vic cp nht hoc
kha cc bng ch cho php trong cng mt CSDL
Ngoi ra, cc ct kiu LONG khng c tham gia trong cc thnh phn
sau ca cu lnh SQL:
- Cc mnh WHERE, GROUP BY, ORDER BY, CONNECT BY hoc
vi tc t DISTINCT trong cu lnh SELECT.
- Cc hm s dng trong cu lnh SQL nh SUBSTR, INSTR.
- Trong danh sch la chn ca cu lnh SELECT c s dng mnh
GROUP BY.
- Trong danh sch la chn ca cu hi con, cu hi c s dng cc ton t
tp hp.
- Trong danh sch la chn ca cu lnh CREATE TABLE AS SELECT
7. DATE

PHN II- NGN NG SQL 10


Chng 2. CC LNH NH NGHA D LIU (DDL)

Dng cha d liu ngy v thi gian. Mc d kiu ngy v thi gian c
th c cha trong kiu CHAR v NUMBER.
Vi gi tr kiu DATE, nhng thng tin c lu tr gm th k, nm,
thng, ngy, gi, pht, giy. ORACLE khng cho php gn gi tr kiu ngy trc
tip, gn gi tr kiu ngy, bn phi dng TO_DATE chuyn gi tr kiu
chui k t hoc kiu s.
Nu gn mt gi tr kiu ngy m khng ch thi gian th thi gian mc
nh l 12 gi m, Nu gn gi tr kiu ngy m khng ch ra ngy, th ngy mc
nh l ngy u ca thng. Hm SYSDATE cho bit ngy v thi gian h thng.
Tnh ton i vi kiu ngy:
i vi d liu kiu ngy, bn c th thc hin cc php ton cng v tr.
V d:
- SYSDATE+1 ngy hm sau
- SYSDATE-7 cch y mt tun
- SYSDATE+(10/1440) mi pht sau
- Ngy Julian: L gi tr s cho bit s ngy k t ngy 1 thng ging
nm 4712 trc cng nguyn.V d:
SELECT TO_CHAR (TO_DATE('01-01-1992', 'MM-DD-YYYY'),
'J') JULIAN FROM DUAL
Cho kt qu:
JULIAN
-----------------------------------------------
2448623
8. RAW v LONG RAW
Kiu RAW v LONG RAW dng cha cc chui byte, cc d liu nh
phn nh hnh nh, m thanh. Cc d liu kiu RAW ch c th gn hoc truy cp
ch khng c thc hin cc thao tc nh i vi chui k t.
Kiu RAW ging nh kiu VARCHAR2 v kiu LONG RAW ging kiu
LONG, ch khc nhau ch ORACLE t ng chuyn i cc gi tr kiu CHAR,
VARCHAR2 v LONG gia tp hp k t ca CSDL v tp k t ca cc ng
dng.
9. ROWID
Mi mu tin trong CSDL c mt a ch c kiu ROWID. ROWID gm
block.row.file, trong :
block : chui h hexa cho bit block cha row

PHN II- NGN NG SQL 11


Chng 2. CC LNH NH NGHA D LIU (DDL)

row : chui h hexa cho bit row trong block


file : chui h hexa cho bit database file cha block
V d:
0000000F.0000.0002
Row u tin trong block 15 ca data file th hai.
10. MLSLABEL
Kiu MLSLABEL dng cha label dng nh phn m ORACLE dng
m bo hot ng ca bn thn h thng.

2.3.3 Cc loi d liu s dng trong SQL SERVER


Phn ny s c trnh by trong phn sau, khi hc v SQL SERVER 2000.

2.4 Cc loi rng buc trong bng d liu .


Cc dng constraint gm:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY ( Referential )
- CHECK

2.4.1 NOT NULL- Khng rng


- Khi c mnh NOT NULL c trong nh ngha ca mt ct th ta bt
buc thuc tnh ny phi c gi tr. Nu ta khng ch th g trong nh ngha
ca thuc tnh th n c th c hoc khng c gi tr.
CREATE TABLE NHANVIEN(
MaNV NUMBER(10) NOT NULL,
TenNV CHAR(30))

2.4.2 UNIQUE-Duy nht


- Ch ra rng buc duy nht, cc gi tr ca ct ch trong mnh UNIQUE
trong cc row ca table phi c gi tr khc bit. Gi tr null l cho php nu
UNIQUE da trn mt ct. V d:
CREATE TABLE NHANVIEN (
MaNV NUMBER(10) NOT NULL,
TenNV CHAR(30),
DiachiNV CHAR(50)
CONSTRAINT UNQ_Ten_Diachi UNIQUE(Ten,Diachi))

PHN II- NGN NG SQL 12


Chng 2. CC LNH NH NGHA D LIU (DDL)

2.4.3 PRIMARY KEY- Kho chnh


- Ch ra rng buc duy nht (ging UNIQUE), tuy nhin kho l dng kho
UNIQUE cp cao nht. Mt table ch c th c mt PRIMARY KEY. Cc
gi tr trong PRIMARY KEY phi NOT NULL.
C php:
[CONSTRAINT constraint_name ]
PRIMARY KEY [CLUSTERED|NONCLUSTERED]
[( colname [,colname2 [...,colname16]])]
V d:
CREATE TABLE NHANVIEN
(
MaNV char(10) NOT NULL primary key,
TenNV char(30),
DiachiNV char(50),
)
Hoc ta c th vit cu lnh sau:
CREATE TABLE NHANVIEN
(
MaNV char(10) NOT NULL,
TenNV char(30),
DiachiNV char(50),
CONSTRAINT NV_P_K PRIMARY KEY (MaNV))

2.4.4 FOREIGN KEY-Kho ngoi


Ch ra mi lin h rng buc tham chiu gia bng ny vi bng khc.
T kho ON DELETE CASCADE c ch nh trong dng kho ny
ch khi d liu cha b xo th d liu con cng t ng b xo theo.
C php:
[CONSTRAINT constraint_name ]
[FOREIGN KEY (colname [,colname2 [...,colname16]])]
REFERENCES reference_table
[(ref_colname[,ref_colname2[...,ref_colname 16]])]
V d: Hai bng DONVI v bng NHANVIEN c mi quan h cha con
(1_N). Thuc tnh MaDV trong bng NHANVIEN(bng con) l kho ngoi, c
tham chiu t thuc tnh MaDV ca bng DONVI(bng cha)
Ta to 2 bng nh sau:

PHN II- NGN NG SQL 13


Chng 2. CC LNH NH NGHA D LIU (DDL)

CREATE TABLE DONVI


(
MaDV char(2) primary key,
TenDV char(20) not null
)

CREATE TABLE NHANVIEN


(
MaNV char(10) primary key,
TenNV char(30) not null,
Diachi char(50),
madv char(2)
CONSTRAINT k_n_madv FOREIGN KEY(madv) REFERENCES
DONVI(MaDV)
)

2.4.5 CHECK- Rng buc kim tra gi tr


Rng buc CHECK c s dng yu cu cc gi tr trong ct, hoc
khun dng d liu trong ct phi theo mt quy tc no . Trn mt ct c th c
nhiu rng buc ny. khai bo mt rang buc CHECK cho mt ct no ta
dng c php sau.
C php:
[CONSTRAINT constraint_name]
CHECK (expression)
Trong , expression l mt biu thc logic. Sau khi c rng buc ny, gi
tr nhp vo cho ct phi tho mn iu kin mi c chp nhn.
V d:
CREATE TABLE NHANVIEN
(MaNV CHAR(10) NOT NULL PRIMARY KEY,
TenNV CHAR(30),
Luong NUMBER(10,2)
CONSTRAINT CK_SAL CHECK(SAL>500))

2.4.6 DEFAULT-Mc nh
Rng buc DEFAULT c s dng quy nh gi tr mc nh cho mt
ct. Gi tr ny s t ng gn cho ct nu ngi s dng khng nhp vo khi b
sung bn ghi.
C php:

PHN II- NGN NG SQL 14


Chng 2. CC LNH NH NGHA D LIU (DDL)

[CONSTRAINT constraint_name]
DEFAULT {const_expression/nonarguments_function/NULL}
V d:
CREATE TABLE NHANVIEN
(
MaNV char(10) primary key,
TenNV char(30) not null,
Gioitinh char(3) DEFAULT Nam
)

2.5 Sa i cu trc
C th sa i cu trc ca bng hin ang tn ti bng lnh ALTER.
Chng ta c th thm mt thuc tnh (ct) mi, thay i cu trc ca mt thuc
tnh (ct ) ang c, b sung kho, b sung rng buc.
C php tng qut:
ALTER TABLE table_name
[ADD
{col_name column_properties [column_constraints]
[[,]table_constraint ] }
[,{next_col_name|next_table_constraint}]...]
[DROP
[CONSTRAINT] constraint_name1
[, constraint_name2]...]
/ALTER
{col_name column_properties [column_constraints]
[[,]table_constraint ] }
[,{next_col_name|next_table_constraint}]...]

Thm mt rng buc CHECK


ALTER TABLE DONVI
ADD CONSTRAINT check_madv
CHECK (MaDV LIKE [0-9][0-9])
Thm mt thuc tnh.
C php:
ALTER TABLE <Tn_bng>
ADD COLUMN Tn_ct , Kiu_ct[(size)] )
V d:
ALTER TABLE DONVI

PHN II- NGN NG SQL 15


Chng 2. CC LNH NH NGHA D LIU (DDL)

ADD(GhiChu, VARCHAR(255))
Ch : Trong mt s HQTCSDL ta cn phi thm t kho COLUMN
nh sau:
C php:
ALTER TABLE <Tn_bng>
ADD COLUMN Tn_ct , Kiu_ct[(size)] )
V d:
ALTER TABLE NHANVIEN
ADD COLUMN GhiChu Text(50));
Thay i kiu ca mt thuc tnh.
C php:
ALTER TABLE <Tn_bng>
ALTER (Tn_ct, Kiu_mi)
V d:
ALTER TABLE NHANVIEN
ALTER(HoTen, VARCHAR(40))
Ch : Trong mt s HQTCSDL ta cn phi thm t kho COLUMN nh
sau:
C php:
ALTER TABLE <Tn_bng>
ALTER COLUMN Tn_ct , Kiu_ct_mi[(size)]
V d:
ALTER TABLE NHANVIEN
ALTER COLUMN GhiChu Memo
Xa mt thuc tnh
C php:
ALTER TABLE <Tn_bng>
DROP <Tn_thuc_tnh>
V d:
ALTER TABLE NHANVIEN
DROP GhiChu
Ch : Trong mt s HQTCSDL ta cn phi thm t kho COLUMN nh
sau:

PHN II- NGN NG SQL 16


Chng 2. CC LNH NH NGHA D LIU (DDL)

C php:
ALTER TABLE <Tn_bng>
DROP COLUMN Tn_ct
V d:
ALTER TABLE NHANVIEN
DROP COLUMN GhiChu

2.6 Xo i tng
C php:
DROP <Object_name>
V d:
DROP TABLE SINHVIEN

3 Chng 3. CC LNH QUN TR D LIU


3.1 Thm hng (INSERT)
C php:
INSERT [INTO]<TableName> (Column1, Column2, , Columnn)
VALUES (Values1, Values2,., Valuesn)
Lnh ny c dng xen thm mt hoc nhiu dng (bn ghi) mi vo
mt bng. Dng n gin nht ca lnh ny l thm mi ln 1 dng. N i hi
phi nn tn ca bng, tn cc thuc tnh v gi tr cn gn cho chng. Nu khng
nu tn cc thuc tnh th iu c ngha l tt c cc thuc tnh trong bng u
cn c thm gi tr theo th t t tri sang phi.
V d 1:
Gi s ta c cu trc bng NHANVIEN(MaNV, TenNV, Diachi, Tuoi)
- Thm bn ghi mi c tt c cc trng cho bng NHANVIEN. V tt c
cc thuc tnh trong bng u c thm gi tr nn ta khng cn c danh sch cc
thuc tnh ngay sau tn bng NHANVIEN.
INSERT INTO NHANVIEN
VALUES(DHTL05,Nguyn Cng Thnh, KhoaCNTT,22 )
- Thm bn ghi mi vo bng, tui khng xc nh:
INSERT INTO DOCGIA(MaDG,TenDG,DiaChi)
VALUES(DHTL06,Nguyn Phng Lan, Khoa May )

- Ngoi ra chng ta cn c thm d liu cho bng t gi tr ca bng khc:

PHN II- NGN NG SQL 17


Chng 3. CC LNH QUN TR D LIU

C php:
INSERT [INTO]<TableName> (Column1, Column2, , Columnn)
SELECT Select_list FROM <Tables>
V d:
insert into NHANVIEN_tam (TenNV, Tuoi)
select TenNV, Tuoi from NHANVIEN where Tuoi > 20

3.2 Xa hng (DELETE)


C php:
DELETE FROM <Table_name> WHERE <Conditions>
Lnh ny gm 1 mnh DELETE FROM ch ra tn gi ca bng c
xt, v mt mnh WHERE ch ra cc dng cn phi xa. Nh vy, ta c th
cng lc xa c nhiu dng nu dng tha mn iu kin. Mun xa mi
dng ca mt bng th khng cn a vo mnh WHERE.
V d:
Xa mt bn ghi (dng) c MaDG=DHTL01 trong bng DOCGIA.
DELETE FROM DOCGIA WHERE MaDG=DHTL01
Xa nhng c gi c a ch l: 41NC c trong bng DOCGIA.
DELETE FROM DOCGIA WHERE Diachi=41NC

3.3 Sa i gi tr ca mt hng (UPDATE)


C php:
UPDATE <Table_name>
SET (Colunm_name= <new value>)
WHERE <Condition>

V d:
UPDATE DOCGIA
SET (Diachi= Khoa Cong trinh)
WHERE MaDG= TD001

PHN II- NGN NG SQL 18


Chng 4. NGN NG IU KHIN (DCL)

4 Chng 4. NGN NG IU KHIN (DCL)


Ngn ng iu khin c s dng trong vic cp pht hay hu b quyn
ca ngi s dng.

4.1 Lnh GRANT


Cu lnh ny dng cp pht quyn cho ngi s dng trn i tng C
s d liu hoc quyn thc thi cc cu lnh SQL SERVER. C php c 2 dng
nh sau:
Dng 1: Cp quyn i vi cu lnh SQL
GRANT ALL | statement [,...,statementN ]
TO account [,...,accountN]

Dng 2: Cp quyn i vi cc i tng trong c s d liu


GRANT ALL | permission [,...,permissionN]
ON table_name |view_name [(column1 [,...,columnN])]
|ON stored_procedure
TO account [,...,accountN]

Trong :
- ALL: l t kho c s dng khi mun cp pht tt c cc quyn cho
ngi s dng.
- Account: l tn ti khon ng nhn h thng
- Permission: l quyn cp pht cho ngi s dng trn i tng c s d
liu:
o Cc quyn c th cp pht trn mt bng hoc mt View: Select,
Insert, Delete, Update.
o Cc quyn c th cp pht trn ct ca bng hoc ca View: Select,
Update
o Quyn c th cp pht vi cc th tc: EXCUTE(thc thi)
- Statement: L cu lnh c cp pht cho ngi s dng Cc cu lnh c
th cp pht l:
o CREATE DATABASE
o CREATE TABLE
o CREATE VIEW
o CREATE PROCEDURE

PHN II- NGN NG SQL 19


Chng 4. NGN NG IU KHIN (DCL)

o CREATE RULE
o CREATE DEFAULT
o BACKUP DATABASE
o BACKUP LOG
V d 1: Cu lnh sau s 3 cp quyn SELECT, UPDATE, INSERT trn
cc thuc tnh (TenNV,DiaChi, Tuoi) ca bng NHANVIEN cho 2 ngi s dng
phnhung, htvan.
GRANT SELECT, UPDATE, INSERT
ON NHANVIEN(TenNV,DiaChi, Tuoi)
TO phnhung, htvan
V d 2:
Cu lnh sau s cp quyn to bng, to View v to th tc cho ngi
dng phnhung.
GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE
TO phnhung

4.2 Lnh REVOKE


Lnh REVOKE c dng hu b quyn c cp pht cho ngi s
dng. Cu lnh ny cng c 2 dng tng t nh cu lnh GRANT.
Dng 1: Hu quyn thc hin cu lnh:
REVOKE ALL | statement [,...,statementN]
FROM account [,...,accountN]
Dng 2: Hu quyn thc hin cc i tng:

REVOKE ALL | permission [,...,permissionN]}


ON table_name | view_name [(column [,...,columnN])]
| stored_procedure
FROM account [,...,accountN ]

PHN II- NGN NG SQL 20


Chng 5. TRUY VN D LIU (SELECT)

5 Chng 5. TRUY VN D LIU (SELECT)


- Mnh SELECT cho php ch ra cc thuc tnh m ta mun tm. Th t
cc thuc tnh trong kt qu l th t m n xut hin trong lnh SELECT.
Bng cch cho php ta thc hin c php chiu ca quan h.
- Nh vy, kt qu ca cu lnh SELECT l mt bng, bng l kt qu
ca php chiu qua bng xut pht.
- SELECT c th thc hin trn 1 bng hoc trn nhiu bng.
- SELECT c nhiu mnh , mi mnh m bo mt chc nng.

5.1 C php
SELECT [DISTINCT]|Columns_list|Expression_list|*
FROM <Tables_list>
WHERE <Conditions>
GROUP BY <Columns>
HAVING <Conditions_for_group>
ORDER BY [ACS| DESC]
Trong :
- Sau SELECT: Cc thng tin cn a ra, chnh l danh sch cc
thuc tnh
- Sau FROM: Danh sch cc tn bng, t thng tin c ly ra.
- Sau WHERE: Cc biu thc logic, ch ra thng tin c ly ra t
hm no hoc iu kin ni gia cc bng.
- Sau GROUP BY: Cc ct m trong c tnh theo tng nhm.
- Sau HAVING: Biu thc logic ch ra thng tin c ly ra t nhm
no.
- Sau ORDER BY: Ch ra cc ct m trong thng tin c sp xp
theo th t.
o ASC: thng tin c sp xp theo chiu tng dn
(ASCendent)
o DESC: thng tin c sp xp theo chiu gim
dn(DESCendent)

5.2 V d:
Xt bng: NHANVIEN

PHN II- NGN NG SQL 21


Chng 5. TRUY VN D LIU (SELECT)

NHANVIEN

MaNV HoTen CongViec Luong MaDV

NV001 Phm Th Nhn Th k 500 0001

NV002 Hong Thanh Vn Gio vin 600 0001

NV003 Hong Th Lan Gio vin 200 0002

NV004 Trung Dng Th k 700 0003

... ... .... ... ...

5.3 a ra cc ct
5.3.1 a tt c cc ct
V d: a tt c cc thng tin v nhn vin
SELECT *
FROM NHANVIEN
Kt qu: Ton b bng trn.

5.3.2 a mt s cc ct
V d: a ra Hoten, Luong ca cc nhn vin
SELECT Hoten, Luong
FROM NHANVIEN

Kt qu:

sl_NV_some_col

Hoten Luong

Phm Th Nhn 500

Hong Thanh Vn 600

Hong Th Lan 200

Trung Dng 700

PHN II- NGN NG SQL 22


Chng 5. TRUY VN D LIU (SELECT)

5.3.3 Trnh cc gi tr trng lp (DISTINCT)


V d: a ra cc cng vic khc nhau trong bng NHANVIEN
SELECT DISTINCT Congviec
FROM NHANVIEN

Kt qu: - Nu khng c lnh DISTINCT v c DISTINCT:


Congviec CongViec
Th k Gio vin
Gio vin Th k
Gio vin
Th k

5.3.4 a ra cc gi tr ca cc biu thc


V d: a ra Hoten, Luongnam (Lng *12) ca tt c cc nhn vin
SELECT Hoten, Luong*12
FROM NHANVIEN

Kt qu:

sl_bieuthuc

Hoten Expr1001

Phm Th Nhn 6000

Hong Thanh Vn 7200

Hong Th Lan 2400

Trung Dng 8400

5.3.5 S dng b danh ct


SELECT Hoten, Luong*12 AS Luongnam
FROM NHANVIEN

Kt qu:
Hoten LuongNam
Phm Th Nhn 6000
Hong Thanh Vn 7200
Hong Th Lan 2400
Trung Dng 8400

PHN II- NGN NG SQL 23


Chng 5. TRUY VN D LIU (SELECT)

5.3.6 Sp xp th t (ORDER BY)


V d: a ra Hoten, Luong sp xp theo th t tng dn/ gim dn ca
Luong.
SELECT Hoten, Luong
FROM NHANVIEN
ORDER BY Luong [ASC/ DESC]

Kt qu:
Hoten Luong
Hong Th Lan 200
Phm Th Nhn 500
Hong Thanh Vn 600
Trung Dng 700

- Trong ASC(ascendent) l tng dn, DESC(descendent) l gim


dn.
- Nu gi tr mc nh th s sp xp theo chiu tng dn.

5.4 a ra cc hng
Lnh c dng:
SELECT [DISTINCT]|Columns_list|Expression_list|*
FROM <Tables_list>
WHERE <Conditions>

iu kin sau mnh Where l mt biu thc lgic, s dng cc php


ton sau:

5.4.1 S dng cc php so snh


= : Ton t bng hay tng ng
!= : Ton t khc hay khng tng ng
> : Ton t ln hn
< : Ton t nh hn
>= : Ton t ln hn hoc bng
<= : Ton t nh hn hoc bng
V d: a ra Hoten, Luong ca cc nhn vin c Luong>300

PHN II- NGN NG SQL 24


Chng 5. TRUY VN D LIU (SELECT)

Hoten Luong
Phm Th Nhn 500
Hong Thanh Vn 600

Trung Dng 700

5.4.2 S dng cc php logic: AND, OR, NOT


V d: a ra Hoten, Luong ca nhng nhn vin c cng vic l Gio
vin v mc lng >300.
SELECT HoTen, Luong
FROM NHANVIEN
WHERE (Luong>300) AND (Congviec='Gio vin')
Kt qu:
HoTen Luong
Hong Thanh Vn 600

- Phn tch v d sau:


SELECT HoTen, Luong
FROM NHANVIEN
WHERE (((Luong)>400) AND (Not(CongViec)=('Th k') )
OR (Congviec=('Th k' ) ))
Kt qu:
HoTen Luong
Phm Th Nhn 500
Hong Thanh Vn 600
Trung Dng 700

5.4.3 Cc ton t ca SQL


- [NOT] BETWEEN x AND y: [Khng] nm gia gi tr X v Y
- IN (danh sch): thuc bt k gi tr no trong danh sch
- x [NOT] LIKE y: ng nu x [khng] ging khung mu y.
Cc k t dng trong khun mu:
Du gch di ( _ ) : Ch mt k t bt k
Du phn trm ( % ) : Ch mt nhm k t bt k
- IS [NOT] NULL: kim tra gi tr rng
- EXISTS: Tr v TRUE nu c tn ti.
V d:

PHN II- NGN NG SQL 25


Chng 5. TRUY VN D LIU (SELECT)

- Php BETWEEN AND


V d: a ra nhng nhn vin c Lng trong khong 300 n 600.
SELECT HoTen, Luong
FROM NHANVIEN
WHERE Luong BETWEEN 300 AND 600
Kt qu:
HoTen Luong
Phm Th Nhn 500

Hong Thanh Vn 600

- Php IN ( Mt tp hp);
V d: a ra nhng nhn vin c lng hoc 200, 300, 600.
SELECT HoTen, Luong
FROM NHANVIEN
WHERE Luong IN (200,500,600)
Kt qu:
HoTen Luong
Phm Th Nhn 500
Hong Thanh Vn 600
Hong Th Lan 200

- Php LIKE
- K t thay th % i din cho mt nhm cc k t cha bit (trong
Access l: *).
- K t thay th _ i din cho mt k t cha bit (trong Access
l:?).
- V d: a ra Hoten, Congviec ca cc nhn vin c H tn bt u
bng ch Hong.
SELECT HoTen, Congviec
FROM NHANVIEN
WHERE Hoten LIKE 'Hong*'

Kt qu:
HoTen Congviec
Hong Thanh Vn Gio vin
Hong Th Lan Gio vin

PHN II- NGN NG SQL 26


Chng 5. TRUY VN D LIU (SELECT)

V d:
SELECT HoTen, Congviec
FROM NHANVIEN
WHERE Hoten LIKE 'Hong Thanh Vn'
- Php IS [NOT] NULL
V d:
SELECT * FROM NHANVIEN WHERE Diachi IS NULL

5.5 S dng cc hm
Cc HQTCSDL a ra cc hm khc nhau, v th khi lm vic vi
HQTCSDL no chng ta nn tm hiu cc hm v cch s dng chng i vi
HQTCSDL . Sau y l mt s cc loi hm thng dng.

5.5.1 Hm s hc
u vo v u ra l cc gi tr kiu s.
ROUND(n[,m]): Cho gi tr lm trn ca n (n cp m, mc nhin m=0)
TRUNC(n[,m]): Cho gi tr n ly m ch s tnh t chm thp phn.
CEIL(n): Cho s nguyn nh nht ln hn hoc bng n.
FLOOR(n): Cho s nguyn ln nht bng hoc nh hn n.
POWER(m,n): Cho ly tha bc n ca m.
EXP(n): Cho gi tr ca en
SQRT(n): Cho cn bc 2 ca n, n>=0
SIGN(n): Cho du ca n.
n<0 c SIGN(n)= -1
n=0 c SIGN(n)= 0
n>0 c SIGN(n)= 1
ABS(n): Cho gi tr tuyt i
MOD(m,n): Cho phn d ca php chia m cho n

5.5.2 Mt s hm kiu s tham kho khc:


LOG(m,n) cho logarit c s m ca n
SIN(n) cosin ca n (n tnh bng radian)
COS(n) cho cosin ca n (n tnh bng radian)

PHN II- NGN NG SQL 27


Chng 5. TRUY VN D LIU (SELECT)

TAN(n) cotang ca n (n tnh bng radian)


V d hm ROUND(n[,m]):
SELECT ROUND(4.923,1),
ROUND(4.923),
ROUND(4.923,-1),
ROUND(4.923,2)
FROM DUMMY;

ROUND(4.923,1) ROUND(4.923) ROUND(4.923,-1) ROUND(4.923,2)


-------------- ------------ --------------- --------------
4.9 5 0 4.92

V d hm TRUNC(n[,m]):
SELECT TRUNC (4.923,1),
TRUNC (4.923),
TRUNC (4.923,-1),
TRUNC (4.923,2)
FROM DUMMY;

TRUNC(4.923,1) TRUNC(4.923) TRUNC(4.923,-1) TRUNC(4.923,2)


-------------- ------------ --------------- --------------
4.9 4 0 4.92

V d hm CEIL(n)
SELECT CEIL (SAL), CEIL(99.9),CEIL(101.76), CEIL(-11.1)
FROM EMP
WHERE SAL BETWEEN 3000 AND 5000;

CEIL(SAL) CEIL(99.9) CEIL(101.76) CEIL(-11.1)


---------- ---------- ------------ -----------
5000 100 102 -11
3000 100 102 -11
3000 100 102 -11

V d hm FLOOR(n)
SELECT FLOOR (SAL), FLOOR (99.9), FLOOR (101.76), FLOOR (-11.1)
FROM EMP
WHERE SAL BETWEEN 3000 AND 5000;

FLOOR(SAL) FLOOR(99.9) FLOOR(101.76) FLOOR(-11.1)


---------- ----------- ------------- ------------
5000 99 101 -12
3000 99 101 -12
3000 99 101 -12

V d hm POWER(m,n)
SELECT SAL, POWER(SAL,2), POWER(SAL,3), POWER(50,5)
FROM EMP
WHERE DEPTNO =10;

SAL POWER(SAL,2) POWER(SAL,3) POWER(50,5)


---------- ------------ ------------ -----------
5000 25000000 1.2500E+11 312500000

PHN II- NGN NG SQL 28


Chng 5. TRUY VN D LIU (SELECT)

2450 6002500 1.4706E+10 312500000


1300 1690000 2197000000 312500000

V d hm EXP(n)
SELECT EXP(4) FROM DUMMY;

EXP(4)
----------
54.59815

V d hm SQRT(n)
SELECT SAL, SQRT(SAL), SQRT(40), SQRT (COMM)
FROM EMP
WHERE DEPTNO =10;

SAL SQRT(SAL) SQRT(40) SQRT(COMM)


---------- ---------- ---------- ----------
5000 70.7106781 6.32455532
2450 49.4974747 6.32455532
1300 36.0555128 6.32455532

V d hm SIGN(n)
SELECT SAL-NVL(COMM,0), SIGN(SAL-NVL(COMM,0)),
NVL(COMM,0)-SAL, SIGN(NVL(COMM,0)-SAL)
FROM EMP
WHERE DEPTNO =30

SAL-NVL(COMM,0)SIGN(SAL-NVL(COMM,0))NVL(COMM,0)-SAL
SIGN(NVL(COMM,0)-SAL)
--------------- ----------- --------------- ---------------------
2850 1 -2850 -1
-150 -1 150 1
1300 1 -1300 -1
1500 1 -1500 -1
950 1 -950 -1
750 1 -750 -1

5.5.3 Cc hm k t
- CONCAT(char1, char2): Cho kt hp ca 2 chui k t, tng t nh s
dng ton t.
- INITCAP(char): Cho chui vi k t u cc t l k t hoa
- LOWER(char): Cho chui k t vit thng (khng vit hoa)
- LPAD(char1, n [,char2]): Chochui k t c chiu di bng n. Nu
chui char1 ngn hn n th thm vo bn tri chui char2 cho n k t.
Nu chui char1 di hn n th gi li n k t tnh t tri sang
- LTRIM(char1, n [,char2]): B cc k t trng bn tri
- NLS_INITCAP(char): Cho chui vi k t u cc t l ch hoa, cc ch
cn li l ch thng

PHN II- NGN NG SQL 29


Chng 5. TRUY VN D LIU (SELECT)

- REPLACE(char,search_string[,replacement_string]): Thay tt c
cc chui search_string c trong chui char bng chui replacement_string.
- RPAD(char1, n [,char2]):Ging LPAD(char1, n [,char2]) nhng cn
phi.
- RTRIM(char1, n [,char2]): B cc k t trng bn phi
- SOUNDEX(char): Cho chui ng m ca char.
- SUBSTR(char, m [,n]): Cho chui con ca chui char ly t v tr m v
phi n k t, nu khng ch n th ly cho n cui chui
- TRANSLATE(char, from, to): Cho chui trong mi k t trong
chui from thay bng k t tng ng trong chui to, nhng k t trong
chui from khng c tng ng trong chui to s b loi b.
- UPPER(char): Cho chui ch hoa ca chui char
- ASCII(char): Cho k t ASCII ca byte u tin ca chui char
- INSTR(char1, char2 [,n[,m]]): Tm v tr chui char2 trong chui char1
bt u t v tr n, ln xut hin th m.
- LENGTH(char): Cho chiu di ca chui char
V d hm LOWER(char)
SELECT LOWER(DNAME), LOWER(SQL COURSE) FROM DEPT;

LOWER(DNAME) LOWER('SQL
-------------- ----------
accounting sql course
research sql course
sales sql course
operations sql course

V d hm UPPER(char)
SELECT ENAME FROM EMP WHERE ENAME = UPPER(Smith);

ENAME
----------
SMITH

V d hm INITCAP(char)
SELECT INITCAP(DNAME), INITCAP(LOC) FROM DEPT;

INITCAP(DNAME) INITCAP(LOC)
-------------- -------------
Accounting New York
Research Dallas
Sales Chicago
Operations Boston

V d hm CONCAT(char1, char2)

PHN II- NGN NG SQL 30


Chng 5. TRUY VN D LIU (SELECT)

SELECT CONCAT(ENAME, JOB) JOB FROM EMP WHERE EMPNO = 7900;

JOB
-------------------
JAMES CLERK

V d hm LPAD(char1, n [,char2])
SELECT LPAD(DNAME,20,*), LPAD(DNAME,20), LPAD(DEptno,20, )
FROM DEPT;

LPAD(DNAME,20,'*') LPAD(DNAME,20) LPAD(DEPTNO,20,'')


-------------------- -------------------- --------------------
******ACCOUNTING ACCOUNTING 10
******RESEARCH RESEARCH 20
******SALES SALES 30
******OPERATIONS OPERATIONS 40

V d hm RPAD(char1, n [,char2])
SELECT RPAD(DNAME,20,*), RPAD(DNAME,20), RPAD(DEptno,20, )
FROM DEPT;

RPAD(DNAME,20,'*') RPAD(DNAME,20) RPAD(DEPTNO,20,'')


-------------------- -------------------- --------------------
ACCOUNTING ****** ACCOUNTING 10
RESEARCH ****** RESEARCH 20
SALES ****** SALES 30
OPERATIONS ****** OPERATIONS 40

V d hm SUBSTR(char, m [,n])
SELECT SUBSTR(ORACLE,2,4), SUBSTR(DNAME,2), SUBSTR(DNAME,3,5)
FROM DEPT;

SUBS SUBSTR(DNAME, SUBST


---- ------------- -----
RACL CCOUNTING COUNT
RACL ESEARCH SEARC
RACL ALES LES
RACL PERATIONS ERATI

V d hm INSTR(char1, char2 [,n[,m]])


SELECT DNAME, INSTR(DNAME, A), INSTR(DNAME,ES),
INSTR(DNAME,C,1,2)
FROM DEPT;

DNAME INSTR(DNAME,'A') INSTR(DNAME,'ES')


INSTR(DNAME,'C',1,2)
-------------- ---------------- ----------------- -----------------
---
ACCOUNTING 1 0 3
RESEARCH 5 2 0
SALES 2 4 0
OPERATIONS 5 0 0

V d hm LTRIM(char1, n [,char2])

PHN II- NGN NG SQL 31


Chng 5. TRUY VN D LIU (SELECT)

SELECT DNAME, LTRIM(DNAME,A), LTRIM(DNAME,AS),


LTRIM(DNAME,ASOP)
FROM DEPT;

DNAME LTRIM(DNAME,'A LTRIM(DNAME,'A LTRIM(DNAME,'A


-------------- -------------- -------------- --------------
ACCOUNTING CCOUNTING CCOUNTING CCOUNTING
RESEARCH RESEARCH RESEARCH RESEARCH
SALES SALES LES LES
OPERATIONS OPERATIONS OPERATIONS ERATIONS

V d hm RTRIM(char1, n [,char2])
SELECT DNAME, RTRIM(DNAME,A), RTRIM(DNAME,AS),
RTRIM(DNAME,ASOP)
FROM DEPT;

DNAME RTRIM(DNAME,'A RTRIM(DNAME,'A RTRIM(DNAME,'A


-------------- -------------- -------------- --------------
ACCOUNTING ACCOUNTING ACCOUNTING ACCOUNTING
RESEARCH RESEARCH RESEARCH RESEARCH
SALES SALES SALES SALES
OPERATIONS OPERATIONS OPERATIONS OPERATIONS

V d hm SOUNDEX(char)
SELECT ENAME, SOUNDEX(ENAME)
FROM EMP
WHERE SOUNDEX(ENAME)= SOUNDEX(FRED);

ENAME SOUN
---------- ----
FORD F630

V d hm LENGTH(char)
SELECT LENGTH(SQL COURSE), LENGTH(DEPTNO), LENGTH(DNAME) FROM
DEPT;

LENGTH('SQLCOURSE') LENGTH(DEPTNO) LENGTH(DNAME)


------------------- -------------- -------------
10 2 14
10 2 14
10 2 14
10 2 14

V d hm TRANSLATE(char, from, to)


SELECT ENAME, TRANSLATE(ENAME,'C','F'), JOB,
TRANSLATE(JOB,'AR','IT')
FROM EMP
WHERE DEPTNO = 10;

ENAME TRANSLATE( JOB TRANSLATE


---------- ---------- --------- ---------
KING KING PRESIDENT PTESIDENT
CLARK FLARK MANAGER MINIGET
MILLER MILLER CLERK CLETK

PHN II- NGN NG SQL 32


Chng 5. TRUY VN D LIU (SELECT)

V d hm REPLACE(char,search_string[,replacement_string])
SELECT JOB, REPLACE(JOB, SALESMAN, SALESPERSON), ENAME,
REPLACE(ENAME, CO,PR)
FROM EMP
WHERE DEPTNO =30 OR DEPTNO =20;

JOB REPLACE(JOB,'SALESMAN', ENAME REPLACE(ENAME,'CO','


--------- ----------------------- --------- ---------------
MANAGER MANAGER BLAKE BLAKE
MANAGER MANAGER JONES JONES
SALESMAN SALESPERSON MARTIN MARTIN
SALESMAN SALESPERSON ALLEN ALLEN
SALESMAN SALESPERSON TURNER TURNER
CLERK CLERK JAMES JAMES
SALESMAN SALESPERSON WARD WARD
ANALYST ANALYST FORD FORD
CLERK CLERK SMITH SMITH
ANALYST ANALYST SCOTT SPRTT
CLERK CLERK ADAMS ADAMS

V d cc hm lng nhau:
SELECT DNAME, LENGHT(DNAME), LENGHT(TRANSLATE,DNAME, AS,A))
FROM DEPT;

DNAME LENGTH(DNAME) LENGTH(TRANSLATE(DNAME,'AS','A'))


-------------- ------------- ---------------------------------
ACCOUNTING 14 14
RESEARCH 14 13
SALES 14 12
OPERATIONS 14 13

5.5.4 Cc hm ngy
MONTH_BETWEEN(d1, d2): Cho bit s thng gia ngy d1 v d2.
ADD_MONTHS(d,n): Cho ngy d thm n thng.
NEXT_DAY(d, char ): Cho ngy tip theo ngy d c th ch bi char.
LAST_DAY(d): Cho ngy cui cng trong thng ch bi d.
V d hm MONTH_BETWEEN(d1, d2)
SELECT MONTHS_BETWEEN( SYSDATE, HIREDATE),
MONTHS_BETWEEN('01-01-2000','05-10-2000')
FROM EMP
WHERE MONTHS_BETWEEN( SYSDATE,HIREDATE)>240;

MONTHS_BETWEEN(SYSDATE,HIREDATE) TWEEN('01-01-2000','05-10-2000')
-------------------------------- --------------------------------
241.271055 -9.1290323
241.206539 -9.1290323
243.367829 -9.1290323

PHN II- NGN NG SQL 33


Chng 5. TRUY VN D LIU (SELECT)

V d hm ADD_MONTHS(d,n)
SELECT HIREDATE, ADD_MONTHS(HIRE,3), ADD_MONTHS(HIREDATE,-3)
FROM EMP
WHERE DEPTNO=20;

HIREDATE ADD_MONTHS ADD_MONTHS


---------- ---------- ----------
02-04-1981 02-07-1981 02-01-1981
03-12-1981 03-03-1982 03-09-1981
17-12-1980 17-03-1981 17-09-1980
09-12-1982 09-03-1983 09-09-1982
12-01-1983 12-04-1983 12-10-1982

V d hm NEXT_DAY(d, char )
SELECT HIREDATE, NEXT_DAY(HIREDATE,FRIDAY), NEXT_DAY(HIREDATE,6)
FROM EMP
WHERE DEPTNO = 10;

HIREDATE NEXT_DAY(H NEXT_DAY(H


---------- ---------- ----------
17-11-1981 20-11-1981 20-11-1981
09-06-1981 12-06-1981 12-06-1981
23-01-1982 29-01-1982 29-01-1982

V d hm LAST_DAY(d)
SELECT SYSDATE, LAST_DAY(SYSDATE), HIREDATE, LAST_DAY(HIREDATE),
LAST_DAY(15-01-2001)
FROM EMP
WHERE DEPTNO =20;

SYSDATE LAST_DAY(S HIREDATE LAST_DAY(H LAST_DAY('


---------- ---------- ---------- ---------- ----------
28-03-2001 31-03-2001 02-04-1981 30-04-1981 31-01-2001
28-03-2001 31-03-2001 03-12-1981 31-12-1981 31-01-2001
28-03-2001 31-03-2001 17-12-1980 31-12-1980 31-01-2001
28-03-2001 31-03-2001 09-12-1982 31-12-1982 31-01-2001
28-03-2001 31-03-2001 12-01-1983 31-01-1983 31-01-2001

Mt s hm khc c th p dng cho kiu ngy:


- ROUND(date1):Tr v ngy date 1 ti thi im gia tra 12:00
AM
- ROUND(date1,MONTH:Nu date 1 nm trong na thng u tr
v ngy u tin ca thng, ngc li s tr v ngy u tin ca
thng sau.
- ROUND(date1,YEAR): Nu date 1 nm trong na nm u tr
v ngy u tin ca thng, ngc li s tr v ngy u tin ca
nm sau.
- TRUNC(date1, MONTH): Tr v ngy u tin ca thng cha
date1.

PHN II- NGN NG SQL 34


Chng 5. TRUY VN D LIU (SELECT)

- TRUNC(date1, YEAR): Tr v ngy u tin ca nm cha


date1

5.5.5 Cc hm chuyn i kiu


- TO_CHAR(number|date, fmt): Chuyn kiu s v ngy v kiu
k t.
- TO_NUMBER(char): Chuyn k t c ni dung s sang s
- TO_DATE(chsr,fmt): Chuyn k t sang kiu ngy vi nh
dng t trong fmt.
- DECODE(EXPR, SEARCH1, RESULT1, SEARCH2,
RESULT2, DEFAULT): So snh biu thc expr vi gi tr search
nu ng tr v gi tr result nu khng tr v gi tr default.
- NVL(COL|VALUE, VAL): Chuyn gi tr COL|VALUE thnh val
nu null.
- Greatest(col|value1, col|value2): Tr gi tr ln nht trong dy
gi tr.
Mt s v d:
SELECT To_char (sysdate, day, ddth month yyyy) from dummy;
SELECT EMPNO, ENAME, HIREDATE
FROM EMP
WHERE HIREDATE = TO_DATE (June 4, 1984, month dd, yyyy);

INSERT INTO EMP (EMPNO, DEPTNO, HIREDATE


VALUES (777, 20, TO_DATE(19-08-2000, DD-MM-YYYY);

SELECT ENAME, JOB,


DECODE (JOB, CLERK,WWORKER,MANAGER,BOSS,UNDEFINED)
DECODD_JOB
FROM EMP;

SELECT GREATEST(1000,2000), GREATEST(SAL,COMM) FROM EMP


WHERE DEPTNO = 10;

Mt s khun dng ngy


SCC hoc CC th k; S ch ngy BC
YYYY hoc SYYYY nm; S ch ngy BC
YYY, YY, Y Ch nm vi 3,2,1 k t s
IYYY, IYY, IY, I Ch nm theo chun ISO
SYEAR, YEAR Ch nm theo cch pht m ca ngi anh;
Q Qu trong nm
MM Gi tr thng vi 2 s (01-12)

PHN II- NGN NG SQL 35


Chng 5. TRUY VN D LIU (SELECT)

MONTH Tn y ca thng theo ting anh, di 9


MON Thng vi 3 k t vin tt (JAN, FEB...)
WW, W Tun trong nm hoc trong thng
DDD, DD, D Ngy trong nm, thng hoc tun
DAY Ch th trong tun
DY Ch th trong tun vi 3 k t vit tt
J Ngy Julian; bt u t ngy 31/12/4713 trc cng
nguyn
AM, PM Ch nh sng, chiu
HH, HH12 HH24 Ch gi trong ngy (1-12) hoc (0-23)
MI Pht (0-59)
SS Giy (0-59)
SSSSS S giy n na m (0-86399)
/.,- c t ng thm khi t trong khun dng
char on k t t trong nhy p c t ng thm khi t
trong khun dng
TH Thm phn th t (1st, 2nd, 4th )
SP Pht m s ( FOUR vi DDSP)
SPTH, THSP Pht m v chuyn sang dng th t ( First, second, ...)
RR Ngy chuyn giao thin nin k vi cc nm <1999.
Mt s khun dng s
K t M t V d Kt qu
9 Xc nh hin th 1 s 999999 1234
0 Hin th c s 0 u nu di 099999 001234
khun dng ln hn s hin c
$ Thm k t tin t $999999 $1234
L Thm k t tin t bn a L999999 FF1234
. Du thp phn 999999.99 1234.00
, Du phn cch phn nghn 999,999 1,234
MI Du m bn phi ( vi cc gi 999999MI 1234-
tr m)
PR Thm ngoc nhn vo cc gi tr 999999PR <1234>
m
EEE Chuyn sang hin th s E 99.9999RRRR 1.234E+03
V Nhn vi 10 n, n l s cc s 9 9999V99 123400
t sau V
B Hin th c gi tr 0 nu = 0. B9999.99 1234.00

PHN II- NGN NG SQL 36


Chng 5. TRUY VN D LIU (SELECT)

5.5.6 Hm nhm
o COUNT(): m s ln xut hin ca thuc tnh.
o SUM(colume): Tnh tng cc gi tr ca thuc tnh (thuc loi s
hc)
o AVG(colume): Tnh gi tr trung bnh cc gi tr ca thuc tnh
(thuc loi s hc)
o MAX(colume): Tm gi tr cc i ca thuc tnh
o MIN(colume): Tm gi tr cc tiu ca thuc tnh.

5.5.7 S dng hm nhm


i s ca cc hm nhm l tn ca thuc tnh m hm phi tnh ton.
V d:
a ra lng trung bnh, lng ln nht, nh nht ca tt c cc nhn vin
trong bng NHANVIEN.
SELECT Avg(Luong) AS LuongTB,
Max(Luong) AS LuongCN,
Min(Luong) AS LuongTN,
COUNT(MaNV) AS TongNV
FROM NHANVIEN

Kt qu:
LuongTB LuongCN LuongTN TongNV
500 700 200 4

5.5.8 Mnh GROUP BY


Mnh GROUP BY <cc ct> cho php a ra thng tin theo tng nhm.
V d: a ra Cngvic, Lng trung bnh ca tng loi cng vic.
SELECT CongViec, AVG(Luong) AS LuongTB
FROM NHANVIEN
GROUP BY CongViec

Kt qu:
CongViec LuongTB
Gio vin 400
Th k 600

PHN II- NGN NG SQL 37


Chng 5. TRUY VN D LIU (SELECT)

C th thm vo mt mnh WHERE a vo mt tiu chun chn la


cc dng. SQL thc hin cng mt cch x l, u tin l loi b cc dng khng
p ng tiu chun c xc nh trong mnh WHERE.
V d:
SELECT CongViec, AVG(Luong) AS LuongTB
FROM NHANVIEN
WHERE Luong>200
GROUP BY CongViec
Kt qu:
CongViec LuongTB
Gio vin 600
Th k 600

- S dng mnh GROUP BY a ra cc thng tin v cc nhm con


trong cc nhm ln.
V d: a ra tng lng ca tng nhm cng vic trong tng n v.
SELECT MaDV, CongViec, SUM(Luong) AS TongLuong
FROM NHANVIEN
GROUP BY MaDV, CongViec
Kt qu:
MaDV CongViec TongLuong
0001 Gio vin 600
0001 Th k 500
0002 Gio vin 200
0003 Th k 700

Ch : Nu tn cc ct ghi sau SELECT khng phi l i s ca cc hm


nhm th phi a vo mnh GROUP BY.
V d:
TongLuong
1100
200
700

5.5.9 Mnh HAVING


Mun a ra cc nhm trn c s thng tin nhm th iu kin phi c
vit trong mnh HAVING (Khng vit trong mnh WHERE).

PHN II- NGN NG SQL 38


Chng 5. TRUY VN D LIU (SELECT)

V d: a ra nhng Congviec v trung bnh lng ca cc cng vic c


trung bnh lng >=300.
SELECT CongViec, Avg(Luong) AS TBLuong
FROM NHANVIEN
GROUP BY CongViec
HAVING (Avg(Luong)>300)
Kt qu:
CongViec TBLuong
Gio vin 400
Th k 600

V d: a ra nhng n v v lng ln nht ca cc n v c lng ln


nht >=300.
SELECT MaDV, Max(Luong) AS MaxLuong
FROM NHANVIEN
GROUP BY MaDV
HAVING Max(Luong)>300
Kt qu:
MaDV MaxLuong
0001 600
0003 700

Ghi ch: Mnh HAVING l mnh tng ng vi WHERE p dng


cho cc nhm. Ni chung, mnh ny ch s dng nu c ch th mt mnh
GROUP BY.

5.6 Ly thng tin t nhiu bng


Mun ly thng tin t nhiu bng ta cn phi thc hin ni cc bng, iu
kin ni phi c thit t u tin trong mnh Where.

5.6.1 Ni bng (Equi-Join)


iu kin ni l mt ng thc.
V d: a ra Hoten, Congviec, TenDV ca tt c nhn vin.
SELECT HoTen, CongViec, TenDV
FROM NHANVIEN, DONVI
WHERE NHANVIEN.MaDV= DONVI.MaDV
Kt qu:
HoTen CongViec TenDV
Phm Th Nhn Th k KHTN

PHN II- NGN NG SQL 39


Chng 5. TRUY VN D LIU (SELECT)

HoTen CongViec TenDV


Hong Thanh Vn Gio vin KHTN
Hong Th Lan Gio vin DHTL
Trung Dng Th k DHQG

5.6.2 B danh bng


c vit ngay bn phi tn bng trong mnh FROM.
V d:
SELECT HoTen, CongViec, TenDV
FROM NHANVIEN NV, DONVI DV
WHERE NV.MaDV= DV.MaDV

5.6.3 Ni khng bng (Non Equi-Join)


V d: a ra Hoten, Congviec, MaBac ca tt c nhn vin
SELECT HoTen, CongViec, MaBac
FROM NHANVIEN NV, BACLUONG BL
WHERE NV.Luong BETWEEN BL.BacThap AND BL.BacCao
Kt qu:

sl_non_equi

HoTen CongViec MaBac

Phm Th Nhn Th k 1

Hong Thanh Vn Gio vin 2

Trung Dng Th k 3

Ch : Nu ngoi cc iu kin ni cn c thm cc iu kin khc th iu


kin ni phi c vit trc.
V du: a ra HoTen, Congviec, TenDV, Luong ca nhng nhn vin c
Luong>=500.
SELECT HoTen, CongViec, TenDV, Luong
FROM NHANVIEN AS NV, DONVI AS DV
WHERE (NV.MaDV=DV.MaDV) AND (Luong>=500);
Kt qu:
HoTen CongViec TenDV Luong
Phm Th Nhn Th k KHTN 500

PHN II- NGN NG SQL 40


Chng 5. TRUY VN D LIU (SELECT)

HoTen CongViec TenDV Luong


Hong Thanh Vn Gio vin KHTN 600
Trung Dng Th k DHQG 700

5.6.4 Ni bng vi chnh n


Gi s trong bng NHANVIEN ta thm 1 thuc tnh (ct) l MaPT (M
ph trch) lu m ca nhn vin ph trch trc tip 1 nhn vin khc. C th
nh sau:
SELECT NV.MaNV, NV.Hoten, PT.MaNV, PT.Hoten
FROM NHANVIEN NV, NHANVIEN PT
WHERE (NV.MaNV=PT.MaPT) AND (NV.Luong>PT.Luong)

Kt qu:
NV.MaNV NV.Hoten PT.MaNV PT.Hoten
NV002 Hong Thanh Vn NV001 Phm Th Nhn
NV002 Hong Thanh Vn NV003 Hong Th Lan

5.6.5 Thc hin kt ni thng qua t kha Join


Ta c th thc hin ly d liu t hai bng thng qua t kha JOIN.
INNER JOIN (ni trong)
C php:
SELECT field1, field2, field3
FROM table1
INNER JOIN table2
ON table1.keyfield=table2.foreign_keyfield;
V d: Gi s c hai bng:
KHACHHANG:
MaKH TenKH
01 Hong Thanh Vn
02 L Th Nhn
03 Phan Thanh Ha
04 Phm Hng Thanh
DONHANG:
MaSP TenSP MaKH
H102 My in 01
H106 Bn 03
H301 Gh 03

PHN II- NGN NG SQL 41


Chng 5. TRUY VN D LIU (SELECT)

Yu cu: a ra tn khch hng v tn sn phm khch hng mua.


SELECT KHACHHANG.TenKH, DONHANG.TenSP
FROM KHACHHANG
INNER JOIN DONHANG
ON KHACHHANG.MaKH=DONHANG.MaKH
Kt qu:
TenKH TenSP
Hong Thanh Vn My in
Phan Thanh Ha Bn
Phan Thanh Ha Gh
INNER JOIN tr v tt c cc dng t hai bng tha mn iu kin. Nu
nhng dng d liu c bn table1 m khng c trong table2 th s khng c
hin th (khc vi )
LEFT JOIN
C php:
SELECT field1, field2, field3
FROM table1
LEFT JOIN table2
ON table1.keyfield = table2.foreign_keyfield
V d:
SELECT KHACHHANG.TenKH, DONHANG.TenSP
FROM KHACHHANG
LEFT JOIN DONHANG
ON KHACHHANG.MaKH=DONHANG.MaKH
Kt qu:
TenKH TenSP
Hong Thanh Vn My in
L Th Nhn
Phan Thanh Ha Bn
Phan Thanh Ha Gh
Phm Hng Thanh
LEFT JOIN tr v tt c cc dng c bng th nht, mc d bng th
hai khng tha mn php ton. Nu d liu c bng th nht m khng c
bng th hai th d liu vn hin th.
RIGHT JOIN
C php

PHN II- NGN NG SQL 42


Chng 5. TRUY VN D LIU (SELECT)

SELECT field1, field2, field3


FROM table1
RIGHT JOIN table2
ON table1.keyfield =
table2.foreign_keyfield
V d
SELECT KHACHHANG.TenKH, DONHANG.TenSP
FROM KHACHHANG
RIGHT JOIN DONHANG
ON KHACHHANG.MaKH=DONHANG.MaKH
Kt qu:
TenKH TenSP
Hong Thanh Vn My in
Phan Thanh Ha Bn
Phan Thanh Ha Gh
RIGHT JOIN tr v tt c cc dng c bng 2, mc d bng 1 khng tha
mn php ton. Nu d liu c bng 2 m khng c bng 1 th vn c hin
th.

5.7 Thc hin cc php ton trn tp hp


Cc php ton trn tp hp gm: Hp (UNION) hoc UNION ALL, Giao
(INTERSECT), Tr (MINUS)
iu kin thc hin cc php ton trn tp hp: Cc bng tham gia vo
php ton phi c cng s ct nh nhau.
- Php UNION.
V d: a ra nhng cng vic trong n v 1 c MaDV l 0001 v n v
2 c MaDV l 0002.
NHANVIEN
MaNV HoTen CongViec Luong MaDV MaPT
NV001 Phm Th Nhn Th k 500 0001 NV002
NV002 Hong Thanh Vn Gio vin 600 0001 NV003
NV003 Hong Th Lan Gio vin 200 0002 NV002
NV004 Trung Dng Th k 700 0003 NV002
NV005 Vn Hi Bo v 100 0001 NV002
NV006 Nguyn Nam Hi Gim c 1000 0001

PHN II- NGN NG SQL 43


Chng 5. TRUY VN D LIU (SELECT)

SELECT CongViec
FROM NHANVIEN
WHERE MaDV='0001'
UNION
SELECT CongViec
FROM NHANVIEN
WHERE MaDV='0002'

Kt qu:
CongViec
Bo v
Gim c
Gio vin
Th k

- Php INTERSECT: Nu thay UNION bng INTERSECT th kt qu s a


ra nhng cng vic va c trong n v 1, va c trong n v 2.
- Php MINUS: Nu thay UNION bng MINUS th kt qu s a ra nhng
cng vic ch c trong n v 1, m khng c trong n v 2.

5.8 Cc cu hi lng nhau


- L cc lnh SELECT trong c cha cc lnh SELECT khc.
- Cc cu lnh SELECT bn trong nm sau mnh WHERE hoc
HAVING ca SELECT bn ngoi.
- Cch thc hin ca cu lnh SELECT lng nhau:
- Thc hin lnh SELECT bn trong.
- S dng kt qu ca lnh SELECT bn trong thc hin lnh SELECT
bn ngoi.
- S cc lnh SELECT lng nhau c php l 255.

5.8.1 Lnh SELECT bn trong cho kt qu l 1 hng


Xt bng NHANVIEN trn.
V d: a ra Hoten, TenDV, Congviec, Luong ca nhng ngi c lng
ln hn lng trung bnh ca ton b nhn vin.
i vi yu cu ny ta cn lm nhng vic sau:
- a ra trung bnh lng ca tt c cc nhn vin.
- a ra nhng nhn vin tha mn yu cu.

PHN II- NGN NG SQL 44


Chng 5. TRUY VN D LIU (SELECT)

SELECT Hoten, TenDV, Congviec, Luong


FROM NHANVIEN AS NV, DONVI AS DV
WHERE (NV.MaDV= DV.MaDV)
AND (Luong> ( SELECT AVG(Luong)
FROM NHANVIEN ))

Kt qu:
Hoten TenDV Congviec Luong
Nguyn Nam Hi KHTN Gim c 1000
Hong Thanh Vn KHTN Gio vin 600
Trung Dng DHQG Th k 700

V d 2:
a ra nhng nhn vin c lng ln hn ngi c lng ln nht trong
n v c tn l DHTL.
Cng vic:
- Tm MaDV c tn n v l DHTL.
- Tm mc lng ln nht trong n v ny.
- Tm nhng nhn vin c lng tha mn yu cu.
SELECT Hoten, TenDV, Congviec, Luong
FROM NHANVIEN AS NV, DONVI AS DV
WHERE (NV.MaDV= DV.MaDV)
AND (Luong> ( SELECT MAX(Luong)
FROM NHANVIEN
WHERE MaDV =
SELECT MaDV
FROM DONVI
WHERE TenDV='DHTL')))

Kt qu:
Hoten TenDV Congviec Luong
Nguyn Nam Hi KHTN Gim c 1000
Phm Th Nhn KHTN Th k 500
Hong Thanh Vn KHTN Gio vin 600
Trung Dng DHQG Th k 700

5.8.2 Lnh SELECT bn trong cho kt qu l nhiu hng


Gi s lnh SELECT bn trong c dng:

PHN II- NGN NG SQL 45


Chng 5. TRUY VN D LIU (SELECT)

SELECT MaDV,MAX(Luong) AS LuongLN,MIN(Luong) AS LuongNN


FROM NHANVIEN
GROUP BY MaDV
Kt qu:
MaDV LuongLN LuongNN
0001 1000 100
0002 200 200
0003 700 700

Nh vy, kt qu ca cu lnh SELECT bn trong cho kt qu l mt tp


gi tr, th ta phi s dng cc php ton so snh vi tp hp, khng s dng c
cc php ton so snh nh (>, <, =, . ).
Ton t SOME/ANY/ALL/NOT IN/EXITS
[NOT] IN : Khng thuc
ANY v SOME : So snh mt gi tr vi mi gi tr trong mt danh sch hay
trong kt qu tr v ca cu hi con, phi sau ton t =
ALL : So snh mt gi tr vi mi gi tr trong danh sch hay trong kt
qu tr v ca cu hi con.
EXISTS : Tr v TRUE nu c tn ti.
- Php ton IN:
Ta c biu thc: <Gi tr> IN {Tp hp} tr li kt qu = TRUE nu tp
hp cc gi tr nm trong tp hp ng sau IN.
Bng NHANVIEN:
NHANVIEN
MaNV HoTen CongViec Luong MaDV MaPT
NV001 Phm Th Nhn Th k 500 0001 NV002
NV002 Hong Thanh Vn Gio vin 600 0001 NV003
NV003 Hong Th Lan Gio vin 200 0002 NV002
NV004 Trung Dng Th k 700 0003 NV002
NV005 Vn Hi Bo v 100 0001 NV002
NV006 Nguyn Nam Hi Gim c 1000 0001
NV007 Nguyn Hong Lan Gio vin 500 0001 NV006
NV008 Nguyn Thanh Ngc Gio vin 700 0002

V d 1: a ra Hoten, MaDV, Luong ca cc nhn vin c Luong=Luong


thp nht trong n v ca h.
Cng vic:
- Tnh lng thp nht cho tng n v
- So snh (MaDV, Luong) ca tt c nhn vin vi tp hp .

PHN II- NGN NG SQL 46


Chng 5. TRUY VN D LIU (SELECT)

SELECT Hoten, MaDV, Luong


FROM NHANVIEN
WHERE (MaDV, Luong) IN (Select MaDV, Min(Luong)
From NHANVIEN
Group by MaDV)

i vi mt vi HQTCSDL, tp hp trong php ton IN ch bao gm 1 gi


tr. V d khng th so snh (MaDV, Luong), ch c php so snh MaDV hoc
Luong.
V d 2: a ra Hoten, MaDV, Luong ca cc nhn vin c Luong=Luong
thp nht trong mt n v no .
SELECT NHANVIEN.MaNV, NHANVIEN.Hoten, NHANVIEN.Luong
FROM NHANVIEN
WHERE NHANVIEN.Luong IN (
SELECT Min(NHANVIEN.Luong) AS MinOfLuong
FROM NHANVIEN
GROUP BY NHANVIEN.MaDV)

Kt qu:

MaNV Hoten Luong


NV003 Hong Th Lan 200
NV004 Trung Dng 700
NV005 Vn Hi 100
NV008 Nguyn Thanh Ngc 700

Php ton ALL


Kt hp vi cc php so snh thng thng so snh mt gi tr vi 1 tp
hp.
Gi_tr > ALL{Tp hp}: Biu thc TRUE nu gi tr so snh > tt c cc
gi tr trong tp hp.
V d:
5> ALL(2,3,4): TRUE
5> ALL(2,4,6): FALSE
Php ton ANY
Gi_tr> ANY{Tp hp}: Biu thc TRUE nu gi tr so snh > mt gi
tr no trong tp hp.

PHN II- NGN NG SQL 47


Chng 5. TRUY VN D LIU (SELECT)

V d:
5> ANY(2,4,6): TRUE
V d: a ra Hoten, Luong ca cc nhn vin c Luong ln nht ca n
v c m n v l 0002.
SELECT Hoten, Luong
FROM NHANVIEN
WHERE Luong> ALL(
Select Luong
From NHANVIEN
Where MaDV ='0002')

Kt qu select trong l:
Luong
200
700

Kt qu ca c cu lnh:
Hoten Luong
Nguyn Nam Hi 1000

Nu thay ALL = ANY th kt qu:


Hoten Luong
Phm Th Nhn 500
Hong Thanh Vn 600
Trung Dng 700
Nguyn Nam Hi 1000
Nguyn Hong Lan 500
Nguyn Thanh Ngc 700

5.8.3 Mnh HAVING trong SELECT lng nhau.


Mnh HAVING c s dng khi c iu kin nhm
V d: a ra MaDV, AVG(Luong) ca n v c trung bnh lng ln
hn lng nh nht ca n v c m n v l 0003.
- Tnh lng ln nht ca n v c m n v l 0003
- a ra nhng n v c TBLng > Lng nh nht va tnh c

PHN II- NGN NG SQL 48


Chng 5. TRUY VN D LIU (SELECT)

SELECT MaDV, Avg(Luong) AS AvgOfLuong


FROM NHANVIEN
GROUP BY NHANVIEN.MaDV
HAVING AVG(Luong)>
Select Min(Luong)
From NHANVIEN
Where MaDV='0002')

5.8.4 Mnh ORDER BY trong SELECT lng nhau


Mi lnh SELECT ch c 1 mnh ORDER By duy nht.
Mt lnh SELECT lng nhau c coi l mt lnh SELECT. V vy, nu
mun sp xp d liu th mnh ORDER BY phi l mnh cui cng ca lnh
SELECT ngoi cng, cc lnh SELECT bn trong khng c ORDER BY.

5.9 Cc lnh lng nhau lin kt


Cc lnh lin kt cng l cc lnh SELECT lng nhau nhng n c cch
thc hin khc cc lnh lng nhau thng thng.
Cc bc thc hin:
- Xt 1 hng ca bng
- S dng d liu ca hng thc hin lnh SELECT bn trong.
- S dng kt qu ca SELECT bn trong thc hin SELECT bn
ngoi
- Lp li cc bc trn cho n khi ht cc hng c xt.
V d: C bng NHANVIEN
NHANVIEN
MaNV HoTen CongViec Luong MaDV MaPT
NV001 Phm Th Nhn Th k 500 0001 NV002
NV002 Hong Thanh Vn Gio vin 600 0001 NV003
NV003 Hong Th Lan Gio vin 200 0002 NV002
NV004 Trung Dng Th k 700 0003 NV002
NV005 Vn Hi Bo v 100 0001 NV002
NV006 Nguyn Nam Hi Gim c 1000 0001
NV007 Nguyn Hong Lan Gio vin 500 0001 NV006
NV008 Nguyn Thanh Ngc Gio vin 700 0002

a ra Hoten, MaDV, Luong ca nhng nhn vin c Luong> LuongTB


ca n v ca h.

PHN II- NGN NG SQL 49


Chng 5. TRUY VN D LIU (SELECT)

SELECT NHANVIEN.HoTen, NHANVIEN.MaDV, NHANVIEN.Luong


FROM NHANVIEN
WHERE ((NHANVIEN.Luong)> (Select AVG(Luong)
From NHANVIEN NV1
Where NV1.MaDV= NHANVIEN.MaDV))

PHN II- NGN NG SQL 50


Chng 6 . THC HNH TNG HP

6 THC HNH TNG HP


- Phn thc hnh c thc hin trn h qun tr c s d liu
Microsoft Aaccess.
- Tt c cc thao tc phi c thc hin bng ngn ng SQL thng
qua cc Query.

6.1 Hng dn thc hnh


Mi yu cu c ghi vo 1 query. Cc bc thao tc vi Query nh sau:
Bc 1: M Microsoft Access.
Bc 2: To c s d liu (New/ Blank Database).
Nhp tn ca c s d liu.
Bc 3: To 1 truy vn (Query) mi.
- Kch chut vo Create query in Design view.

- Chn SQL.
- Son tho cu lnh SQL.
- Ghi v t tn cho mi Query.
- Thc hin cu lnh bng cch nhn vo ! trn thanh cng c.

PHN II- NGN NG SQL 51


Chng 6 . THC HNH TNG HP

- Chn Save, nhp tn ca Query.


- Ch :
o Tt c cc yu cu ca bi thc hnh u c thc hin bng
lnh ca SQL thng qua Query.
o Mi mt yu cu c ghi li trong mt Query. t tn
Query theo tn ca cu hi. V d: Cau1, Cau2,

6.2 Bi s 1
1. To mt c s d liu c tn l Thuchanh.
2. To mt bng c tn l DOCGIA, c cc thuc tnh nh sau:
CREATE TABLE DOCGIA(
MaDG Text(10) NOT NULL PRIMARY KEY,
TenDG Text(30) NOT NULL,
DiaChi Text(50) NOT NULL,
Tuoi NUMBER);
3. Thm mt thuc tnh mi c tn l Ghichu cho bng DOCGIA.
ALTER TABLE DOCGIA

PHN II- NGN NG SQL 52


Chng 6 . THC HNH TNG HP

ADD COLUMN GhiChu Text(50));


4. Thay i kiu d liu ca thuc tnh Ghichu thnh kiu d liu Memo.
ALTER TABLE DOCGIA
ALTER COLUMN GhiChu Memo;
5. Xa thuc tnh Ghichu trong bng DOCGIA.
ALTER TABLE DOCGIA
DROP COLUMN GhiChu;
6. Thc hin cc lnh sau y, mi lnh ny s cho kt qu nh th no?
Nu s khc nhau gia chng.
Cu 1:
INSERT INTO DOCGIA
VALUES(DHTL05,Nguyn Cng Thnh,Lp 41NC,22 );
Cu 2:
INSERT INTO DOCGIA(MaDG, TenDG, DiaChi)
VALUES(DHTL06,Nguyn Phng Lan,Lp 41NC );
7. Xa mt bn ghi c MaDG= DHTL01 trong bng DOCGIA.
DELETE FROM DOCGIA WHERE MaDG=DHTL01;
8. Xa nhng c gi c a ch l: 41NC trong bng DOCGIA.
DELETE FROM DOCGIA WHERE Diachi=41NC;
9. Sa a ch ca c gi c MaDG l TD001 thnh a ch mi l CVK3I.
UPDATE DOCGIA
SET (Diachi=CVK3I)
WHERE MaDG=TD001;

PHN II- NGN NG SQL 53


Chng 6 . THC HNH TNG HP

6.3 Bi s 2

1. To mt c s d liu (CSDL) dng qun l nhn vin, ly tn CSDL


l QLNhanVien.
2. Cu trc ca CSDL gm cc bng vi cc quan h sau:

a. NHANVIEN
Tn thuc tnh Kiu d liu Kch c Khun dng
MaNV K t 8 Ch hoa +s
HoTen K t 30
Congviec K t 50
Luong S
MaDV K t 4
MaPT K t 8 Ch hoa + s
(M ngi ph trch)
b. DONVI
Tn thuc tnh Kiu d liu Kch c Khun dng
MaDV K t 4 Ch hoa +s
TenDV K t 50

PHN II- NGN NG SQL 54


Chng 6 . THC HNH TNG HP

c. BACLUONG
Tn thuc tnh Kiu d liu Kch c Khun dng
MaBac K t 50 Ch hoa +s
BacCao S
BacThap S

Ch : Mi cu lnh to bng c vit bng 1 Query, t tn ln lt l


21, 2b, 2c.
3. Thm d liu (bng lnh INERT) cho bng NHANVIEN c kt qu
nh sau:
NHANVIEN
MaNV HoTen CongViec Luong MaDV
NV001 Phm Th Nhn Th k 500 0001

NV002 Hong Thanh Vn Gio vin 600 0001


NV003 Hong Th Lan Gio vin 200 0002
NV004 Trung Dng Th k 700 0003

4. Thm d liu (bng lnh INERT) cho bng DONVI c kt qu nh


sau:
DONVI
MaDV TenDV
0001 KHTN
0002 DHTL
0003 DHQG

5. Thm d liu (bng lnh INERT) cho bng BACLUONG c kt qu


nh sau:

BACLUONG
MaBac BacThap BacCao
1 400 500

2 501 600

3 601 800

6. Dng cu lnh truy vn d liu, a ra tt c thng tin v nhn vin.


7. a ra Hoten, Congviec, Luong ca tt c cc nhn vin.

PHN II- NGN NG SQL 55


Chng 6 . THC HNH TNG HP

8. a ra ton b cng vic ca cc nhn vin, cc gi tr khng trng nhau.


9. a ra Hoten, LuongQuy ca tt c cc nhn vin, vi LuongQuy= Luong*3.
10. a ra Hoten, Luong sp xp theo th t tng dn/ gim dn ca Luong.
11. a ra Hoten, Luong ca cc nhn vin c Luong>300.
12. a ra Hoten, Luong ca cc nhn vin c Luong>300 v lm cng vic l
Gio vin.
13. a ra nhng nhn vin c lng hoc 200, 300, 600.
14. a ra nhng nhn vin c Lng trong khong 300 n 600.
15. a ra Hoten, Congviec ca cc nhn vin c H tn bt u bng ch
Hong.
16. a ra lng trung bnh, lng ln nht, nh nht ca tt c cc nhn vin
trong bng NHANVIEN.
17. a ra Cngvic, Lng trung bnh ca tng loi cng vic.
18. a ra Cngvic, Lng trung bnh ca tt c cc nhn vin c Luong>200
theo tng loi cng vic.
19. a ra tng lng ca tng nhm cng vic trong tng n v.
20. a ra nhng Congviec v trung bnh lng ca cc cng vic c trung bnh
lng >=300
21. a ra nhng n v v lng ln nht ca cc n v c lng ln nht
>=300.
22. a ra Hoten, Congviec, TenDV ca tt c nhn vin.
23. Cu lnh sau cho kt qu nh th no.
SELECT HoTen, CongViec, TenDV
FROM NHANVIEN NV, DONVI DV
WHERE NV.MaDV= DV.MaDV;
24. a ra Hoten, Congviec, MaBac ca tt c nhn vin
25. a ra HoTen, Congviec, TenDV, Luong ca nhng nhn vin c
Luong>=500.
26. Cu lnh sau cho kt qu nh th no.
SELECT NV.MaNV, NV.Hoten, PT.MaNV, PT.Hoten
FROM NHANVIEN NV, NHANVIEN PT
WHERE (NV.MaNV=PT.MaPT) AND (NV.Luong>PT.Luong);
27. a ra nhng cng vic trong n v 1 c MaDV l 0001 v n v 2 c
MaDV l 0002.

PHN II- NGN NG SQL 56


Chng 6 . THC HNH TNG HP

28. a ra Hoten, TenDV, Congviec, Luong ca nhng ngi c lng ln hn


lng trung bnh ca ton b nhn vin.
29. a ra nhng nhn vin c lng ln hn ngi c lng ln nht trong n
v c tn l DHTL.
30. a ra Hoten, MaDV, Luong ca cc nhn vin c Luong=Luong thp nht
trong n v ca h.
31. a ra Hoten, MaDV, Luong ca cc nhn vin c Luong=Luong thp nht
trong mt n v no .
32. a ra Hoten, Luong ca cc nhn vin c Luong ln nht ca n v c m
n v l 0002.
33. a ra MaDV, AVG(Luong) ca n v c trung bnh lng ln hn lng
nh nht ca n v c m n v l 0003.

PHN II- NGN NG SQL 57


Chng 6 . THC HNH TNG HP

6.4 Bi s 3
Thc hin cc thao tc sau cho C s d liu dng qun l mt ca hng kinh
doanh.
I. NH NGHA D LIU
1. To c s d liu
To mt c s d liu dng qun l ca hng t tn l QLCH bao gm cc bng
c mi quan h nh sau:

Cu trc ca mi bng nh sau:


1. KHACH
Tn thuc tnh Kiu d liu Kch c Khun dng
Ma_khach K t 6 Ch hoa +s
Ten_kh K t 30 Ch u vit hoa
Diachi_kh K t 30 Ch u vit hoa

2. HANG
Tn thuc tnh Kiu d liu Kch c Khun dng
Ma_hang K t 6 Ch hoa+s
Ten_hang K t 15 Ch u vit hoa
Mota_hang K t 30 Ch u vit hoa

PHN II- NGN NG SQL 58


Chng 6 . THC HNH TNG HP

Don_vi K t 10 Ch thng

3. DONHANG
Tn thuc tnh Kiu d liu Kch c Khun dng
So_don K t 6 Ch hoa +s
Ma_khach K t 15 Ch hoa +s
Ngay_don Ngy 8 Dd/mm/yy

4. DONGDON
Tn thuc tnh Kiu d liu Kch c Khun dng
So_don K t 6 Ch hoa +s
Ma_hang K t 6 Ch hoa +s
So_luongd S 7 S nguyn

5. PHIEUGIAO
Tn thuc tnh Kiu d liu Kch c Khun dng
So_phieu K t 6 Ch hoa +s
Ma_khach K t 6 Ch hoa +s
Ngay_giao Ngy 30 Dd/mm/yy
Noi_giao K t 30
Tong_tien S 9 S thc

6. DONGPHIEU
Tn thuc tnh Kiu d liu Kch c Khun dng
So_phieu K t 6 Ch hoa+ s

Ma_hang K t 6 Ch hoa + s

Don_gia S 6 S thc
So_luonggi S 7 S thc

2. Sa i cu trc:
1. Thm mt thuc tnh:
- Trong bng KHACH, thm mt thuc tnh SoThich nhm lu vo
bng KHACH s thch ca khch hng.

PHN II- NGN NG SQL 59


Chng 6 . THC HNH TNG HP

- Trong bng HANG, thm hai thuc tnh l NoiCungCap v


NoiSanXuat nhm lu vo bng HANG thng tin v ni cung cp
hng ha v ni sn xut chng.
2. Thay i kiu ca mt thuc tnh.
- Trong bng KHACH, thay i kiu d liu cho trng SoThich, t
kiu Text thnh kiu Memo.
- Trong bang HANG, thay i kiu d liu cho trng NoiCungCap,
t kiu Text thnh kiu Number.
3. Xa mt thuc tnh.
- Trong bng HANG, hy xa 2 thuc tnh NoiCungCap v
NoiSanXuat.
- Trong bng KHACH, hy xa thuc tnh SoThich.
II. QUN TR D LIU
1. Thm gi tr vo cc dng ca bng
- Thm vo bng KHACH cc gi tr nh sau:
KHACH
Ma_khach Ten_kh diachi_kh
K001 o Minh Th i hc Quc Gia
K002 Nguyn Lin Dung BNC
K003 Phm Hong Nhung i hc Thy Li

- Thm vo bng DONHANG cc gi tr nh sau:


DONHANG
so_don Ma_khach ngay_don
DH001 K001 3/22/2002
DH002 K001 7/13/2003
DH003 K002 12/24/2002

- Thm vo tt c cc bng, mi bng mt s b gi tr ph hp.


Ch : Hy th trng hp thm ma_khach l K0010 vo bng
DONHANG th kt qu th no? Ti sao?
2. Thm gi tr cho mt s thuc tnh
- Thm gi tr vo bng KHACH c gi tr nh sau:

PHN II- NGN NG SQL 60


Chng 6 . THC HNH TNG HP

KHACH
Ma_khach Ten_kh Diachi_kh
K001 o Minh Th i hc Quc Gia
K002 Nguyn Lin Dung BNC
K003 Phm Hong Nhung i hc Thy Li
K004 Trnh Hng Cng
K005 Nguyn Vn Hi i hc Thy Li

- Thm gi tr vo bng HANG c gi tr nh sau:


HANG
ma_hang ten_hang Mota_hang don_vi
H001 Hoa loa kn Hoa trng, to Bng
H002 Hoa hng Nhiu mau Bng
H003 Hoa lan Cnh

3. Xa hng
- Xa mt hng c ma_hang = H001 trong bng HANG.
- Xa tt c cc khch hng c Diachi_kh = i hc Thy Li trong
bng KHACH.
- Xa khch hng c tn l Trnh Hng Cng.
4. Sa i gi tr ca mt hng.
- Sa i a ch ca khch hng thnh a ch mi l i hc Quc
Gia vi ma_khach l K002.
- Sa i tt c cc tn hng l Hoa lan thnh Hoa phong lan v
m t hng l Hng nhp khu t Lt
III. CC LNH TRUY VN D LIU
1. Xem ton b ni dung ca bng KHACH
2. Xem ton b ni dung ca bng HANG.
3. Xem ton b ni dung ca bng DONHANG.
4. a ra Tn v a ch ca tt c cc Khch hng trong bng
KHACH.
5. a ra Tn hng, M t hng v n v tnh ca tt c cc mt hng
trong bng HANG.
6. a ra tt c cc n v tnh dng tnh hng ha.
7. a ra tt c cc tn hng trong bng HANG.
8. a ra tt c cc a ch ca khch hng.

PHN II- NGN NG SQL 61


Chng 6 . THC HNH TNG HP

9. a ra so_phieu, ma_hang, don_gia, soluonggi v Thnh tin


(don_gia*so_luong) ca tt c cc hng trong bng PHIEU_GIAO.
10. a ra so_phieu, ma_hang, don_gia, soluonggi v Thnh tin
(don_gia*so_luong), s dng b danh la thanh_tien ca tt c cc
hng trong bng PHIEU_GIAO .
11. a ra tt c gi tr ca bng HANG theo th t gim dn ca
ma_hang.
12. a ra tt c cc gi tr ca bng PHIEUGIAO theo th t tng dn
(gim dn) ca tng tin (tong_tien).
13. a ra tt c cc khch hng c a ch l i hc Quc Gia trong
bng KHACH.
14. a ra So_phieu, Ma_khach trong bng PHIEUGIAO vi iu kin
Tong_
tien>=100.000, v sp xp theo iu kin gim dn ca Tong_tien.
15. a ra ten_hang, mota_hang ca nhng hng ha c don_vi c
tnh theo bng trong bng HANG.
16. a ra danh sch cc bn ghi bao gm so_phieu, ma_khach,
ngay_giao trong bng PHIEUGIAO vi iu kin Noi_giao l H
Ni v Tong_tien>50.000.
17. a ra danh sch cc bn ghi bao gm Ma_khach, Ten_khach trong
bng KHACH vi iu kin a ch ca khch i hc Quc Gia
hoc i hc Thy Li.
18. a ra nhng mt hng trong bng HANG c n v tnh l Bng,
Cnh hoc B.
19. a ra danh sch nhng khch hng (Ma_khach, Tong
_tien) nm trong bng PHIEUGIAO c Noi_giao nm trong s cc
a im sau: H Ni, H Ch Minh, Hi Phng.
20. a ra tt c nhng thng tin trong bng PHIEUGIAO vi iu kin
tong_tien nm trong khong t 100.000 n 500.000.
21. a ra ma_kh, ten_kh trong bng KHACH ca nhng khch hng
c h l Nguyn.
22. m s ln mua hng ca khch hng c ma_kh l K001 trong bng
PHIEUGIAO. Thuc tnh mi ny c t tn l SoLanMua.
23. Tnh tng tin trung bnh ca mi PHIEUGIAO. Thuc tnh mi ny
c t tn l TrungBinhPG.
24. Tnh tng tin trong bng PHIEUGIAO ca nhng khch hng c
ma_khach = K002.

PHN II- NGN NG SQL 62


Chng 6 . THC HNH TNG HP

25. Tnh tng s cc khch hng trong bng KHACH c a ch


(diachi_KH) l i hc Thy Li.
26. a ra ma_khach, ngay_giao, noi_giao trong bng PHIEUGIAO c
tong_tien thanh ton ln nht.
27. a ra ma_khach, ngay_giao, noi_giao trong bng PHIEUGIAO c
tong_tien thanh ton nh nht.

PHN II- NGN NG SQL 63


TI LIU THAM KHO

TI LIU THAM KHO


1. Date, C.J., and Darwen, H.: A Guide to the SQL Standard, 3rd ed., Addison-
Wesley.
2. Tin ch Book Online ca SQL Server 2000.
3. Tin ch Help ca Microsoft Access 2000.
4. Tin ch Help ca Oracle 9i.
5. Nguyn Vn V, SQL2, NXB Thng k.
6. Elmasri & Navathe: Fundamentals of Database Systems, International
Edition.

PHN II- NGN NG SQL 64

You might also like