HỌC SQL SERVER 2000
HC SQL SERVER 2000 1 http://ebooks.vdcmedia.com MC LC Overview of SQL Server 2000 . 2 Transact SQL 7 Backup And Restore SQL Server . 24 Stored Procedure and Advanced T-SQL . 41 Triggers And Views 51 HC SQL SERVER 2000 2 http://ebooks.vdcmedia.com Overview of SQL Server 2000 Ð đc và hiu bài vit này bn phi có kin thc cn bn v SQL và Access Database Gii Thiu SQL Server 2000 SQL Server 2000 là mt h thng qun lý c s d liu (Relational Database Management System (RDBMS) ) s dng Transact-SQL đ trao đi d liu gia Client computer và SQL Server computer. Mt RDBMS bao gm databases, database engine và các ng dng dùng đ qun lý d liu và các b phn khác nhau trong RDBMS. SQL Server 2000 đc ti u đ có th chy trên môi trng c s d liu rt ln (Very Large Database Environment) lên đn Tera-Byte và có th phc v cùng lúc cho hàng ngàn user. SQL Server 2000 có th kt hp "n ý" vi các server khác nh Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server SQL Server có 7 editions: • Enterprise : Cha đy đ các đc trng ca SQL Server và có th chy tt trên h thng lên đn 32 CPUs và 64 GB RAM. Thêm vào đó nó có các dch v giúp cho vic phân tích d liu rt hiu qu (Analysis Services) • Standard : Rt thích hp cho các công ty va và nh vì giá thành r hn nhiu so vi Enterprise Edition, nhng li b gii hn mt s chc nng cao cp (advanced features) khác, edition này có th chy tt trên h thng lên đn 4 CPU và 2 GB RAM. • Personal: đc ti u hóa đ chy trên PC nên có th cài đt trên hu ht các phiên bn windows k c Windows 98. • Developer : Có đy đ các tính nng ca Enterprise Edition nhng đc ch to đc bit nh gii hn s lng ngi kt ni vào Server cùng mt lúc Ðây là edition mà các bn mun hc SQL Server cn có. Chúng ta s dùng edition này trong sut khóa hc. Edition này có th cài trên Windows 2000 Professional hay Win NT Workstation. • Desktop Engine (MSDE): Ðây ch là mt engine chy trên desktop và không có user interface (giao din). Thích hp cho vic trin khai ng dng máy client. Kích thc database b gii hn khong 2 GB. HC SQL SERVER 2000 3 http://ebooks.vdcmedia.com • Win CE : Dùng cho các ng dng chy trên Windows CE • Trial: Có các tính nng ca Enterprise Edition, download free, nhng gii hn thi gian s dng. Cài Ðt SQL Server 2000 (Installation) Các bn cn có Developer Edition và ít nht là 64 MB RAM, 500 MB hard disk đ có th install SQL Server. Bn có th install trên Windows Server hay Windows XP Professional, Windows 2000 Professional hay NT Workstation nhng không th install trên Win 98 family. Vì mt trong nhng đc đim ca các sn phm Microsoft là d install nên chúng tôi không trình bày chi tit v cách install hay các bc install mà ch trình bày các đim cn lu ý khi install mà thôi. Nu các bn gp tr ngi trong vic install thì có th đa lên forum đ hi thêm. Khi install bn cn lu ý các đim sau: màn hình th hai bn chn Install Database Server. Sau khi install xong SQL Server bn có th install thêm Analysis Service nu bn thích. màn hình Installation Definition bn chn Server and Client Tools. Sau đó bn nên chn kiu Custom và chn tt c các b phn ca SQL Server. Ngoài ra nên chn các giá tr mc đnh (default) màn hình Authentication Mode nh chn Mixed Mode . Lu ý vì SQL Server có th dùng chung ch đ bo mt (security) vi Win NT và cng có th dùng ch đ bo mt riêng ca nó. Trong Production Server ngi ta thng dùng Windows Authetication vì đ an toàn cao hn và d dàng cho ngi qun lý mng và c cho ngi s dng. Ngha là mt khi bn đc chp nhn (authenticated) kt ni vào domain thì bn có quyn truy cp d liu (access data) trong SQL Server. Tuy nhiên ta nên chn Mixed Mode đ d dàng cho vic hc tp. Sau khi install bn s thy mt icon nm góc phi bên di màn hình, đây chính là Service Manager. Bn có th Start, Stop các SQL Server services d dàng bng cách double-click vào icon này. Mt chút kin thc v các Version ca SQL Server SQL Server ca Microsoft đc th trng chp nhn rng rãi k t version 6.5. Sau đó Microsoft đã ci tin và hu nh vit li mt engine mi cho SQL Server 7.0. Cho nên có th nói t version 6.5 lên version 7.0 là mt bc nhy vt. Có mt s đc tính ca SQL Server 7.0 không tng thích vi version 6.5. Trong khi HC SQL SERVER 2000 4 http://ebooks.vdcmedia.com đó t Version 7.0 lên version 8.0 (SQL Server 2000) thì nhng ci tin ch yu là m rng các tính nng v web và làm cho SQL Server 2000 đáng tin cy hn. Mt đim đc bit đáng lu ý version 2000 là Multiple-Instance. Nói cho d hiu là bn có th install version 2000 chung vi các version trc mà không cn phi uninstall chúng. Ngha là bn có th chy song song version 6.5 hoc 7.0 vi version 2000 trên cùng mt máy (điu này không th xy ra vi các version trc đây). Khi đó version c trên máy bn là Default Instance còn version 2000 mi va install s là Named Instance. Các thành phn quan trng trong SQL Server 2000 SQL Server 2000 đc cu to bi nhiu thành phn nh Relational Database Engine, Analysis Service và English Query Các thành phn này khi phi hp vi nhau to thành mt gii pháp hoàn chnh giúp cho vic lu tr và phân tích d liu mt cách d dàng. Relational Database Engine - Cái lõi ca SQL Server: Ðây là mt engine có kh nng cha data các quy mô khác nhau di dng table và support tt c các kiu kt ni (data connection) thông dng ca Microsoft nh ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC). Ngoài ra nó còn có kh nng t điu chnh (tune up) ví d HC SQL SERVER 2000 5 http://ebooks.vdcmedia.com nh s dng thêm các tài nguyên (resource) ca máy khi cn và tr li tài nguyên cho h điu hành khi mt user log off. Replication - C ch to bn sao (Replica): Gi s bn có mt database dùng đ cha d liu đc các ng dng thng xuyên cp nht. Mt ngày đp tri bn mun có mt cái database ging y ht nh th trên mt server khác đ chy báo cáo (report database) (cách làm này thng dùng đ tránh nh hng đn performance ca server chính). Vn đ là report server ca bn cng cn phi đc cp nht thng xuyên đ đm bo tính chính xác ca các báo cáo. Bn không th dùng c ch back up and restore trong trng hp này. Th thì bn phi làm sao? Lúc đó c ch replication ca SQL Server s đc s dng đ bo đm cho d liu 2 database đc đng b (synchronized). Replication s đc bàn k trong bài 12 Data Transformation Service (DTS) - Mt dch v chuyn dch data vô cùng hiu qu Nu bn làm vic trong mt công ty ln trong đó data đc cha trong nhiu ni khác nhau và các dng khác nhau c th nh cha trong Oracle, DB2 (ca IBM), SQL Server, Microsoft Access Bn chc chn s có nhu cu di chuyn data gia các server này (migrate hay transfer) và không ch di chuyn bn còn mun đnh dng (format) nó trc khi lu vào database khác, khi đó bn s thy DTS giúp bn gii quyt công vic trên d dàng nh th nào. DTS s đc bàn k trong bài 8. Analysis Service - Mt dch v phân tích d liu rt hay ca Microsoft D liu (Data) cha trong database s chng có ý ngha gì nhiu nu nh bn không th ly đc nhng thông tin (Information) b ích t đó. Do đó Microsoft cung cp cho bn mt công c rt mnh giúp cho vic phân tích d liu tr nên d dàng và hiu qu bng cách dùng khái nim hình khi nhiu chiu (multi- dimension cubes) và k thut "đào m d liu" (data mining) s đc chúng tôi gii thiu trong bài 13. English Query - Mt dch v mà ngi Vit Nam chc là ít mun dùng :-) (?) Ðây là mt dch v giúp cho vic query data bng ting Anh "trn" (plain English). Meta Data Service: Dch v này giúp cho vic cha đng và "xào nu" Meta data d dàng hn. Th thì Meta Data là cái gì vy? Meta data là nhng thông tin mô t v cu trúc ca data trong database nh data thuc loi nào String hay Integer ., mt ct nào HC SQL SERVER 2000 6 http://ebooks.vdcmedia.com đó có phi là Primary key hay không Bi vì nhng thông tin này cng đc cha trong database nên cng là mt dng data nhng đ phân bit vi data "chính thng" ngi ta gi nó là Meta Data. Phn này chc là bn phi xem thêm trong mt thành phn khác ca SQL Server sp gii thiu sau đây là SQL Server Books Online vì không có bài nào trong lot bài này nói rõ v dch v này c. SQL Server Books Online - Quyn Kinh Thánh không th thiu: Cho dù bn có đc các sách khác nhau dy v SQL server thì bn cng s thy books online này rt hu dng và không th thiu đc( cho nên Microsoft mi hào phóng đính kèm theo SQL Server). SQL Server Tools - Ðây là mt b đ ngh ca ngi qun tr c s d liu (DBA ) Ái chà nu k chi tit ra thì hi nhiu đy cho nên bn cn đc thêm trong books online. đây ngi vit ch k ra mt vài công c thông dng mà thôi. ̇ Ðu tiên phi k đn Enterprise Manager. Ðây là mt công c cho ta thy toàn cnh h thng c s d liu mt cách rt trc quan. Nó rt hu ích đc bit cho ngi mi hc và không thông tho lm v SQL. ̇ K đn là Query Analyzer. Ði vi mt DBA gii thì hu nh ch cn công c này là có th qun lý c mt h thng database mà không cn đn nhng th khác. Ðây là mt môi trng làm vic khá tt vì ta có th đánh bt k câu lnh SQL nào và chy ngay lp tc đc bit là nó giúp cho ta debug my cái stored procedure d dàng. ̇ Công c th ba cn phi k đn là SQL Profiler. Nó có kh nng "chp" (capture) tt c các s kin hay hot đng din ra trên mt SQL server và lu li di dng text file rt hu dng trong vic kim soát hot đng ca SQL Server. ̇ Ngoài mt s công c trc quan nh trên chúng ta cng thng hay dùng osql và bcp (bulk copy) trong command prompt. Tóm li trong bài này chúng ta đã do qua mt vòng đ tìm hiu v SQL Server. Trong bài sau chúng ta cng s tip tc do chi thêm mt chút vi Transact- SQL trc khi đi sâu vào các đ tài khác. HC SQL SERVER 2000 7 http://ebooks.vdcmedia.com Transact SQL Gii Thiu S Lc V Transact SQL (T-SQL) Transact-SQL là ngôn ng SQL m rng da trên SQL chun ca ISO (International Organization for Standardization) và ANSI (American National Standards Institute) đc s dng trong SQL Server khác vi P-SQL (Procedural- SQL) dùng trong Oracle. Trong bài này chúng ta s tìm hiu s qua v T-SQL. Chúng đc chia làm 3 nhóm: Data Definition Language (DDL): Ðây là nhng lnh dùng đ qun lý các thuc tính ca mt database nh đnh ngha các hàng hoc ct ca mt table, hay v trí data file ca mt database .thng có dng • Create object_Name • Alter object_Name • Drop object_Name Trong đó object_Name có th là mt table, view, stored procedure, indexes . Ví d: Lnh Create sau s to ra mt table tên Importers vi 3 ct CompanyID,CompanyName,Contact USE Northwind CREATE TABLE Importers( CompanyID int NOT NULL, CompanyName varchar(40) NOT NULL, Contact varchar(40) NOT NULL ) Lnh Alter sau đây cho phép ta thay đi đnh ngha ca mt table nh thêm(hay bt) mt ct hay mt Constraint .Trong ví d này ta s thêm ct ContactTitle vào table Importers USE Northwind HC SQL SERVER 2000 8 http://ebooks.vdcmedia.com ALTER TABLE Importers ADD ContactTitle varchar(20) NULL Lnh Drop sau đây s hoàn toàn xóa table khi database ngha là c đnh ngha ca table và data bên trong table đu bin mt (khác vi lnh Delete ch xóa data nhng table vn tn ti). USE Northwind DROP TABLE Importers Data Control Language (DCL): Ðây là nhng lnh qun lý các quyn truy cp lên tng object (table, view, stored procedure .). Thng có dng sau: • Grant • Revoke • Deny Ví d: Lnh sau s cho phép user trong Public Role đc quyn Select đi vi table Customer trong database Northwind (Role là mt khái nim ging nh Windows Group s đc bàn k trong phn Security) USE Northwind GRANT SELECT ON Customers TO PUBLIC Lnh sau s t chi quyn Select đi vi table Customer trong database Northwind ca các user trong Public Role USE Northwind DENY SELECT ON Customers TO PUBLIC Lnh sau s xóa b tác dng ca các quyn đc cho phép hay t chi trc đó USE Northwind REVOKE SELECT ON Customers TO PUBLIC HC SQL SERVER 2000 9 http://ebooks.vdcmedia.com Data Manipulation Language (DML): Ðây là nhng lnh ph bin dùng đ x lý data nh Select, Update, Insert, Delete Ví d: Select USE Northwind SELECT CustomerID, CompanyName, ContactName FROM Customers WHERE (CustomerID = 'alfki' OR CustomerID = 'anatr') ORDER BY ContactName Insert USE Northwind INSERT INTO Territories VALUES (98101, 'Seattle', 2) Update USE Northwind UPDATE Territories SET TerritoryDescription = 'Downtown Seattle' WHERE TerritoryID = 98101 Delete USE Northwind DELETE FROM Territories WHERE TerritoryID = 98101 Vì phn này khá cn bn nên chúng tôi thit ngh không cn gii thích nhiu. Chú ý trong lnh Delete bn có th có ch From hay không đu đc. Nhng mà chúng ta s chy th các ví d trên đâu? Ð chy các câu lnh thí d trên bn cn s dng và làm quen vi Query Analyser HC SQL SERVER 2000 10 http://ebooks.vdcmedia.com Cú Pháp Ca T-SQL: Phn này chúng ta s bàn v các thành phn to nên cú pháp ca T-SQL Identifiers Ðây chính là tên ca các database object. Nó dùng đ xác đnh mt object. (Chú ý khi nói đn Object trong SQL Server là chúng ta mun đ cp đn table, view, stored procedure, index .Vì hu nh mi th trong SQL Server đu đc thit k theo kiu hng đi tng (object-oriented)). Trong ví d sau TableX, KeyCol, Description là nhng identifiers CREATE TABLE TableX (KeyCol INT PRIMARY KEY, Description NVARCHAR(80)) Có hai loi Identifiers mt loi thông thng (Regular Identifier) và mt loi gi là Delimited Identifier, loi này cn có du "" hay du [] đ ngn cách. Loi Delimited đc dùng đi vi các ch trùng vi t khóa ca SQL Server (reserved keyword) hay các ch có khong trng. . Transact- SQL là ngôn ng chính đ giao tip vi SQL Server. Trong bài sau chúng ta s tip tc bàn v cu trúc bên trong ca SQL Server . HC SQL SERVER 2000. đn mt (SQL) Server nào đó là ta nói đn mt Instance ca SQL Server 2000, thông thng đó là Default Instance. Mt Instance ca SQL Server 2000 có 4