Tài liệu Giáo trình hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2000: HOÀNG DANH LONG
K50-CNTT-Đ I H C VINHẠ Ọ
M C L CỤ Ụ
CH NG I. GI I THI U SQL SERVER 2000ƯƠ Ớ Ệ ........................................................7
I.1 GI I THI U: Ớ Ệ ....................................................................................................7
I.2 L U TR D LI U TRONG MS SQL SERVER 2000Ư Ữ Ữ Ệ ................................7
I.3 CÁC CÔNG C T NG TÁC V I SQL SERVER Ụ ƯƠ Ớ ....................................8
I.3.1 Enterprise Manager (EM): ........................................................................8
I.3.2 Query Analyzer (QA): ...............................................................................9
CH NG II. THÀNH PH N C A SQL SERVER 2000ƯƠ Ầ Ủ ........................................11
II.1 CÁC THÀNH PH N C A SQL SERVER 2000Ầ Ủ .........................................11
II.2 C S D LI U (CSDL)Ơ Ở Ữ Ệ .............................................................................12
II.2.1 Master: .........................
54 trang |
Chia sẻ: hunglv | Lượt xem: 1270 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2000, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
HOÀNG DANH LONG
K50-CNTT-Đ I H C VINHẠ Ọ
M C L CỤ Ụ
CH NG I. GI I THI U SQL SERVER 2000ƯƠ Ớ Ệ ........................................................7
I.1 GI I THI U: Ớ Ệ ....................................................................................................7
I.2 L U TR D LI U TRONG MS SQL SERVER 2000Ư Ữ Ữ Ệ ................................7
I.3 CÁC CÔNG C T NG TÁC V I SQL SERVER Ụ ƯƠ Ớ ....................................8
I.3.1 Enterprise Manager (EM): ........................................................................8
I.3.2 Query Analyzer (QA): ...............................................................................9
CH NG II. THÀNH PH N C A SQL SERVER 2000ƯƠ Ầ Ủ ........................................11
II.1 CÁC THÀNH PH N C A SQL SERVER 2000Ầ Ủ .........................................11
II.2 C S D LI U (CSDL)Ơ Ở Ữ Ệ .............................................................................12
II.2.1 Master: ......................................................................................................12
II.2.2 Model: ......................................................................................................12
II.2.3 MSDB: .....................................................................................................12
II.2.4 TempDB: ..................................................................................................12
II.2.5 Pubs: .........................................................................................................12
II.2.6 Northwind: ...............................................................................................13
II.3 CÁC Đ I T NG BÊN TRONG M T CSDLỐ ƯỢ Ộ .........................................13
II.3.1 B ng (Table): ả ...........................................................................................13
II.3.2 Khung nhìn (View): ..................................................................................13
II.3.3 L c đ quan h (Diagram): ượ ồ ệ ...............................................................13
II.3.4 Ch m c (Index): ỉ ụ .....................................................................................13
II.3.5 Trigger: ....................................................................................................14
II.3.6 Ràng bu c (Constraint): ộ ........................................................................14
II.3.7 Th t c th ng trú (Stored Procedure): ủ ụ ườ ............................................14
II.4 KI U D LI U (DATATYPE)Ể Ữ Ệ .....................................................................14
CH NG III. THAO TÁC CĂN B N TRÊN SQL SERVER ƯƠ Ả ...............................16
III.1 T O CSDLẠ .....................................................................................................16
III.1.1 T o b ng dòng l nh v i QAạ ằ ệ ớ ................................................................16
III.1.2 T o CSDL b ng giao di n Enterprise Manager: ạ ằ ệ ..............................17
III.2 T O B NG (TABLE)Ạ Ả ...................................................................................18
III.2.1 T o b ng dòng l nh v i QAạ ằ ệ ớ ................................................................18
III.2.2 T o b ng giao di n EM: ạ ằ ệ ......................................................................19
III.3 THAY Đ I C U TRÚC B NG: Ổ Ấ Ả ................................................................19
III.3.1 Thay đ i b ng dòng l nh v i QAổ ằ ệ ớ ........................................................19
III.3.2 Thay đ i b ng giao di n EM: ổ ằ ệ .............................................................20
III.4 XOÁ : .............................................................................................................20
III.4.1 Xoá CSDL: .............................................................................................20
III.4.2 Xoá b ng: ả ...............................................................................................20
III.5 T O SCRIPT: Ạ ..............................................................................................20
CH NG IV. CHU N HOÁ VÀ QUAN HƯƠ Ẩ Ệ ..........................................................21
IV.1 L C Đ QUAN H (DIAGRAM)ƯỢ Ồ Ệ ..........................................................21
CH NG V. KHUNG NHÌN (VIEWS)ƯƠ ...................................................................24
V.1 KHÁI NI M C B NỆ Ơ Ả ...................................................................................24
V.2 T O VIEW: Ạ ....................................................................................................24
V.2.1 T o b ng dòng l nh v i QAạ ằ ệ ớ ..................................................................24
V.2.2 T o b ng giao di n EM: ạ ằ ệ .......................................................................24
CH NG VI. QU N TR CSDL. CÁC THAO TÁC BACKUP, RESTORE,ƯƠ Ả Ị
IMPORT, EXPORT ....................................................................................................27
VI.1 CĂN B N V QU N TR CSDLẢ Ề Ả Ị ................................................................27
VI.2 SAO L U (BACKUP)VÀ PH C H I (RESTORE) Ư Ụ Ồ ................................27
VI.2.1 Backup ....................................................................................................27
VI.2.2 Restore ....................................................................................................29
VI.3 IMPORT – EXPORT ....................................................................................30
VI.3.1 IMPORT .................................................................................................30
VI.3.2 EXPORT .................................................................................................31
CH NG VII. SCRIPT VÀ BATCHƯƠ .......................................................................33
VII.1 KHÁI NI M V SCRIPT Ệ Ề ..........................................................................33
VII.2 BATCH .........................................................................................................33
VII.3 SCRIPT Đ N GI N Ơ Ả ..................................................................................33
VII.3.1 USE: ........................................................................................................34
VII.3.2 Khai báo bi n trong SQL Server: ế ......................................................34
VII.3.3 OSQL: ....................................................................................................34
VII.3.4 SQL đ ng: ộ ............................................................................................34
CH NG VIII. CÁC HÀM VÀ BI U TH C H TR TRUY V N. ƯƠ Ể Ứ Ỗ Ợ Ấ ................35
VIII.1 CÁC HÀM VÀ BI U TH C H TR TRUY V NỂ Ứ Ỗ Ợ Ấ .............................35
VIII.1.1 AVG: ....................................................................................................35
VIII.1.2 Min : .....................................................................................................35
VIII.1.3 Max : ....................................................................................................35
VIII.1.4 Count .....................................................................................................35
VIII.1.5 Sum: .....................................................................................................35
VIII.2 CÁC HÀM X LÝ CHU I Ử Ỗ .....................................................................35
VIII.2.1 ASCII: ..................................................................................................35
VIII.2.2 Char: ....................................................................................................36
VIII.2.3 Upper: ..................................................................................................36
VIII.2.4 Lower: ..................................................................................................36
VIII.2.5 Len: ......................................................................................................36
VIII.2.6 Ltrim: ...................................................................................................36
VIII.2.7 Rtrim: ...................................................................................................36
VIII.2.8 Left: ......................................................................................................36
VIII.2.9 Right: ....................................................................................................36
VIII.2.10 CharIndex: ........................................................................................36
VIII.3 CÁC HÀM TH I GIAN Ờ ...........................................................................36
VIII.3.1 GetDate(): ............................................................................................36
VIII.3.2 DatePart(): ...........................................................................................37
VIII.3.3 DateDiff(): ............................................................................................37
VIII.3.4 Day(): ....................................................................................................37
VIII.3.5 Month(): ...............................................................................................37
VIII.3.6 Year(): ..................................................................................................37
VIII.4 CÁC HÀM TOÁN H C Ọ ...........................................................................37
VIII.4.1 Square: .................................................................................................37
VIII.4.2 Sqrt: ......................................................................................................37
VIII.4.3 Round: ..................................................................................................37
VIII.5 CÁC HÀM CHUY N Đ I Ể Ổ ......................................................................37
VIII.5.1 Cast: .....................................................................................................37
VIII.5.2 Convert: ...............................................................................................37
CH NG IX. TH T C TH NG TRÚ STORED PROCEDUREƯƠ Ủ Ụ ƯỜ ....................38
IX.1 GI I THI U CHUNG Ớ Ệ .................................................................................38
IX.2 T O M T SP Ạ Ộ ...............................................................................................38
IX.3 XOÁ M T SP Ộ ...............................................................................................39
IX.4 THAM S TRONG SP Ố ................................................................................40
IX.4.1 Khai báo tham s :ố .................................................................................40
IX.4.2 Cung c p giá tr m c đ nh: ấ ị ặ ị .................................................................40
IX.4.3 Tham s output:ố ....................................................................................40
IX.5 CÁC L NH ĐI U KHI N Ệ Ề Ể ..........................................................................41
IX.5.1 L nh đi u khi n IF … ELSEệ ề ể .............................................................41
IX.5.2 L nh đi u khi n CASEệ ề ể .......................................................................41
IX.5.3 L nh đi u khi n WHILEệ ề ể ....................................................................42
IX.5.4 L nh đi u khi n WAITFOR:ệ ề ể .............................................................42
CH NG X. HÀM NG I DÙNG VÀ HÀM H TH NG ƯƠ ƯỜ Ệ Ố ................................43
X.1 KHÁI NI M HÀM NG I DÙNG Ệ ƯỜ .............................................................43
X.2 T O VÀ XOÁ HÀM NG I DÙNG Ạ ƯỜ ..........................................................43
X.2.1 T o hàm ng i dùngạ ườ ...............................................................................43
X.2.2 Xoá hàm ng i dùngườ ...............................................................................43
X.3 HÀM H TH NG Ệ Ố .........................................................................................43
X.3.1 T o hàm h th ng t hàm ng i dùng: ạ ệ ố ừ ườ .............................................43
CH NG XI. TRIGGERƯƠ ..........................................................................................44
XI.1 KHÁI NI M: Ệ .................................................................................................44
XI.2 PHÂN LO I Ạ ..................................................................................................44
XI.3 T O TRIGGERẠ .............................................................................................44
XI.3.1 Cú pháp ...................................................................................................44
XI.3.2 T o Trigger b ng EM. ạ ằ .........................................................................45
CH NG XII. CHUY N TÁC (TRANSACTION) VÀ KHOÁ (LOCK)ƯƠ Ể .............47
XII.1 KHÁI NI M CHUY N TÁC Ệ Ể ....................................................................47
XII.2 KHOÁ (LOCK) VÀ Đ NG HÀNH (CONCURRENCY)Ồ ........................47
CH NG XIII. S D NG NGÔN NG L P TRÌNH T NG TÁC V I SQLƯƠ Ử Ụ Ữ Ậ ƯƠ Ớ
SERVER ......................................................................................................................49
XIII.1 L P TRÌNH B NG ASPẬ Ằ ...........................................................................49
XIII.1.1 K t n i đ n CSDL SQL Server: ế ố ế ......................................................49
XIII.1.2 Th c thi câu l nh SQL: ự ệ .....................................................................49
XIII.1.3 Thao tác v i các b n ghi c a m t b ng: ớ ả ủ ộ ả ........................................49
XIII.1.4 C p nh t vào CSDL b ng Recordset: ậ ậ ằ ............................................50
XIII.1.5 Th c thi m t SP c a SQL Server ự ộ ủ ...................................................51
XIII.2 L P TRÌNH B NG VISUAL BASIC Ậ Ằ .....................................................51
XIII.2.1 K t n i đ n CSDL: ế ố ế ...........................................................................51
XIII.2.2 Th c hi n câu l nh SQL:ự ệ ệ ..................................................................52
XIII.2.3 Th c thi SPự ...........................................................................................52
XIII.2.4 Thao tác v i b n ghiớ ả ...........................................................................52
CH NG XIV. M T S V N Đ NÂNG CAO. ƯƠ Ộ Ố Ấ Ề .................................................54
XIV.1 SECURITY ..................................................................................................54
XIV.2 CHUY N TÁC VÀ TRUY V N PHÂN TÁN Ể Ấ ........................................54
XIV.3 XML ............................................................................................................54
XIV.4 TÌM KI M FULL TEXT SEARCHẾ .........................................................54
XIV.5 D CH V PHÂN TÍCH ANALYSIS SERVICESỊ Ụ ...................................54
XIV.6 DATABASE REPLICATE .........................................................................54
XIV.7 ENGLISH QUERY .....................................................................................54
L I GI I THI UỜ Ớ Ệ
Giáo trình h qu n tr c s d li u MS SQL Server 2000 cung c p cho sinhệ ả ị ơ ở ữ ệ ấ
viên các khái ni m lý thuy t căn b n và t ng đ i đ y đ v SQL Serverệ ế ả ươ ố ầ ủ ề
2000.
Giáo trình có minh ho b ng ví d các k thu t thao tác v i SQL Server 2000ạ ằ ụ ỹ ậ ớ
giúp cho sinh viên có th làm vi c th c t trên SQL Server 2000.ể ệ ự ế
M t s các khái ni m căn b n và quen thu c v CSDL quan h mà sinh viênộ ố ệ ả ộ ề ệ
đã đ c trang b các môn h c khác nh Access, ngôn ng truy v n SQL..ượ ị ở ọ ư ữ ấ
đ c dùng trong giáo trình mà không gi i thích l i. ượ ả ạ
Do ch ng trình gi i h n cho 60 ti t gi ng d y nên m t vài n i dung nângươ ớ ạ ế ả ạ ộ ộ
cao c a SQL Server ch gi i thi u s l c. ủ ỉ ớ ệ ơ ượ
Giáo trình đ c so n đ ph c v k p th i các l p đào t o CNTT c a Vi nượ ạ ể ụ ụ ị ờ ớ ạ ủ ệ
nên không th tránh đ c nhi u thi u sót. R t mong nh n đ c s đóng gópể ượ ề ế ấ ậ ượ ự
c a các th y cô và các h c viên các khoá đ chung tôi có th b khuy t k pủ ầ ọ ể ể ổ ế ị
th i.ờ
CH NG I. ƯƠ GI I THI U SQL SERVER 2000Ớ Ệ
I.1 GI I THI U: Ớ Ệ
Đ i v i các ng d ng l n, m t thành ph n không th thi u là h th ng l uố ớ ứ ụ ớ ộ ầ ể ế ệ ố ư
tr d li u, dù cho chúng ta đang xây d ng m t website th ng m i đi n tữ ữ ệ ự ộ ươ ạ ệ ử
hay m t ng d ng Windows, t t c đ u c n đ n m t ki n trúc l u tr dộ ứ ụ ấ ả ề ầ ế ộ ế ư ữ ữ
li u tin c y, hi u qu , đã đ c ch ng minh. SQL Server 2000 là m t công cệ ậ ệ ả ượ ứ ộ ụ
đáp ng đ c nh ng nhu c u đó. Thích h p v i quy mô l n, đ tin c y cao làứ ượ ữ ầ ợ ớ ớ ộ ậ
nh ng đ c tr ng c a SQL. ữ ặ ư ủ
SQL Server 2000 là s n ph m m i nh t trong dòng s n ph m SQL Server, làả ẩ ớ ấ ả ẩ
m t đ i di n c a th h Server trong công ngh DOT NET c a Microsoft.ộ ạ ệ ủ ế ệ ệ ủ
Nâng c p t phiên b n 7.0, nó đ c tích h p thêm nhi u tính năng nâng cao:ấ ừ ả ượ ợ ề
h tr XML, OLAP, các kh năng khai phá d li u, tích h p qu n tr cùngỗ ợ ả ữ ệ ợ ả ị
v i Win2k Active Directory, các u đi m v hi u năng, kh năng s d ng,ớ ư ể ề ệ ả ử ụ
kh năng l p trình… Đây là m t h qu n tr c s d li u t ng đ i ph cả ậ ộ ệ ả ị ơ ở ữ ệ ươ ố ứ
t p dùng cho môi tr ng máy ch , v i các ng d ng xí nghi p l n.ạ ườ ủ ớ ứ ụ ệ ớ
Đ khai thác d li u c a m t h C s d li u (CSDL), ng i ta xây d ngể ữ ệ ủ ộ ệ ơ ở ữ ệ ườ ự
các ng d ng b ng nh ng ngôn ng l p trình t ng tác v i d li u l u trứ ụ ằ ữ ữ ậ ươ ớ ữ ệ ư ữ
trong CSDL. B n thân SQL Server thu n tuý là CSDL, không nh Oracle cóả ầ ư
tích h p Java, các công c thi t k Form và Report, hay nh Access có tíchợ ụ ế ế ư
h p kh năng thi t k Form và Report…Vì v y đ cho phép ng i dùng th cợ ả ế ế ậ ể ườ ự
hi n các chuy n tác v i CSDL SQL, c n xây d ng ng d ng phát tri n b ngệ ể ớ ầ ự ứ ụ ể ằ
m t s ngôn ng nh Visual C++, Visual Basic, ASP… ộ ố ữ ư
I.2 L U TR D LI U TRONG MS SQL SERVER 2000Ư Ữ Ữ Ệ
SQL Server có c ch qu n lý file đ i v i CSDL t ng đ i ph c t p. M iơ ế ả ố ớ ươ ố ứ ạ ỗ
CSDL đ c l u tr v t lý bao g m ít nh t 1 file d li u chính v i đuôi .mdfượ ư ữ ậ ồ ấ ữ ệ ớ
(Primary Data File), có th có thêm 1 ho c nhi u file d li u ph v i đuôi .ndfể ặ ề ữ ệ ụ ớ
(Secondary Data File), và file log đuôi .ldf (Transaction Log File) ghi l i nh t kýạ ậ
các chuy n tác. ể
Ngoài ra còn có khái ni m FileGroup, t c là nhóm các file c a CSDL thành cácệ ứ ủ
group. M i CSDL có ít nh t m t FileGroup chính (Primary FileGroup), CSDLỗ ấ ộ
đó có th có thêm các FileGroup khác n a. ể ữ
Vi c phân chia nhi u file d li u và FileGroup nh m m c đích c i thi n hi uệ ề ữ ệ ằ ụ ả ệ ệ
năng x lý d li u đ i v i các CSDL,đ c bi t là CSDL l n c a SQL Serverử ữ ệ ố ớ ặ ệ ớ ủ
I.3 CÁC CÔNG C T NG TÁC V I SQL SERVER Ụ ƯƠ Ớ
Hai công c chính đ giúp nhà qu n tr hay nhà phát tri n giao ti p v i SQLụ ể ả ị ể ế ớ
Server (c u hình, t o đ i t ng, ch y Script…) là Enterprise Manager vàấ ạ ố ượ ạ
Query Analyzer
I.3.1 Enterprise Manager (EM):
Là công c chính đ t ng tác v i SQL Server trong vai trò m t nhà qu n trụ ể ươ ớ ộ ả ị
C s d li u (DBA – Database Administrator), nó cung c p giao di n đ hoơ ở ữ ệ ấ ệ ồ ạ
giúp c u hình, đ t các tuỳ ch n cho SQL Server m t cách tr c quan visual, hấ ặ ọ ộ ự ỗ
tr nhi u wizard. ợ ề
Kh i đ ng EM t menu Start -> Programs-> Microsoft SQL Server ->ở ộ ừ
Enterprise Manager.
Hình : Giao di n c a Enterprise Managerệ ủ
Có th qu n lý nhi u Server trên cùng m t EM, giúp cho vi c qu n tr đ cể ả ề ộ ệ ả ị ượ
d dàng đ i v i các Server xa thông qua môi tr ng m ng. Đ thêm m tễ ố ớ ở ườ ạ ể ộ
Server vào EM ta ph i ti n hành thao tác New SQL Server Registration và tuânả ế
th các b c theo Wizard. Riêng Server cài đ t trên máy đang s d ng EMủ ướ ặ ử ụ
thì đ c Add vào m t cách t đ ng, nghĩa là khi kh i đ ng EM chúng taượ ộ ự ộ ở ộ
đ ng nhiên đã có s n m t Server Localhost đ th c hi n thao tác qu n trươ ẵ ộ ể ự ệ ả ị
trên đó.
Hình. Thêm m t Server vào EMộ
I.3.2 Query Analyzer (QA):
M t công c khác cũng không kém quan tr ng đ t ng tác v i SQL serverộ ụ ọ ể ươ ớ
là công c Query Analyzer. Nó cho phép ti p c n SQL Server d i vai trò m tụ ế ậ ướ ộ
nhà phát tri n (Developer). N u nh dùng EM ta có th nhìn và qu n lý toànể ế ư ể ả
b các đ i t ng c a SQL Server thì dùng QA chúng ta ti p c n v i SQL chộ ố ượ ủ ế ậ ớ ủ
y u b ng các mã l p trình, các query. ế ằ ậ
Kh i đ ng QA t menu Start -> Programs-> Microsoft SQL Server -> Queryở ộ ừ
Analyzer. H th ng s h i SQL Server nào c n k t n i, tài kho n k t n iệ ố ẽ ỏ ầ ế ố ả ế ố
đ n SQL Server đó. ế
Sau khi v t qua giai đo n đăng nh p, ta s làm vi c v i màn hình chính c aượ ạ ậ ẽ ệ ớ ủ
QA
Hình. Giao di n chính c a QAệ ủ
Trong giáo trình này, m i thao tác v mã l p trình nh Query, Script , Storedọ ề ậ ư
Procedure, hàm …đ c ng m đ nh hi u là th c hi n b ng QA. Ví d thao tácượ ầ ị ể ự ệ ằ ụ
s d ng Query ‘Select * from member’ đ c th c thi và tr v k t qu trongử ụ ượ ự ả ề ế ả
QA nh trong hình v .ư ẽ
CH NG II. ƯƠ THÀNH PH N C A SQL SERVER 2000Ầ Ủ
II.1 CÁC THÀNH PH N C A SQL SERVER 2000Ầ Ủ
SQL Server 2000 là m t h qu n tr CSDL quan h , vì v y nó có nh ng đ cộ ệ ả ị ệ ậ ữ ặ
tr ng chung c a lo i CSDL quan h nh database, b ng, ràng bu c…vàư ủ ạ ệ ư ả ộ
nh ng thành ph n riêng c a SQL Server. L t qua giao di n trên EM c aữ ầ ủ ướ ệ ủ
m t SQL Server ta th y nh ng thành ph n căn b n sau: ộ ấ ữ ầ ả
Database: CSDL là đ i t ng chính và ch a t t c nh ng đ i t ng còn l iố ượ ứ ấ ả ữ ố ượ ạ
c a CSDL nh b ng, khung nhìn…ủ ư ả
Table: B ng trong CSDL. B ng đ i di n cho m t th c th (entity)ả ả ạ ệ ộ ự ể
Diagram: s đ quan h (relationship)ơ ồ ệ
View: Khung nhìn hay Virtual Table (b ng o)ả ả
Stored Procedure: th t c th ng trú.ủ ụ ườ
User Defined Function: Hàm do ng i dùng đ nh nghĩa ườ ị
Role: các quy đ nh vai trò và ch c năng trong h th ngị ứ ệ ố
Rule: các quy t cắ
Default: Các giá tr m c đ nhị ặ ị
User Defined Data Type: ki u d li u do ng i dùng t đ nh nghĩa. ể ữ ệ ườ ự ị
Full Text Catalog: t p phân lo i d li u Text. ậ ạ ữ ệ
II.2 C S D LI U (CSDL)Ơ Ở Ữ Ệ
CSDL trong SQL Server là lo i đa ng i dùng (multi user). Ch có th truyạ ườ ỉ ể
c p vào CSDL d a vào nh ng tài kho n ng i dùng (user + password) riêngậ ự ữ ả ườ
bi t t ng ng v i nh ng quy n truy c p nh t đ nh. ệ ươ ứ ớ ữ ề ậ ấ ị
Khi cài đ t, SQL có s n m t s CSDL m c đ nh sau: ặ ẵ ộ ố ặ ị
Master
Model
MSDB
TempDB
Pubs
Northwind
II.2.1 Master:
Là CSDL ch a c u hình chính c a SQL Server. Nó ch a thông tin v cácứ ấ ủ ứ ề
CSDL khác t n t i trên Server, ch a các cài đ t c u hình c a SQL Server,ồ ạ ứ ặ ấ ủ
thông tin v tài kho n truy nh p…Chính vì s quan tr ng c a CSDL này màề ả ậ ự ọ ủ
SQL Server có s n công c đ ph c h i l i CSDL này trong tr ng h p bẵ ụ ể ụ ồ ạ ườ ợ ị
h ng.ỏ
II.2.2 Model:
Ch a t t c các Template dùng làm m u đ SQL Server t o m t CSDL m i.ứ ấ ả ẫ ể ạ ộ ớ
Khi ta t o m t CSDL m i thì SQL Server copy t t c các m u bao g m b ng,ạ ộ ớ ấ ả ẫ ồ ả
khung nhìn … t CSDL Model. ừ
II.2.3 MSDB:
Dùng cho m t vài Component c a SQL Server nh d ch v SQL Server Agent,ộ ủ ư ị ụ
ngoài ra còn có các thông tin khác nh replication,….ư
II.2.4 TempDB:
SQL Server dùng CSDL này đ làm không gian làm vi c cho các b ng, Storedể ệ ả
Procedure t m th iạ ờ
II.2.5 Pubs:
M t trong 2 CSDL m u cho ng i s d ng tham kh o, mô ph ng thông tinộ ẫ ườ ử ụ ả ỏ
v xu t b n sách. ề ấ ả
II.2.6 Northwind:
CSDL m u th 2 c a SQL Server cho ng i dùng tham kh o. ẫ ứ ủ ườ ả
II.3 CÁC Đ I T NG BÊN TRONG M T CSDLỐ ƯỢ Ộ
II.3.1 B ng (Table): ả
Ph n chính c a m t CSDL, là n i l u tr d li u th c s . M i b ng g mầ ủ ộ ơ ư ữ ữ ệ ự ự ỗ ả ồ
nhi u tr ng (column), m i tr ng ch a m t ki u d li u t ng ng. Khiề ườ ỗ ườ ứ ộ ể ữ ệ ươ ứ
t o b ng, c n quan tâm m t s y u t : ạ ả ầ ộ ố ế ố
Name: tên tr ngườ
Key: tr ng đó có ph i là khóa khôngườ ả
Datatype: ki u d li u c a tr ng. ể ữ ệ ủ ườ
Size: kích th c d li u (n u có)ướ ữ ệ ế
Allow Null: cho phép giá tr r ng (null) khôngị ỗ
Default: giá tr m c đ nh cho tr ngị ặ ị ườ
Identity: tr ng có th t đ ng tăng, t ng t nh ki u AutoNumber trongườ ể ự ộ ươ ự ư ể
Access, n u thu c tính Identity là Yes .ế ộ
Identity Seed: giá tr kh i đ u c a tr ng có Identity là Yes.ị ở ầ ủ ườ
Identity Increament: b c nh y cho m i l n tăng đ i v i tr ng có Identity làướ ả ỗ ầ ố ớ ườ
Yes.
II.3.2 Khung nhìn (View):
Là m t b ng o đ c t o thành t m t b ng, ho c m t vài b ng (n u sộ ả ả ượ ạ ừ ộ ả ặ ộ ả ế ử
d ng truy v n Join). V b n ch t View là k t qu c a m t truy v n (query)ụ ấ ề ả ấ ế ả ủ ộ ấ
trên b ng. ả
Ví d : select * From Nha where Diadiem =’So 14 Lang Ha’ ụ
II.3.3 L c đ quan h (Diagram): ượ ồ ệ
Quan h gi a các th c th (entity, đây là b ng) đ c quy t đ nh d a trênệ ữ ự ể ở ả ượ ế ị ự
vi c phân tích thi t k h th ng, t ng t nh RelationShip trong Access. ệ ế ế ệ ố ươ ự ư
II.3.4 Ch m c (Index): ỉ ụ
T n t i đ i v i B ng ho c Khung nhìn, giúp tăng t c đ truy c p d li u,ồ ạ ố ớ ả ặ ố ộ ậ ữ ệ
đ c bi t là đ i v i nh ng tr ng nào c n tìm ki m thông tin.ặ ệ ố ớ ữ ườ ầ ế
L p ch m c cho m t tr ng cũng có tác d ng t ng t nh l p m c l cậ ỉ ụ ộ ườ ụ ươ ự ư ậ ụ ụ
cho m t cu n sách, r t c n thi t cho vi c tìm ki m thông tin. ộ ố ấ ầ ế ệ ế
II.3.5 Trigger:
T n t i trong b ng, nó là m t đo n mã t đ ng th c thi khi có m t hànhồ ạ ả ộ ạ ự ộ ự ộ
đ ng Insert, Update, Delete x y ra trong b ng. ộ ả ả
II.3.6 Ràng bu c (Constraint): ộ
T n t i đ i v i b ng, cho phép ràng bu c d li u trong m t b ng ho c cácồ ạ ố ớ ả ộ ữ ệ ộ ả ặ
b ng, bu c d li u ph i tuân theo m t quy t c nào đó. ả ộ ữ ệ ả ộ ắ
II.3.7 Th t c th ng trú (Stored Procedure): ủ ụ ườ
Đo n mã l p trình (Script) đ c t o ra, qu n lý và th c thi trong SQL Server,ạ ậ ượ ạ ả ự
cũng t ng t nh các hàm l p trình c a các ngôn ng l p trình.ươ ự ư ậ ủ ữ ậ
II.4 KI U D LI U (DATATYPE)Ể Ữ Ệ
B t kỳ m t tr ng nào trong b ng cũng ph i có m t ki u d li u xác đ nh.ấ ộ ườ ả ả ộ ể ữ ệ ị
M t s ki u cho phép đ nh nghĩa đ l n c a ki u,m t s khác thì không.ộ ố ể ị ộ ớ ủ ể ộ ố
M t s ki u d li u ph bi n :ộ ố ể ữ ệ ổ ế
Ki u d li uể ữ ệ Lo iạ S Bytesố Mô tả
Bit Integer 1 Có giá tr 0 (true)ị
ho c 1 (false)ặ
BigInt, Int,
SmallInt, TinyInt
Integer 8,4,2,1 Các ki u s nguyên cóể ố
kho ng giá tr t l nả ị ừ ớ
đ n nhế ỏ
Decimal, Numeric Decimal/Numeric
Money, SmallMoney Money 4 Dùng cho d li uữ ệ
ki u ti n tể ề ệ
Float ki u s th c d uể ố ự ấ
ph y đ ngẩ ộ
Datetime Date/Time 8 ki u d li u ngàyể ữ ệ
tháng
Char, varchar,
nchar, nvarchar,
text,ntext
ki u d li u ký tể ữ ệ ự
thích h p cho l u chợ ư ữ
các ký t ho c chu iự ặ ỗ
Binary, VarBinary Binary D li u ki u nhữ ệ ể ị
phân
Image Binary D li u d ng nhữ ệ ạ ị
phân dùng l u như ả
SQL_Variant T ng t ki uươ ự ể
variant trong Visual
Basic
CH NG III. ƯƠ THAO TÁC CĂN B N TRÊN SQLẢ
SERVER
Trong h u h t các tr ng h p, chúng ta có 2 cách đ thao tác v i SQL Server:ầ ế ườ ợ ể ớ
ho c thao tác v i giao di n tr c quan, h tr Wizard c a EM, ho c thao tácặ ớ ệ ự ỗ ợ ủ ặ
b ng mã l nh (Script) v i QA. Thông th ng dùng EM d dàng h n vì khôngằ ệ ớ ườ ễ ơ
c n vi t Script, nh ng cũng có nhi u tr ng h p không th dùng EM ho cầ ế ư ề ườ ợ ể ặ
dùng QA t t h n. Đ c bi t có th d ch các thao tác v i EM thành các Scriptố ơ ặ ệ ể ị ớ
đ dùng v i QA trong nh ng tr ng h p c n thi t, ch ng h n nh c n đóngể ớ ữ ườ ợ ầ ế ẳ ạ ư ầ
gói thao tác thành m t file Script đ mang cài đ t cho m t Server khác.ộ ể ặ ộ
III.1 T O CSDLẠ
III.1.1T o b ng dòng l nh v i QAạ ằ ệ ớ
Cú pháp: Create Database
[on
( )
]
[log on
()
]
VD: Create Database Quanlynha
Hay đ y đ h n là: ầ ủ ơ
CREATE DATABASE [Quanlynha]
ON (NAME = N'Quanlynha', FILENAME = N'C:\Program Files\Microsoft SQL
Server\MSSQL\data\Quanlynha.mdf' ,
SIZE = 1, FILEGROWTH = 10%)
LOG ON
(NAME = N'Quanlynha_log', FILENAME = N'C:\Program Files\Microsoft SQL
Server\MSSQL\data\Quanlynha_log.LDF' ,
FILEGROWTH = 10%)
GO
III.1.2T o CSDL b ng giao di n Enterprise Manager: ạ ằ ệ
Ch n tính năng New Database r i đ t tên cho Database là Quanlynha trongọ ồ ặ
Wizard đó.
Chúng ta có th c u hình các thu c tính (properties) nâng cao cho m t CSDLể ấ ộ ộ
nh tên Data Files, Transaction Log, FileGroups, Options, Permissions b ngư ằ
cách nh n vào Properties c a CSDL đó. ấ ủ
III.2 T O B NG (TABLE)Ạ Ả
Gi s chúng ta xây d ng m t CSDL Quanlynha g m có 3 b ng ả ử ự ộ ồ ả
Nha (NhaID, Diadiem, Dientich): ch a thông tin v nhàứ ề
Coquan (CoquanID, Tên): ch a thông tin v c quanứ ề ơ
Hopdong (HopdongID,NhaID,CoquanID,NgayBatdau,NgayKetthuc,Giathue):
ch a thông tin v h p đ ng thuê nhà.ứ ề ợ ồ
v i m c đích th c hi n l u tr d li u v qu n lý vi c cho các c quan thuêớ ụ ự ệ ư ữ ữ ệ ề ả ệ ơ
nhà .
III.2.1T o b ng dòng l nh v i QAạ ằ ệ ớ
Cú pháp:
Create Table [name]
( )
VD: CREATE TABLE Nha (
NhaId int IDENTITY (1, 1) NOT NULL ,
DiaDiem nvarchar (50) NOT NULL ,
DienTich int NULL
) ON [PRIMARY]
III.2.2T o b ng giao di n EM: ạ ằ ệ
T đ i t ng Table c a CSDL Quanlynha ch n l nh New Table ừ ố ượ ủ ọ ệ
Ti p theo EM s cung c p m t b ng m i ch đ Design đ ta thi t k cácế ẽ ấ ộ ả ớ ở ế ộ ể ế ế
tr ng d li u, sau khi k t thúc nh n Save và đ t tên cho b ng là Nhaườ ữ ệ ế ấ ặ ả
III.3 THAY Đ I C U TRÚC B NG: Ổ Ấ Ả
III.3.1Thay đ i b ng dòng l nh v i QAổ ằ ệ ớ
Cú pháp:
Alter Table [name]
( )
III.3.2Thay đ i b ng giao di n EM: ổ ằ ệ
T đ i t ng Table ch n b ng c n thay đ i c u trúc r i ch n Design. Ta sừ ố ượ ọ ả ầ ổ ấ ồ ọ ẽ
g p l i ch đ Design b ng gi ng nh lúc t o b ng. Sau khi k t thúc s aặ ạ ế ộ ả ố ư ạ ả ế ử
b ng ch n Saveả ọ
III.4 XOÁ :
III.4.1Xoá CSDL:
DROP Database Quanlynha
III.4.2Xoá b ng: ả
DROP Table Nha,Coquan
III.5 T O SCRIPT: Ạ
Trong tr ng h p chúng ta mu n nh n đ c toàn b Script cho m t thao tácườ ợ ố ậ ượ ộ ộ
trên EM, ch ng h n ta th c hi n th t c t o m t b ng b ng EM và mu nẳ ạ ự ệ ủ ụ ạ ộ ả ằ ố
nh n đ c Script t ng ng v i toàn b th t c đó đ có th dùng trong QAậ ượ ươ ứ ớ ộ ủ ụ ể ể
(đi u này đ c bi t ti n dùng khi ta c n cài đ t m t ng d ng phát tri n ề ặ ệ ệ ầ ặ ộ ứ ụ ể ở
ch này sang m t Server ch khác)ỗ ộ ở ỗ
Đ làm nh v y ta s d ng ch c năng Generate Script c a EMể ư ậ ử ụ ứ ủ
CH NG IV. ƯƠ CHU N HOÁ VÀ QUAN HẨ Ệ
Quan h gi a các b ng đ c xây d ng d a vào k t qu c a quá trình chu nệ ữ ả ượ ự ự ế ả ủ ẩ
hoá trong giai đo n phân tích và thi t k h th ng. Có 3 lo i quan h : ạ ế ế ệ ố ạ ệ
Quan h 1-1: ng v i m i b n ghi b ng th nh t có quan h duy nh t m tệ ứ ớ ỗ ả ở ả ứ ấ ệ ấ ộ
b n ghi b ng th 2.ả ở ả ứ
Quan h 1 - nhi u: m t b n ghi b ng th nh t ng v i m t hay nhi u b nệ ề ộ ả ở ả ứ ấ ứ ớ ộ ề ả
ghi b ng th 2. Đây là quan h thông d ng nh t. ở ả ứ ệ ụ ấ
Quan h nhi u - nhi u: m t b n ghi b ng th nh t ng v i m t hay nhi uệ ề ề ộ ả ở ả ứ ấ ứ ớ ộ ề
b n ghi b ng th 2 và ng c l i. ả ở ả ứ ượ ạ
IV.1 L C Đ QUAN H (DIAGRAM)ƯỢ Ồ Ệ
Dùng ch c năng New Database Diagram c a EM: ứ ủ
Sau đó dùng wizard ch n các b ng mu n t o l c đ quan h .ọ ả ố ạ ượ ồ ệ
dùng chu t kéo và th các tr ng c a các b ng c n t o quan h t ng ng.ộ ả ườ ủ ả ầ ạ ệ ươ ứ
Khi ch n Option ta có th đánh d u ch n vào các m c Cascade Updateọ ể ấ ọ ụ
Related Fields và Cascade Delete Related Records đ xoá hay c p nh t cácể ậ ậ
b ng có quan h khi d li u m t b ng thay đ i. ả ệ ữ ệ ộ ả ổ
Cu i cùng ta đ c m t l c đ quan h nh sau: ố ượ ộ ượ ồ ệ ư
CH NG V. ƯƠ KHUNG NHÌN (VIEWS)
V.1 KHÁI NI M C B NỆ Ơ Ả
View cũng t ng t nh Query trong Access. Trong nhi u tr ng h p chúngươ ự ư ề ườ ợ
ta c n xây d ng k t qu d li u t nhi u b ng khác nhau, ho c ch ch n l cầ ự ế ả ữ ệ ừ ề ả ặ ỉ ọ ọ
thông tin nh t đ nh trong m t b ng, đó chính là View. View có nh ng u đi mấ ị ộ ả ữ ư ể
sau:
- H n ch tính ph c t p c a d li u đ n ng i dùng, tăng t c đ đ i v iạ ế ứ ạ ủ ữ ệ ế ườ ố ộ ố ớ
ng d ng l n.ứ ụ ớ
- K t n i d li u t nhi u b ng l i v i nhauế ố ữ ệ ừ ề ả ạ ớ
- S d ng tài nguyên Server đ truy v n ử ụ ể ấ
- T o ra b ng o có d li u nh yêu c u. ạ ả ả ữ ệ ư ầ
- Có th k t h p m t s hàm và ph ng th c đ t o ra m t c t (tr ng)ể ế ợ ộ ố ươ ứ ể ạ ộ ộ ườ
m i ớ
V.2 T O VIEW: Ạ
V.2.1 T o b ng dòng l nh v i QAạ ằ ệ ớ
Cú pháp:
Create View
As
…
VD: Ta c n t o m t View có tên là ViewHopdonglon nh m m c đích l u giầ ạ ộ ằ ụ ư ữ
thông tin v các h p đ ng có giá ti n thuê m t tháng t 10.000.000 tr lên. ề ợ ồ ề ộ ừ ở
CREATE VIEW VIEWHopdonglon
AS
SELECT Coquan.TenCoquan, Nha.DiaDiem, Hopdong.Giatien
FROM Hopdong INNER JOIN
Coquan ON Hopdong.CoquanID = Coquan.CoquanID
INNER JOIN
Nha ON Hopdong.NhaID = Nha.NhaId
WHERE (Hopdong.Giatien > 10000000)
V.2.2 T o b ng giao di n EM: ạ ằ ệ
T đ i t ng View c a CSDL Quanlynha ch n l nh New View ừ ố ượ ủ ọ ệ
Ti p theo EM s cung c p m t c a s ch đ Design đ ta thi t k view,ế ẽ ấ ộ ử ổ ở ế ộ ể ế ế
hoàn thành thi t k ta ch n Run đ xem k t qu c a View, Save và đ t tênế ế ọ ể ế ả ủ ặ
cho view là ViewHopdonglon
Qua đây chúng ta th y: ấ
- View có tác d ng nh m t b l c d li u c a b ng: khi chúng ta dùng m nhụ ư ộ ộ ọ ữ ệ ủ ả ệ
đ where trong câu l nh view. (ch xây d ng nh ng h p đ ng có giá ti nề ệ ỉ ự ữ ợ ồ ề
>10.000.000).
- View có th có c u trúc ph c t p, đ c h p thành t nhi u b ng: dùngể ấ ứ ạ ượ ợ ừ ề ả
m nh đ inner join.ệ ề
- S d ng View đ thay đ i d li u: vì view là m t b ng o nên không gi ngử ụ ể ổ ữ ệ ộ ả ả ố
nh b ng, ta ch có th thay đ i d li u c a b ng b ng view trong m t sư ả ỉ ể ổ ữ ệ ủ ả ằ ộ ố
tr ng h p nh t đ nh. ườ ợ ấ ị
CH NG VI. ƯƠ QU N TR CSDL. CÁC THAO TÁCẢ Ị
BACKUP, RESTORE, IMPORT, EXPORT
VI.1 CĂN B N V QU N TR CSDLẢ Ề Ả Ị
Còn g i là DBA (Database Administration). Thông th ng đ i v i m t ngọ ườ ố ớ ộ ứ
d ng CSDL, ngoài vi c phát tri n ng d ng thì qu n tr CSDL là ph n khôngụ ệ ể ứ ụ ả ị ầ
th thi u đ c trong quá trình ng d ng v n hành. ể ế ượ ứ ụ ậ
Đ qu n tr và b o trì CSDL đang v n hành, d li u thay đ i theo th i gianể ả ị ả ậ ữ ệ ổ ờ
và không gian, ng i qu n tr c n quan tâm đ n t t c các y u t có th x yườ ả ị ầ ế ấ ả ế ố ể ả
ra đ i v i CSDL. ố ớ
Mu n tr thành m t nhà qu n tr CSDL, c n quan tâm t i nh ng vi c sau: ố ở ộ ả ị ầ ớ ữ ệ
- Sao l u (backup) và ph c h i (restore) d li u. ư ụ ồ ữ ệ
- Import và Export d li u. ữ ệ
- Qu n lý tài kho n ng i dùng CSDL.ả ả ườ
- Và nhi u ch c năng khác.ề ứ
VI.2 SAO L U (BACKUP)VÀ PH C H I (RESTORE) Ư Ụ Ồ
Đ i v i nh ng h CSDL l n nh SQL Server, sao l u d li u là c n thi t b iố ớ ữ ệ ớ ư ư ữ ệ ầ ế ở
d li u luôn luôn đ c thay đ i b i nhi u ng i dùng, kh năng sai sót cóữ ệ ượ ổ ở ề ườ ả
th x y ra. ể ả
M t khác trong tr ng h p x y ra s c h th ng, d li u có th b h ng. ặ ườ ợ ả ự ố ệ ố ữ ệ ể ị ỏ
Đ b o v CSDL đ c an toàn và có th ph c h i khi c n, chúng ta ph i cóể ả ệ ượ ể ụ ồ ầ ả
k ho ch sao l u d li u m t cách th ng xuyên và theo đ nh kỳ. ế ạ ư ữ ệ ộ ườ ị
M t ng d ng khác c a 2 quá trình backup và restore là khi ta mu n copyộ ứ ụ ủ ố
m t CSDL t Server này sang Server khác. Khi đó ta có th backup Server 1ộ ừ ể ở
và mang sang restore Server 2ở
VI.2.1 Backup
Có nhi u thi t b đ backup d li u, thông th ng chúng ta backup d li uề ế ị ể ữ ệ ườ ữ ệ
ra đĩa c ng. Cũng nh các thao tác khác, ta có th backup thông qua giao di nứ ư ể ệ
EM ho c b ng script thông qua QA. đây trình bày quá trình backup b ngặ ằ Ở ằ
EM. ch n ch c năng Backup Database nh hình v : ọ ứ ư ẽ
Đ t tên file Backup, và xác nh n đ SQL th c hi n quá trình Backup CSDL.ặ ậ ể ự ệ
Toàn b CSDL đ c Backup thành m t file, ta có th l u file này đ ph c h iộ ượ ộ ể ư ể ụ ồ
lai CSDL khi c n thi t. Cũng có th ch n m t s tuỳ ch n đ Backup nhầ ế ể ọ ộ ố ọ ể ư
Backup toàn b CSDL, Backup nh ng d li u m i c p nh t, Backup log,ộ ữ ữ ệ ớ ậ ậ
Backup đè lên file Backup cũ hay ch b sung vào file Backup cũ, và có th đ tỉ ổ ể ặ
l ch (scheduled) cho quá trình Backup di n ra t đ ng theo đ nh kỳ... ị ễ ự ộ ị
VI.2.2 Restore
Là quá trình ng c l i v i Backup, khi mu n ph c h i l i d li u chúng taượ ạ ớ ố ụ ồ ạ ữ ệ
ch n Restore Database nh hình v :ọ ư ẽ
ch n file ch a backup đ restore r i nh n okọ ứ ể ồ ấ
VI.3 IMPORT – EXPORT
Chúng ta đang có m t CSDL và mu n nh n d li u ho c các đ i t ng tộ ố ậ ữ ệ ặ ố ượ ừ
m t CSDL khác, có th trong cùng m t SQL Server ho c m t SQL Serverộ ể ộ ặ ở ộ
khác, ho c th m chí là CSDL c a m t h qu n tr CSDL khác nh Access,ặ ậ ủ ộ ệ ả ị ư
Oracle… Ta th c hi n vi c này b ng IMPORT trong EMự ệ ệ ằ
Ng c l i v i quá trình Import là Export, khi ta mu n xu t các đ i t ng bênượ ạ ớ ố ấ ố ượ
trong CSDL hi n hành cho CSDL khác.ệ
VI.3.1 IMPORT
T CSDL hi n hành ch n ch c năng Import Data. Đ Import ta ph i ch nừ ệ ọ ứ ể ả ọ
CSDL ngu n (Source) và CSDL đích (Destination – chính là CSDL hi n hành).ồ ệ
CSDL ngu n có th cùng lo i SQL server ho c khác lo i (Access, Oracle..)ồ ể ạ ặ ạ
VI.3.2 EXPORT
T CSDL hi n hành ch n ch c năng Export Dataừ ệ ọ ứ
Ch n ngu n (Destination) là CSDL hi n hành, đích là CSDL mu n Export ra.ọ ồ ệ ố
Sau đây là m t ví d Export Data t CSDL Quanlynha ra file Excel, k t qu taộ ụ ừ ế ả
đ c 1 file Excel có 4 worksheet: 3 b ng và 1 viewượ ả
CH NG VII. ƯƠ SCRIPT VÀ BATCH
VII.1KHÁI NI M V SCRIPT Ệ Ề
Là t p h p câu l nh c a SQL Server đ th c hi n m t thao tác. Ch ng h nậ ợ ệ ủ ể ự ệ ộ ẳ ạ
chu i l nh t o m t b ng có tên là ‘Hopdong’ trong CSDL Quanlynha nh sauỗ ệ ạ ộ ả ư
đ c g i là 1 Script: ượ ọ
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Hopdong]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Hopdong]
GO
CREATE TABLE [dbo].[Hopdong] (
[HopdongID] [int] IDENTITY (1, 1) NOT NULL ,
[NhaID] [int] NOT NULL ,
[CoquanID] [int] NOT NULL ,
[NgayBatdau] [datetime] NULL ,
[NgayKetthuc] [datetime] NULL ,
[Giatien] [int] NULL
) ON [PRIMARY]
GO
VII.2BATCH
M t Script có th ch a nhi u batch. M i batch là m t kh i l nh đ c k tộ ể ứ ề ỗ ộ ố ệ ượ ế
thúc b i l nh GO. Ví d trên có 2 batch. Batch đ u tiên th c hi n vi c ki mở ệ ụ ầ ự ệ ệ ể
tra xem b ng Hopdong đã t n t i trong CSDL ch a, n u có thì xoá b ng đó điả ồ ạ ư ế ả
đ chu n b t o m t b ng m i. Batch th 2 th c hi n vi c t o b ng m iể ẩ ị ạ ộ ả ớ ứ ự ệ ệ ạ ả ớ
trong CSDL có tên là Hopdong. S dĩ ng i ta chia Script ra thành các Batchở ườ
đánh d u b i l nh k t thúc GO vì các Batch đ c xem nh m t kh i l nhấ ở ệ ế ượ ư ộ ố ệ
đ c l p. N u m t Batch x y ra l i thì các Batch khác v n có th th c thi.ộ ậ ế ộ ả ỗ ấ ể ự
VII.3SCRIPT Đ N GI N Ơ Ả
Script đ c ghi thành m t t p tin th ng có ph n đuôi là .sqlượ ộ ậ ườ ầ
Tham kh o ví d đ n gi n sau: ả ụ ơ ả
Use account
Go
Declare @tablename varchar(128)
Set @tablename=’tblCustomer’
Exec (‘select * from ’+@tablename+’where active=1’)
VII.3.1 USE:
Khai báo C s d li u hi n t i ơ ở ữ ệ ệ ạ
VII.3.2 Khai báo bi n trong SQL Server: ế
Declare @tenbien kieudulieu. VD: declare @amount float
Gán giá tr cho bi n: Set @amount=1000ị ế
Set @amount = (select sum(amount) from test)
VII.3.3 OSQL:
Công c cho phép th c hi n m t phát bi u SQL b ng d u nh c hay c a sụ ự ệ ộ ể ằ ấ ắ ử ổ
DOS.
VII.3.4 SQL đ ng: ộ
là m t phát bi u SQL không đ nh nghĩa tr c, ví d câu l nh select có tênộ ể ị ướ ụ ệ
b ng t ngoài đ a vào hay tên b ng là k t qu c a m t phép toán. ả ừ ư ả ế ả ủ ộ
CH NG VIII. ƯƠ CÁC HÀM VÀ BI U TH C H TRỂ Ứ Ỗ Ợ
TRUY V N. Ấ
Chúng ta đã bi t đ thao tác v i data trong CSDL, ng i ta dùng cú pháp SQLế ể ớ ườ
v i các lo i câu l nh căn b n nh : Select, Insert, Update, Delete. ớ ạ ệ ả ư
VD: Select * From Nha
Nh ng m nh đ giúp cho vi c thao tác v i d li u đ c linh ho t h n n aữ ệ ề ệ ớ ữ ệ ượ ạ ơ ữ
nh là Where, Group By, Having, Order By, Join …ư
SQL Server s d ng T-SQL (Transact SQL) đ thao tác v i d li u, hay nóiử ụ ể ớ ữ ệ
khác đi T-SQL chính là ngôn ng đ vi t Script trong SQL. Ngoài nh ng l nhữ ể ế ữ ệ
SQL chu n nh trên, T-SQL còn bao g m các hàm đ h tr x lý d li uẩ ư ồ ể ỗ ợ ử ữ ệ
ngay bên trong SQL Server thay vì ph i dùng các ngôn ng l p trình khác. ả ữ ậ
VIII.1 CÁC HÀM VÀ BI U TH C H TR TRUY V NỂ Ứ Ỗ Ợ Ấ
VIII.1.1 AVG:
Tr v giá tr trung bình. ả ề ị
VD: tìm giá ti n thuê nhà trung bình trong Hopdongề
Select AVG (giatien) from Hopdong
VIII.1.2 Min :
Tr v giá tr nh nh t. ả ề ị ỏ ấ
VIII.1.3 Max :
Tr v giá tr l n nh t. ả ề ị ớ ấ
VIII.1.4 Count
Tr v s l ng b n ghi tho mãn. ả ề ố ượ ả ả
VD: Tìm s l ng các H p đ ng có giá ti n > 10.000.000ố ượ ợ ồ ề
Select Count (*) from ViewHopdonglon
VIII.1.5 Sum:
Tr v t ng giá tr c a tr ngả ề ổ ị ủ ườ
VIII.2 CÁC HÀM X LÝ CHU I Ử Ỗ
VIII.2.1 ASCII:
Tr v mã ASCII c a ký t đ u tiên trong chu i. Vd: Tìm mã ASCII c a kýả ề ủ ự ầ ỗ ủ
t tự
print ASCII ('t')
VIII.2.2 Char:
chuy n đ i ki u mã ASCII t s nguyên sang d ng chu i: ể ổ ể ừ ố ạ ỗ
VD: Tìm ký t có mã ASCII là 65 ự
print char (65)
VIII.2.3 Upper:
Chuy n đ i chu i sang ch hoaể ổ ỗ ữ
VIII.2.4 Lower:
Chuy n đ i chu i sang ch th ngể ổ ỗ ữ ườ
VIII.2.5 Len:
Tr v chi u dài chu iả ề ề ỗ
VIII.2.6 Ltrim:
B các d u tr ng bên trái chu iỏ ấ ắ ỗ
VD: print ltrim (‘ Viet Nam’)
VIII.2.7 Rtrim:
B các d u tr ng bên ph i chu i. ỏ ấ ắ ả ỗ
VIII.2.8 Left:
Tr v chu i con tính t bên trái chu iả ề ỗ ừ ỗ
VD: print left (‘Viet Nam ’,3) K t qu là chu i ‘Vie’ế ả ỗ
VIII.2.9 Right:
Tr v chu i con tính t bên ph i chu iả ề ỗ ừ ả ỗ
VIII.2.10 CharIndex:
Tr v v trí c a m t chu i con bên trong m t chu i ả ề ị ủ ộ ỗ ộ ỗ
VD : print CharIndex (‘Nam’,’Viet Nam’) K t qu là 5ế ả
VIII.3 CÁC HÀM TH I GIAN Ờ
VIII.3.1 GetDate():
Tr v ngày tháng năm c a h th ng: ả ề ủ ệ ố
VD: select ‘Hôm nay là : ’ =getDate()
VIII.3.2 DatePart():
tr v m t ph n c a chu i ngày tháng nămả ề ộ ầ ủ ỗ
VD: select ‘Hôm nay là ngày : ’ =DatePart(d,getDate())
VIII.3.3 DateDiff():
Tr v s ngày gi a 2 kho ng th i gianả ề ố ữ ả ờ
VD: select ‘s năm thuê là: ’ =DateDiff(y,NgayKetthuc, NgayBatdau)ố
VIII.3.4 Day():
Tr v ngày trong tháng.ả ề
VIII.3.5 Month():
Tr v tháng trong năm.ả ề
VIII.3.6 Year():
Tr v nămả ề
VIII.4 CÁC HÀM TOÁN H C Ọ
VIII.4.1 Square:
Bình ph ng c a m t bi u th c. VD: bình ph ng c a 3: Print square (3)ươ ủ ộ ể ứ ươ ủ
VIII.4.2 Sqrt:
Căn b c 2 c a bi u th cậ ủ ể ứ
VIII.4.3 Round:
Làm tròn m t bi u th cộ ể ứ
VIII.5 CÁC HÀM CHUY N Đ I Ể Ổ
VIII.5.1 Cast:
Tr v giá tr có ki u d li u đ c đ nh nghĩaả ề ị ể ữ ệ ượ ị
VD: Print cast (getDate() as Varchar(11))
VIII.5.2 Convert:
Chuy n đ i giá tr có ki u này sang ki u d li u khác n u cho phépể ổ ị ể ể ữ ệ ế
VD: print convert (int, ‘255’)
CH NG IX. ƯƠ TH T C TH NG TRÚ STOREDỦ Ụ ƯỜ
PROCEDURE
IX.1 GI I THI U CHUNG Ớ Ệ
Th t c th ng trú là m t đ i t ng đ c t o thành t các l nh T-SQL. Nóủ ụ ườ ộ ố ượ ượ ạ ừ ệ
đ c l u tr nh là m t ph n c a CSDL. Khi c n th c hi n m t chuy n tácượ ư ữ ư ộ ầ ủ ầ ự ệ ộ ể
(Transaction) trong CSDL, đôi khi chúng ta th c hi n chúng b ng cách dùngự ệ ằ
các Script, ho c chúng ta có th l u chúng trong các hàm g i là Storedặ ể ư ọ
Procedure (SP) và g i hàm này. SP cũng gi ng nh khái ni m hàm trong ngônọ ố ư ệ
ng l p trình. ữ ậ
SP có m t s u đi m: ộ ố ư ể
Có th tái s d ng cho nhi u ng d ng thay vì ph i vi t l p l i m t đo nể ử ụ ề ứ ụ ả ế ặ ạ ộ ạ
script cho m i ng d ng.ỗ ứ ụ
Đ c thi hành ngay trong SQL Server (khi m t ngôn ng l p trình g i đ nượ ộ ữ ậ ọ ế
SP).
Đ c h ng các ch đ Security c a SQL Server.ượ ưở ế ộ ủ
Ta có th t o m t SP b ng EM ho c b ng QA. ể ạ ộ ằ ặ ằ
IX.2 T O M T SP Ạ Ộ
Vd: Tính t ng di n tích và doanh thu cho thuê nhà trong kho ng th i gian t aổ ệ ả ờ ừ
đ n b.ế
CREATE PROCEDURE Doanhthu
@dauthang smalldatetime,
@cuoithang smalldatetime
AS
select sum(dientich) as dientich,sum(giatien) as doanhthu
from hopdong inner join nha on hopdong.NhaID=nha.NhaID
inner join coquan on hopdong.CoquanID=coquan.CoquanID
where (ngayketthuc >= @dauthang ) and (ngaybatdau<=@cuoithang)
Return
GO
Ta có th dùng QA đ t o SP b ng cách gõ Script trên trong c a s Query.ể ể ạ ằ ủ ổ
Cũng có th dùng EM: ể
Gõ Script vào c a s Text, ch n Check Syntax đ ki m tra xem SP có đúng cúử ổ ọ ể ể
pháp không. Ch n OK đ Save SP. ọ ể
IX.3 XOÁ M T SP Ộ
DROP PROCEDURE Doanhthu
V i EM, Ch n SP c n xoá và th c hi n thao tác Deleteớ ọ ầ ự ệ
IX.4 THAM S TRONG SP Ố
Khi th c hi n m t SP, ta có th truy n tham s đ thông báo cho SP nên làmự ệ ộ ể ề ố ể
gì trong CSDL. Tham s có th do ng i dùng truy n vào ho c m t SP hayố ể ườ ề ặ ộ
ng d ng khác g i đ n. ví d trên SP có 2 tham s là @dauthangứ ụ ử ế Ở ụ ố
smalldatetime, @cuoithang smalldatetime.
Có 2 lo i tham s : tham s nh p vào input parameter và tham s k t xu tạ ố ố ậ ố ế ấ
output parameter.
IX.4.1 Khai báo tham s :ố
ta khai báo nh trong ví d : ư ụ
CREATE PROCEDURE Doanhthu
@dauthang smalldatetime,
@cuoithang smalldatetime
AS
…
IX.4.2 Cung c p giá tr m c đ nh: ấ ị ặ ị
n u c n ta có th kh i t o giá tr m c đ nh cho tham s :ế ầ ể ở ạ ị ặ ị ố
CREATE PROCEDURE Doanhthu
@dauthang smalldatetime =’1/1/2004’,
@cuoithang smalldatetime
AS
…
IX.4.3 Tham s output:ố
N u c n xu t giá tr ra ngoài khi SP th c thi xong, ho c s d ng k t qu c aế ầ ấ ị ự ặ ử ụ ế ả ủ
SP làm tham s đ u vào cho SP khác thì khai báo thu c tính Output. ố ầ ộ
CREATE PROCEDURE test
@X OUTPUT
AS
…
IX.5 CÁC L NH ĐI U KHI N Ệ Ề Ể
Cũng gi ng nh các ngôn ng l p trình, ta có th vi t các l nh đi u khi nố ư ữ ậ ể ế ệ ề ể
trong SP nói riêng và trong các Script c a SQL Server nói chung. ủ
IX.5.1 L nh đi u khi n IF … ELSEệ ề ể
Cú pháp:
IF
Begin
End
ELSE
Begin
End
IX.5.2 L nh đi u khi n CASEệ ề ể
Cũng gi ng nh Select Case trong Visual Basic ho c ASPố ư ặ
Cú pháp:
CASE
When …………then …………
When ……….. then ……….
[ELSE ………………………..]
END
VD:
CASE DatePart(d,NgayBatdau)
When 1 then ‘SUN’
When 2 then ‘MON’
When 3 then ‘TUE’
When 4 then ‘WED’
When 5 then ‘THU’
When 6 then ‘FRI’
When 7 then ‘SUN’
END
IX.5.3 L nh đi u khi n WHILEệ ề ể
Cú pháp:
WHILE
Begin
End
IX.5.4 L nh đi u khi n WAITFOR:ệ ề ể
SQL Server t m d ng m t th i gian tr c khi x lý các l nh ti p theo.ạ ừ ộ ờ ướ ử ệ ế
Cú pháp:
WAITFOR
DELAY
ho cặ
WAITFOR
TIME
CH NG X. ƯƠ HÀM NG I DÙNG VÀ HÀM HƯỜ Ệ
TH NG Ố
X.1 KHÁI NI M HÀM NG I DÙNG Ệ ƯỜ
SQL Server cho phép ng i dùng t o ra các hàm theo nh ng tiêu chu n riêng,ườ ạ ữ ẩ
phù h p v i yêu c u s d ng. User Defined Function gi ng nh Storedợ ớ ầ ử ụ ố ư
Procedure. Nó bao g m các l nh T-SQL k t h p t o nên hàm và có th đ cồ ệ ế ợ ạ ể ượ
g i th c thi nh là m t đ n v đ c l p. ọ ự ư ộ ơ ị ộ ậ
M t s h n ch c a Hàm ng i dùng so v i SP là tham s không đ c mangộ ố ạ ế ủ ườ ớ ố ượ
thu c tính output, nghĩa là giá tr tham s không đ c truy n ra ngoài hàm.ộ ị ố ượ ề
Thay vào đó mu n tr v giá tr ta ph i dùng return. ố ả ề ị ả
X.2 T O VÀ XOÁ HÀM NG I DÙNG Ạ ƯỜ
X.2.1 T o hàm ng i dùngạ ườ
CREATE FUNCTION [OWNER].[FUNCTION NAME] (PARAMETER LIST)
RETURNS (return_type_spec) AS
BEGIN
(FUNCTION BODY)
END
X.2.2 Xoá hàm ng i dùngườ
DROP FUNCTION
X.3 HÀM H TH NG Ệ Ố
Hàm ng i dùng đ c t o ra trong m t CSDL và ch có hi u l c trong CSDLườ ượ ạ ộ ỉ ệ ự
đó. N u hàm có tính ph bi n s d ng chung trong nhi u CSDL thì ta nên t oế ổ ế ử ụ ề ạ
nó nh là hàm h th ng. ư ệ ố
Khi đã là hàm h th ng thì ta có th g i hàm nh các hàm c a SQL Serverệ ố ể ọ ư ủ
thông th ng, ví d : hàm GetDate(), DatePart()ườ ụ
X.3.1 T o hàm h th ng t hàm ng i dùng: ạ ệ ố ừ ườ
T o hàm trong CSDL Master (là 1 trong 6 CSDL s n có c a SQL Server ngayạ ẵ ủ
t lúc cài đ t) thay vì t o hàm trong CSDL đang dùng (nhu CSDL Quanlynha)ừ ặ ạ
Dùng ti n t fn_TenHamề ố
Thay đ i Owner c a hàm (s d ng SP sp_changeobjectowner ho c dùng EM)ổ ủ ử ụ ặ
CH NG XI. ƯƠ TRIGGER
XI.1 KHÁI NI M: Ệ
Trigger là m t d ng SP đ c bi t dùng đ đáp ng m t s ki n c th (Insert,ộ ạ ặ ệ ể ứ ộ ự ệ ụ ể
Update, Delete). Nó bao g m m t đo n Script đ c g n vào b ng d li u vàồ ộ ạ ượ ắ ả ữ ệ
t đ ng th c thi khi có m t s ki n x y ra t ng ng v i Trigger đ c gánự ộ ự ộ ự ệ ả ươ ứ ớ ượ
cho s ki n đó (trong khi SP ch th c thi khi đ c g i ra) . ự ệ ỉ ự ượ ọ
Trigger không có tham s và giá tr tr v . ố ị ả ề
Ch nên s d ng Trigger trong tr ng h p c n thi t, ch ng h n trong nh ngỉ ử ụ ườ ợ ầ ế ẳ ạ ữ
tr ng h p sau: ườ ợ
- Referential Integrity: ràng bu c toàn v n d li u cho phù h p v i mô hìnhộ ẹ ữ ệ ợ ớ
quan h c s d li u.ệ ơ ở ữ ệ
- Audit Trails: ki m soát d li u hi n t i khi có thay đ i đ n giá tr trong b nể ữ ệ ệ ạ ổ ế ị ả
ghi c a b ng. ủ ả
- Check: ki m tra d li u nh p vào có phù h p v i m i liên h gi a các b ngể ữ ệ ậ ợ ớ ố ệ ữ ả
v i nhau.ớ
- Ki m ch ng khi xoá b n ghi ể ứ ả
XI.2 PHÂN LO I Ạ
Có th chia Trigger thành 3 lo i theo s ki n mà nó đáp ng: ể ạ ự ệ ứ
- Insert Trigger.
- Update Trigger.
- Delete Trigger.
- T ng h p c 3.ổ ợ ả
XI.3 T O TRIGGERẠ
XI.3.1 Cú pháp
T o Trigger gi ng nh SP, và nó ph i đ c t o ra cho b ng c thạ ố ư ả ượ ạ ả ụ ể
Ví d : T o m t Trigger cho b ng Hopdong đ ki m tra ràng bu c d li uụ ạ ộ ả ể ể ộ ữ ệ
v i b ng Nha (không th t o h p đ ng cho m t nhà ch a nh p vào CSDL)ớ ả ể ạ ợ ồ ộ ư ậ
CREATE TRIGGER Ins ON [dbo].[Hopdong]
FOR INSERT
AS
if not exists
( select 'true' from inserted where inserted.nhaid in (select nhaid from nha)
)
begin
raiserror ('Không th t o H p đ ng này vì Nhà ch a đ c nh p trong tableể ạ ợ ồ ư ượ ậ
Nhà',16,1)
rollback Tran
end
Di n gi i: ễ ả
On: ch ra Trigger đang vi t cho b ng hay khung nhìn nào. N u có t khoáỉ ế ả ế ừ
after thì không h tr view. ỗ ợ
For Insert /For Update / For Delete: dùng khai báo đ i v i Insertố ớ
Trigger/Update Trigger, Delete Trigger.
AS: gi ng nh SP, nó ch đ nh cho SQL Server bi t đi m b t đ u, sau AS làố ư ỉ ị ế ể ắ ầ
Script
XI.3.2 T o Trigger b ng EM. ạ ằ
Sau khi m t b ng đã đ c g n Trigger,nó s t đ ng th c thi v i sộ ả ượ ắ ẽ ự ộ ự ớ ự
ki n t ng ng. Ch ng h n nh ví d d i đây, Trigger Ins đ c th c thiệ ươ ứ ẳ ạ ư ụ ướ ượ ự
khi ng i dùng Insert m t b n ghi m i vào b ng Hopdong. Nó đ a ra thôngườ ộ ả ớ ả ư
báo l i vì Nhà có NhaID =100 ch a t n t i trong b ng Nha. ỗ ư ồ ạ ả
CH NG XII. ƯƠ CHUY N TÁC (TRANSACTION) VÀỂ
KHOÁ (LOCK)
XII.1KHÁI NI M CHUY N TÁC Ệ Ể
Xu t phát t nhu c u khi giao ti p v i d li u có nh ng tr ng h p chúng taấ ừ ầ ế ớ ữ ệ ữ ườ ợ
mong mu n ho c đ ng th i nhi u s ki n di n ra, ho c không s ki n nào.ố ặ ồ ờ ề ự ệ ễ ặ ự ệ
Ví d : thao tác chuy n ti n bao g m 2 s ki n: rút ti n t tài kho n A vàụ ể ề ồ ự ệ ề ừ ả
c ng vào tài kho n B, yêu c u ho c c 2 thao tác đ u ph i hoàn thành, ho cộ ả ầ ặ ả ề ả ặ
không thao tác nào hoàn thành. Đó chính là m t Chuy n tác. ộ ể
Các l nh: ệ
Begin: b t đ u m t chuy n tác; Commit: xác nh n chuy n tác đã hoàn thành.ắ ầ ộ ể ậ ể
Rollback: quay ng c chuy n tác. (Hu toàn b các s ki n c a chuy n tác)ượ ể ỷ ộ ự ệ ủ ể
Save : đánh d u m t đi m cho phép Rollback ch m t ph n chuy n tác.ấ ộ ể ỉ ộ ầ ể
M t ví d là chúng ta đã th c hi n chuy n tác ng m Rollback TRAN trongộ ụ ự ệ ể ầ
Trigger Ins ch ng Trigger, khi nh n th y có l i trong ràng bu c d li uở ươ ậ ấ ỗ ộ ữ ệ
thì hu toàn b quá trình Insert d li u:ỷ ộ ữ ệ
if not exists
( select 'true' from inserted where inserted.nhaid in (select nhaid from nha)
)
begin
raiserror ('Không th t o H p đ ng này vì Nhà ch a đ c nh p trong tableể ạ ợ ồ ư ượ ậ
Nhà',16,1)
rollback Tran
end
XII.2KHOÁ (LOCK) VÀ Đ NG HÀNH (CONCURRENCY)Ồ
Khi có nhi u chuy n tác cùng th c hi n trên m t đ i t ng, ng i ta g i làề ể ự ệ ộ ố ượ ườ ọ
đ ng hành. D hi u h n, đ ng hành là hi n t ng t i m t th i đi m cóồ ễ ể ơ ồ ệ ượ ạ ộ ờ ể
nhi u ng i cùng k t n i và truy c p m t đ i t ng c a CSDL. Trong nhi uề ườ ế ố ậ ộ ố ượ ủ ề
tr ng h p đi u này s x y ra xung đ t, ví d nhi u ng i đ ng th i cườ ợ ề ẽ ả ộ ụ ề ườ ồ ờ ố
g ng s a d li u trong m t b ng. ắ ử ữ ệ ộ ả
Đ ki m soát ng i dùng th c hi n nh ng chuy n tác đ ng hành, ngăn ng aể ể ườ ự ệ ữ ể ồ ừ
xung đ t, đ ng đ , ng i ta dùng khoá. Có nghĩa là m t ng i không th làmộ ụ ộ ườ ộ ườ ể
gì đ s a đ i m t đ i t ng khi có m t ng i khác đang truy c p nó tr cể ử ổ ộ ố ượ ộ ườ ậ ướ
ng i đó. Shared lock: Th c t có nhi u ki u khoá. Khoá căn b n nh t làườ ự ế ề ể ả ấ
khoá chia s (Shared lock). Nó cho phép đ c d li u và không cho phép thayẻ ọ ữ ệ
đ i b t kỳ thu c tính nào c a d li u. ổ ấ ộ ủ ữ ệ
CH NG XIII. ƯƠ S D NG NGÔN NG L P TRÌNHỬ Ụ Ữ Ậ
T NG TÁC V I SQL SERVERƯƠ Ớ
SQL Server thu n tuý ch a CSDL. Đ cho phép ng i s d ng khai thácầ ứ ể ườ ử ụ
đ c CSDL SQL Server, c n xây d ng nh ng ng d ng đ c phát tri nượ ầ ự ữ ứ ụ ượ ể
b ng ngôn ng l p trình. ằ ữ ậ
XIII.1 L P TRÌNH B NG ASPẬ Ằ
S d ng ASP đ thao tác v i CSDL nói chung và SQL Server nói riêng đ cử ụ ể ớ ượ
đ c p k trong giáo trình môn “L p trình Web b ng ASP”. đây chúng taề ậ ỹ ậ ằ Ở
đ c p đ n m t s khía c nh th c hành. ề ậ ế ộ ố ạ ự
XIII.1.1 K t n i đ n CSDL SQL Server: ế ố ế
Dùng đ i t ng Connectionố ượ
‘t o m t Connectionạ ộ
Set Conn = Server.CreateObject("ADODB.Connection")
‘ Kh i t o chu i k t n iở ạ ỗ ế ố
strConn = "driver={SQL Server}; server=127.0.0.1; uid=iitm; pwd=test;
database=quanlynha"
‘ K t n i đ n CSDL ế ố ế
Conn.Open strConn
XIII.1.2 Th c thi câu l nh SQL: ự ệ
conn.execute "update hopdong set giatien=10000000 where hopdongid=1"
XIII.1.3 Thao tác v i các b n ghi c a m t b ng: ớ ả ủ ộ ả
Dùng đ i t ng Recordsetố ượ
<%
‘ câu l nh SQLệ
sqlString= “select * from Hopdong”
‘ T o đ i t ng Recordsetạ ố ượ
Set RS = Server.CreateObject("ADODB.Recordset")
‘ th c thi câu l nh SQL thông qua đ i t ng k t n i Conn, k t qu tr vự ệ ố ượ ế ố ế ả ả ề
cho đ i t ng Recordset.ố ượ
Rs.Open sqlString,Conn
‘ duy t t ng b n ghi trong b ng Hopdong b ng Recordset, hi n thi d ng b ngệ ừ ả ả ằ ệ ạ ả
trên ‘giao di n Web. ệ
<%
‘ vòng l p do while đ duy t t t c các b n ghiặ ể ệ ấ ả ả
do while not Rs.EOF
%>
<%
‘ d ch chuy n đ n b n ghi k ti pị ể ế ả ế ế
RS.MoveNext
Loop
RS.close
%>
XIII.1.4 C p nh t vào CSDL b ng Recordset: ậ ậ ằ
sqlString =”select * from hopdong”
Set RS1 = Server.CreateObject("ADODB.Recordset")
'de co the update
adOpenDynamic=2
adLockPessimistic=2
Rs1.Open sqlString,Conn,adOpenDynamic,adLockPessimistic
do while not Rs1.EOF
‘ l y giá ti n thuê nhà t tr ng Giatienấ ề ừ ườ
tempGiatien=rs1(“giatien”)
‘ tăng giá ti n thuê nhà lên g p đôi r i c p nh t vào tr ng Giatienề ấ ồ ậ ậ ườ
rs1("giatien")=tempGiatien*2
‘ xác nh n vi c c p nh tậ ệ ậ ậ
rs1.Update
rs1.MoveNext
loop
Rs1.Close
XIII.1.5 Th c thi m t SP c a SQL Server ự ộ ủ
Trong ví d ch ng Stored Procedure ta đã t o m t SP tên “Doanhthu”ụ ở ươ ạ ộ
trong CSDL Quanlynha
CREATE PROCEDURE Doanhthu
@dauthang smalldatetime,
@cuoithang smalldatetime
AS
…
G i th c hi n SP đó t ASP: ọ ự ệ ừ
‘ gán giá tr cho các bi nị ế
dauthang=”1/1/2004” ‘month/date/year
cuoithang=”1/31/2004”
‘câu l nh sql g i SP có tham s ệ ọ ố
sql="execute doanhthu " + dauthang + "," + cuoithang
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open sql,Conn
XIII.2 L P TRÌNH B NG VISUAL BASIC Ậ Ằ
S d ng Visual Basic đ thao tác v i CSDL nói chung và SQL Server nói riêngử ụ ể ớ
đ c đ c p k trong giáo trình môn “L p trình VISUAL BASIC”. V cănượ ề ậ ỹ ậ ề
b n cũng t ng đ i gi ng ASP. ả ươ ố ố
XIII.2.1 K t n i đ n CSDL: ế ố ế
‘Khai báo bi n Connectionế
Dim Conn as New ADO
‘ chu i k t n i CSDL ỗ ế ố
Dim StrConn as String
StrConn=”Provider=SQLOLEDB.1;Persist Security = False; uid=iitm;
pwd=test; Initial Catalog=Quanlynha;server=127.0.0.1 ;”
‘ T o k t n i: ạ ế ố
Set Conn=CreateObject (“ADODB.Connection”)
Conn.Open StrConn
XIII.2.2 Th c hi n câu l nh SQL:ự ệ ệ
Conn.Execute “Delete from hopdong where hopdongid=2”
XIII.2.3 Th c thi SPự
Conn.Execute “Doanhthu ‘”&”1/1/2004”&” ‘,’ ”&”1/31/2004”&”’”
XIII.2.4 Thao tác v i b n ghiớ ả
‘ Khai báo bi n Recordsetế
Dim RS
‘ T o đ i t ng Recordsetạ ố ượ
Set RS=CreateObject (“ADODB.Recordset”)
‘ Th c thi câu l nh SQL cho k t qu tr v Recordset: ự ệ ế ả ả ề
Rs.open “Select * from Hopdong”, Conn, 2, 2
‘ Insert d li uữ ệ
RS.Addnew
RS(“NhaID”)=”2”
RS(“NhaCoquanID”)=”3”
RS(“NgayBatdau”)=”1/1/2004”
RS(“NgayKetthuc”)=”1/1/2006”
RS(“Giatien”)=”5000000”
RS.Update
‘ Đóng k t n iế ố
RS.Close
Conn.Close
Set RS=nothing
Set Conn= nothing
CH NG XIV. ƯƠ M T S V N Đ NÂNG CAO. Ộ Ố Ấ Ề
XIV.1 SECURITY
XIV.2 CHUY N TÁC VÀ TRUY V N PHÂN TÁN Ể Ấ
XIV.3 XML
XIV.4 TÌM KI M FULL TEXT SEARCHẾ
XIV.5 D CH V PHÂN TÍCH ANALYSIS SERVICESỊ Ụ
XIV.6 DATABASE REPLICATE
XIV.7 ENGLISH QUERY
Các file đính kèm theo tài liệu này:
- GiaotrinhhequantricosodulieuMSSQLServer2000.pdf