Download as pdf or txt
Download as pdf or txt
You are on page 1of 64

P H N

C S
D L I U

II
NGN NG SQL

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

4
5

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
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
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
Chng 4. NGN NG IU KHIN (DCL) ............................................. 19
4.1
Lnh GRANT.......................................................................................... 19
4.2
Lnh REVOKE ....................................................................................... 20
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

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

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
Type Hocsinh=Record
MaHS: String[5]; TenHS: String[30];
TB: Real; Xeploai: String[30];
End;
HS: Array[1..100] Of Hocsinh;
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

SQL
-

To bng HOCSINH
S dng lnh SELECT
Select TenHS, TB
From HOCSINH
Where TB>=5.0;

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

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

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

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
liu

Miu t

Kch c

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


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

Kh nng lu tr l 8 byte.

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

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


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

S dng 1 bite lu tr.

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


phn s).

Khng

2 bytes

None

4 bytes

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


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

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

4 bytes

Double

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

8 bytes

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

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

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
DONVI(MaDV)
)

KEY(madv)

REFERENCES

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

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
dn(DESCendent)

5.2 V d:
Xt bng: NHANVIEN

PHN II- NGN NG SQL

21

sp xp theo chiu gim

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
Th k
Gio vin
Gio vin
Th k

CongViec
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
Phm Th Nhn
Hong Thanh Vn
Hong Th Lan
Trung Dng

PHN II- NGN NG SQL

LuongNam
6000
7200
2400
8400

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
Hong Th Lan

Luong
200

Phm Th Nhn
Hong Thanh Vn
Trung Dng

500
600
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
Phm Th Nhn
Hong Thanh Vn
Trung Dng

Luong
500
600
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
Hong Thanh Vn
Hong Th Lan

PHN II- NGN NG SQL

Congviec
Gio vin
Gio vin

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
TRUNC
TRUNC
TRUNC
FROM DUMMY;

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

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
1300

6002500
1690000

1.4706E+10
2197000000

312500000
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
---------5000
2450
1300

SQRT(SAL)
---------70.7106781
49.4974747
36.0555128

SQRT(40) SQRT(COMM)
---------- ---------6.32455532
6.32455532
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)
-------------accounting
research
sales
operations

LOWER('SQL
---------sql course
sql course
sql course
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)
-------------Accounting
Research
Sales
Operations

INITCAP(LOC)
------------New York
Dallas
Chicago
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,'*')
-------------------ACCOUNTING
******
RESEARCH
******
SALES
******
OPERATIONS
******

RPAD(DNAME,20)
-------------------ACCOUNTING
RESEARCH
SALES
OPERATIONS

RPAD(DEPTNO,20,'')
-------------------10
20
30
40

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

SUBSTR(DNAME,
------------CCOUNTING
ESEARCH
ALES
PERATIONS

SUBST
----COUNT
SEARC
LES
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
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS

LTRIM(DNAME,'A
-------------CCOUNTING
RESEARCH
SALES
OPERATIONS

LTRIM(DNAME,'A
-------------CCOUNTING
RESEARCH
LES
OPERATIONS

LTRIM(DNAME,'A
-------------CCOUNTING
RESEARCH
LES
ERATIONS

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

RTRIM(DNAME,'A
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS

RTRIM(DNAME,'A
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS

RTRIM(DNAME,'A
-------------ACCOUNTING
RESEARCH
SALES
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
---------KING
CLARK
MILLER

TRANSLATE(
---------KING
FLARK
MILLER

PHN II- NGN NG SQL

JOB
--------PRESIDENT
MANAGER
CLERK

TRANSLATE
--------PTESIDENT
MINIGET
CLETK

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
--------MANAGER
MANAGER
SALESMAN
SALESMAN
SALESMAN
CLERK
SALESMAN
ANALYST
CLERK
ANALYST
CLERK

REPLACE(JOB,'SALESMAN',
----------------------MANAGER
MANAGER
SALESPERSON
SALESPERSON
SALESPERSON
CLERK
SALESPERSON
ANALYST
CLERK
ANALYST
CLERK

ENAME
--------BLAKE
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH
SCOTT
ADAMS

REPLACE(ENAME,'CO','
--------------BLAKE
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH
SPRTT
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
---------02-04-1981
03-12-1981
17-12-1980
09-12-1982
12-01-1983

ADD_MONTHS
---------02-07-1981
03-03-1982
17-03-1981
09-03-1983
12-04-1983

ADD_MONTHS
---------02-01-1981
03-09-1981
17-09-1980
09-09-1982
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
---------17-11-1981
09-06-1981
23-01-1982

NEXT_DAY(H
---------20-11-1981
12-06-1981
29-01-1982

NEXT_DAY(H
---------20-11-1981
12-06-1981
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
---------28-03-2001
28-03-2001
28-03-2001
28-03-2001
28-03-2001

LAST_DAY(S
---------31-03-2001
31-03-2001
31-03-2001
31-03-2001
31-03-2001

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

LAST_DAY(H
---------30-04-1981
31-12-1981
31-12-1980
31-12-1982
31-01-1983

LAST_DAY('
---------31-01-2001
31-01-2001
31-01-2001
31-01-2001
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;

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

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
9
0
$
L
.
,
MI
PR
EEE
V
B

M t
Xc nh hin th 1 s
Hin th c s 0 u nu di
khun dng ln hn s hin c
Thm k t tin t
Thm k t tin t bn a
Du thp phn
Du phn cch phn nghn
Du m bn phi ( vi cc gi
tr m)
Thm ngoc nhn vo cc gi tr
m
Chuyn sang hin th s E
Nhn vi 10 n, n l s cc s 9
t sau V
Hin th c gi tr 0 nu = 0.

PHN II- NGN NG SQL

36

V d
999999
099999

Kt qu
1234
001234

$999999
L999999
999999.99
999,999
999999MI

$1234
FF1234
1234.00
1,234
1234-

999999PR

<1234>

99.9999RRRR 1.234E+03
9999V99
123400
B9999.99

1234.00

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
500

LuongCN
700

LuongTN
200

TongNV
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
Gio vin
Th k

PHN II- NGN NG SQL

LuongTB
400
600

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
Gio vin

LuongTB
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
0001

MaxLuong
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
Phm Th Nhn

PHN II- NGN NG SQL

CongViec
Th k

39

TenDV
KHTN

Chng 5. TRUY VN D LIU (SELECT)


HoTen
Hong Thanh Vn
Hong Th Lan
Trung Dng

CongViec
Gio vin
Gio vin
Th k

TenDV
KHTN
DHTL
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

Hong Thanh Vn

Gio vin

Trung Dng

Th k

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
NV002

NV.Hoten
Hong Thanh Vn

PT.MaNV
NV001

PT.Hoten
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
01
02
03
04

TenKH
Hong Thanh Vn
L Th Nhn
Phan Thanh Ha
Phm Hng Thanh

DONHANG:
MaSP
H102
H106
H301
PHN II- NGN NG SQL

TenSP
My in
Bn
Gh

41

MaKH
01
03
03

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
Hong Thanh Vn
Phan Thanh Ha
Phan Thanh Ha

TenSP
My in
Bn
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
Hong Thanh Vn
L Th Nhn
Phan Thanh Ha
Phan Thanh Ha
Phm Hng Thanh

TenSP
My in
Bn
Gh

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
Hong Thanh Vn
Phan Thanh Ha
Phan Thanh Ha

TenSP
My in
Bn
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
NV002
NV003

Phm Th Nhn
Hong Thanh Vn
Hong Th Lan

Th k
Gio vin
Gio vin

500
600
200

0001
0001
0002

NV002
NV003
NV002

NV004
NV005
NV006

Trung Dng
Vn Hi
Nguyn Nam Hi

Th k
Bo v
Gim c

700
100
1000

0003
0001
0001

NV002
NV002

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
Nguyn Nam Hi

TenDV
KHTN

Congviec
Gim c

Luong
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 :
ANY v SOME :
ALL :
EXISTS :

Khng thuc
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 =
So snh mt gi tr vi mi gi tr trong danh sch hay trong kt
qu tr v ca cu hi con.
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
NV001
NV002

HoTen
Phm Th Nhn
Hong Thanh Vn

CongViec
Th k
Gio vin

Luong
500
600

MaDV
0001
0001

MaPT
NV002
NV003

NV003
NV004
NV005

Hong Th Lan
Trung Dng
Vn Hi

Gio vin
Th k
Bo v

200
700
100

0002
0003
0001

NV002
NV002
NV002

NV006

Nguyn Nam Hi

Gim c

1000

0001

NV007
NV008

Nguyn Hong Lan


Nguyn Thanh Ngc

Gio vin
Gio vin

500
700

0001
0002

NV006

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
Phm Th Nhn

Luong
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
NV001
NV002

HoTen
Phm Th Nhn
Hong Thanh Vn

CongViec
Th k
Gio vin

Luong
500
600

MaDV
0001
0001

MaPT
NV002
NV003

NV003
NV004
NV005

Hong Th Lan
Trung Dng
Vn Hi

Gio vin
Th k
Bo v

200
700
100

0002
0003
0001

NV002
NV002
NV002

NV006

Nguyn Nam Hi

Gim c

1000

0001

NV007
NV008

Nguyn Hong Lan


Nguyn Thanh Ngc

Gio vin
Gio vin

500
700

0001
0002

NV006

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

Ch hoa +s

HoTen

K t

30

Congviec

K t

50

Luong

MaDV

K t

MaPT

K t

Tn thuc tnh

Kiu d liu

Kch c

Khun dng

MaDV

K t

Ch hoa +s

TenDV

K t

50

b.

Ch hoa + s
(M ngi ph trch)

DONVI

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

BacThap

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

400

500

501

600

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

Ch hoa +s

Ten_kh

K t

30

Ch u vit hoa

Diachi_kh

K t

30

Ch u vit hoa

Tn thuc tnh

Kiu d liu

Kch c

Khun dng

Ma_hang

K t

Ch hoa+s

Ten_hang

K t

15

Ch u vit hoa

Mota_hang

K t

30

Ch u vit hoa

2. HANG

PHN II- NGN NG SQL

58

Chng 6 . THC HNH TNG HP

Don_vi

K t

10

Ch thng

Tn thuc tnh

Kiu d liu

Kch c

Khun dng

So_don

K t

Ch hoa +s

Ma_khach

K t

15

Ch hoa +s

Ngay_don

Ngy

Dd/mm/yy

Tn thuc tnh

Kiu d liu

Kch c

Khun dng

So_don

K t

Ch hoa +s

Ma_hang

K t

Ch hoa +s

So_luongd

S nguyn

Tn thuc tnh

Kiu d liu

Kch c

Khun dng

So_phieu

K t

Ch hoa +s

Ma_khach

K t

Ch hoa +s

Ngay_giao

Ngy

30

Dd/mm/yy

Noi_giao

K t

30

Tong_tien

3. DONHANG

4. DONGDON

5. PHIEUGIAO

S thc

6. DONGPHIEU
Tn thuc tnh

Kiu d liu

Kch c

Khun dng

So_phieu

K t

Ch hoa+ s

Ma_hang

K t

Ch hoa + s

Don_gia

S thc

So_luonggi

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
K001
o Minh Th
K002
Nguyn Lin Dung
K003
Phm Hong Nhung

diachi_kh
i hc Quc Gia
BNC
i hc Thy Li

Thm vo bng DONHANG cc gi tr nh sau:


DONHANG

so_don
DH001

Ma_khach
K001

ngay_don
3/22/2002

DH002
DH003

K001
K002

7/13/2003
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


bng KHACH.

Xa khch hng c tn l Trnh Hng Cng.

hc Thy Li

trong

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., AddisonWesley.

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