TRƯỜNG ĐẠI HC KHOA HC HU
KHOA CÔNG NGH THÔNG TIN
G
GI
IÁ
ÁO
O
T
TR
RÌ
ÌN
NH
H
S
SQ
QL
L
(Lưu hành ni b)
Biên son: Trn Nguyên Phong
Huế, 2004
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
M
M
C
C
L
L
C
C
MC LC........................................................................................................................2
LI NÓI ĐẦU.................................................................................................................5
CHƯƠNG 1: .............................................................................7TNG QUAN V SQL
1.1 SQL là ngôn ng cơ s d liu quan h........................................................................... 7
1.2 Vai trò ca SQL................................................................................................................ 8
1.3 Tng quan v cơ s d liu quan h................................................................................. 9
1.3.1 Mô hình d liu quan h............................................................................................ 9
1.3.2 Bng (Table).............................................................................................................. 9
1.3.3 Khoá ca bng ......................................................................................................... 10
1.3.4 Mi quan h và khoá ngoài...................................................................................... 11
1.4 Sơ lược v SQL............................................................................................................... 12
1.4.1 Câu lnh SQL........................................................................................................... 12
1.4.2 Qui tc s dng tên trong SQL............................................................................... 14
1.4.3 Kiu d liu ............................................................................................................. 14
1.4.4 Giá tr NULL ........................................................................................................... 16
1.5 Kết chương...................................................................................................................... 16
CHƯƠNG 2: ......................................................18NGÔN NG THAO TÁC D LIU
2.1 Truy xut d liu vi câu lnh SELECT........................................................................ 18
2.1.1 Mnh đề FROM....................................................................................................... 19
2.1.2 Danh sách chn trong câu lnh SELECT ................................................................ 20
2.1.3 Ch định điu kin truy vn d liu ......................................................................... 25
2.1.4 To mi bng d liu t kết qu ca câu lnh SELECT ......................................... 29
2.1.5 Sp xếp kết qu truy vn.......................................................................................... 29
2.1.6 Phép hp .................................................................................................................. 31
2.1.7 Phép ni ................................................................................................................... 33
2.1.7.1 S dng phép ni.............................................................................................. 34
2.1.7.2 Các loi phép ni .............................................................................................. 36
2.1.7.4 S dng phép ni trong SQL2.......................................................................... 40
2.1.8 Thng kê d liu vi GROUP BY........................................................................... 43
2.1.9 Thng kê d liu vi COMPUTE............................................................................ 46
2.1.10 Truy vn con (Subquery)....................................................................................... 49
2.2 B sung, cp nht và xoá d liu.................................................................................... 53
2.2.1 B sung d liu........................................................................................................ 53
2.2.2 Cp nht d liu....................................................................................................... 54
2.2.3 Xoá d liu............................................................................................................... 56
Bài tp chương 2............................................................................................................. 58
CHƯƠNG 3: ..................................................69NGÔN NG ĐỊNH NGHĨA D LIU
2
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
3.1 To bng d liu ............................................................................................................. 69
3.1.1 Ràng buc CHECK.................................................................................................. 72
3.1.2 Ràng buc PRIMARY KEY.................................................................................... 74
3.1.3 Ràng buc UNIQUE................................................................................................ 76
3.1.4 Ràng buc FOREIGN KEY..................................................................................... 76
3.2 Sa đổi định nghĩa bng ................................................................................................. 79
3.3 Xoá bng......................................................................................................................... 81
3.4 Khung nhìn ..................................................................................................................... 82
3.4.1 To khung nhìn........................................................................................................ 84
3.4.2 Cp nht, b sung và xoá d liu thông qua khung nhìn......................................... 86
3.4.3 Sa đổi khung nhìn.................................................................................................. 89
3.4.4 Xoá khung nhìn........................................................................................................ 90
Bài tp chương 3............................................................................................................. 90
CHƯƠNG 4: ........................................................................96BO MT TRONG SQL
4.1 Các khái nim ................................................................................................................. 96
4.2 Cp phát quyn ............................................................................................................... 97
4.2.1 Cp phát quyn cho người dùng trên các đối tượng cơ s d liu .......................... 97
4.2.2 Cp phát quyn thc thi các câu lnh...................................................................... 99
4.3 Thu hi quyn............................................................................................................... 100
4.3.1 Thu hi quyn trên đối tượng cơ s d liu:.......................................................... 100
4.3.2 Thu hi quyn thc thi các câu lênh:..................................................................... 103
CHƯƠNG 5: .......................................104TH TC LƯU TR, HÀM VÀ TRIGGER
5.1 Th tc lưu tr (stored procedure)................................................................................ 104
5.1.1 Các khái nim ........................................................................................................ 104
5.1.2 To th tc lưu tr................................................................................................. 105
5.1.3 Li gi th tc lưu tr............................................................................................ 107
5.1.4 S dng biến trong th tc..................................................................................... 107
5.1.5 Giá tr tr v ca tham s trong th tc lưu tr...................................................... 108
5.1.6 Tham s vi giá tr mc định................................................................................. 109
5.1.7 Sa đổi th tc....................................................................................................... 110
5.2 Hàm do người dùng định nghĩa .................................................................................... 111
5.2.1 Định nghĩa và s dng hàm................................................................................... 111
5.2.2 Hàm vi giá tr tr v là “d liu kiu bng”......................................................... 112
5.3 Trigger .......................................................................................................................... 116
5.3.1 Định nghĩa trigger.................................................................................................. 117
5.3.2 S dng mnh đề IF UPDATE trong trigger......................................................... 119
5.3.3 ROLLBACK TRANSACTION và trigger............................................................ 121
5.3.4 S dng trigger trong trường hp câu lnh INSERT, UPDATE và DELETE có tác
động đến nhiu dòng d liu........................................................................................... 122
5.3.4.1 S dng truy vn con..................................................................................... 122
5.3.4.2 S dng biến con tr....................................................................................... 125
Bài tp chương 5........................................................................................................... 127
CHƯƠNG 6: ....................................................................................132GIAO TÁC SQL
6.1 Giao tác và các tính cht ca giao tác........................................................................... 132
6.2 Mô hình giao tác trong SQL ........................................................................................ 133
3
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
6.3 Giao tác lng nhau........................................................................................................ 136
PH LC.....................................................................................................................138
A. Cơ s d liu mu s dng trong giáo trình .................................................................. 138
B. Mt s hàm thường s dng .......................................................................................... 141
B.1 Các hàm trên d liu kiu chui .............................................................................. 141
B.2 Các hàm trên d liu kiu ngày gi......................................................................... 143
B.3 Hàm chuyn đổi kiu ............................................................................................... 144
TÀI LIU THAM KHO............................................................................................146
4
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
L
L
I
I
N
NÓ
ÓI
I
Đ
Đ
U
U
Ngôn ng hi có cu trúc (SQL), có tin thân là SEQUEL, là mt ngôn ng
được IBM phát trin và s dng trong h cơ s d liu th nghim có tên là System/R
vào năm 1974, chính thc được ANSI/ISO công nhn là mt chun ngôn ng s dng
trong cơ s d liu quan h vào năm 1986. Cho đến hin nay, SQL đã được s dng
ph bin trong các h qun tr cơ s d liu thương mi và có vai trò quan trng trong
nhng h thng này.
Được s động viên ca các đồng nghip trong Khoa Công ngh Thông tin
(Trưòng Đại hc Khoa hc - Đại hc Huế), chúng tôi mnh dn viết và gii thiu Giáo
trình SQL đến bn đọc. Trong giáo trình này, chúng tôi không có tham vng đề cp đến
mi khía cnh ca SQL mà ch mong mun rng đây s là tài liu tham kho tương đối
đầy đủ v các câu lnh thường được s dng trong SQL. Giáo trình được chia thành
sáu chương vi ni dung như sau:
Chương 1 gii thiu tng quan v SQL và mt s khái cơ bn liên quan đến cơ s
d liu quan h.
Chương 2 đưc dành để bàn lun đến các câu lnh thao tác d liu bao gm
SELECT, INSERT, UPDATE và DELETE, trong đó tp trung nhiu vào câu lnh
SELECT.
Chương 3 trình bày mt s câu lnh cơ bn được s dng trong định nghĩa các đối
tượng cơ s d liu.
Mt s vn đề liên quan đến bo mt d liu trong SQL được đề cp đến trong
chương 4.
Ni dung ca chương 5 liên quan đến vic s dng th tc lưu tr, hàm và trigger
trong cơ s d liu.
Trong chương cui cùng, chương 6, chúng tôi gii thiu đến bn đọc mt s vn đề
liên quan đến x lý giao tác trong SQL
Ngoài sáu chương trên, phn ph lc cui giáo trình đề cp đến cơ s d liu
mu được s dng trong hu hết các ví d và mt s hàm thường được s dng trong
h qun tr SQL Server 2000 để bn đọc tin trong vic tra cu.
So vi chun SQL do ANSI/ISO đề xut, bn thân các h qun tr cơ s d liu
quan h thương mi li có th có mt s thay đổi nào đó; Điu này đôi khi dn đến s
khác bit, mc dù không đáng k, gia SQL chun và SQL được s dng trong các h
qun tr cơ s d liu c th. Trong giáo trình này, chúng tôi chn h qun tr cơ s d
5