Professional Documents
Culture Documents
SQL 2005 1 Practice Book
SQL 2005 1 Practice Book
Bi tp SQL 2005 1
tinyint char AiTi-Aptech Kin to tng lai varchar integrity Data nchar integrity Entity nvarchar Referential integrity text Domain integrity ntext User-defined integrity image Order Data Type - timestamp - bit - table - sql_variant - uniqueidentifier(GUID) Binary Monetary Numberic Interger Text
Ti liu lu hnh ni b
Page 1 of 24
Ti liu lu hnh ni b
Li gii thiu
Sch bi tp do tp th gio vin AiTi-Aptech thit k v c s dng nh mt phn khng th tch ri khi gio trnh ang hc ca Aptech n vi cc hc vin ang theo hc ti Trung tm. Tp sch bi tp ny l ti liu lu hnh ni b, ch dnh cho cc hc vin theo hc ti Trung tm o to Lp trnh vin Quc t AiTi-Aptech. Mi hnh thc sao chp li ni dung ca sch l vi phm bn quyn v khng tun th Lut S hu tr tu ca Nh nc Vit Nam. AiTi-Aptech lun mong mi to dng mt mi trng hc tp tt cho cc bn hc vin theo hc ti trung tm. Mi kin ng gp v xy dng Sch bi tp, ci tin h thng xin gi mail v contact.aiti@gmail.com hoc ng dy nng (04) 6 64 8848. Chng ti s ghi nhn v ci tin c th cung cp cho cc bn mt mi trng hc tp ngy mt tt hn.
i thit k Sch bi tp
Page 3 of 24
Contents
Chng 1 : Gii thiu h qun tr C s d liu (CSDL) ..........................................................................................3 Chng 2 : Tng quan v SQL Server 2005..............................................................................................................4 Chng 3 : Bng v cc kiu d liu......................................................................................................................12
H thng CSDL u im: d liu nht qun, khng d tha, c kh nng chia s d liu cao, d dng truy vn d liu v tnh bo mt cao. Nhc im: chi ph cao, tn dung lng nh, cc thao tc bo tr, ti u d liu kh khn.
3. H qun tr CSDL 1. Khi nim: CSDL l mt tp cc d liu c lin quan vi nhau cn H qun tr CSDL l mt tp cc chng trnh c dng thm, sa, xa cc d liu trong CSDL. 2. (?) Lit k nhng li ch ca H qun tr CSDL 1) 2) 3) 4)
Ti liu lu hnh ni b
5) 6) 7) 8) 4. Cc m hnh d liu M hnh File phng M hnh Phn cp M hnh Mng M hnh Quan h (?) Thc hin so snh u nhc im trong vic t chc v lu tr d liu cng nh truy vn d liu t cc m hnh trn.
5. H qun tr CSDL Quan h 1. Khi nim: t khi nim H qun tr CSDL ta c th d dng nh ngha khi nim H qun tr CSDL Quan h (RDBMS) l H qun tr CSDL theo m hnh d liu quan h. 2. (?) Cc khi nim trong H qun tr CSDL Quan h: 1) D liu c biu din di dng mt tp cc 2) Mi quan h c biu din di dng 3) Cc ct d liu trong bng l cc 4) Mi dng d liu biu din thng tin ca mt 5) Mi bng d liu c mt tp cc thuc tnh c gi l cho php biu din mt Thc th duy nht. Bi tp: 1) Vit mt chng trnh C cho php lu d liu ca 2 bng Table 1.8 v Table 1.11 trong trang 18 v 19 ca sch vo trong file phng. a. Vit hm ly thng tin khch hng theo s in thoi, v d nhp liu: 0241 chng trnh hin th thng tin 2 khch hng l Ryan v Bruce. b. Vit hm hin th danh sch khch hng v s lng n hng m khch hng t. 2) Hy lit k nhng cu hi truy vn v nhng thng tin m bn c th thu c t Table 1.8 v Table 1.11 nh Khch hng t nhiu n hng nht?, T ngy 01/08/06 n 20/08/06 c bao
Trung tm o to Lp trnh vin Quc t AiTi-Aptech 35/115 Ph nh Cng Hong Mai
Page 5 of 24
nhiu n hng? v.v.. ri th trao i vi cc bn ca bn v nhng cu hi ny, cng nhau xc nh xem cn vit bao nhiu hm trong chng trnh C tr li cc cu hi ny.
Tm tt ni dung cn ghi nh
Gii thiu:
SQL Server 2005 l mt H Qun l C S D Liu (CSDL) Quan h. N cng c coi l mt nn tng d liu cp doanh nghip.
2.
(?) Cho bit cc tnh nng c bn ca SQL Server 2005. Cc tnh nng mi ca SQL Server 2005 bao gm:
- Notification Services: cho php gi thng bo khi c mt s kin xy ra trong
CSDL.
- Reporting Services: dch v bo co v cc s kin xy ra trn h thng CSDL. - Service Broker: cng ngh ny da trn kin trc hng dch v (Service Oriented
Architecture - SOA). N cung cp phng thc lin lc chc chn v bo mt gia cc CSDL vi nhau.
- Engine CSDL nng cao: ci tin ngn ng Transact-SQL, thm tnh nng mi XML,
Ti liu lu hnh ni b
3.
4.
Page 7 of 24
- M hnh 2 lp: gm 2 lp Data Presentation v Data Services - M hnh 3 lp: gm 3 lp Data Presentation, Application Logic v Data Services.
5.
Cc CSDL h thng:
- master: lu tr tt c thng tin h thng cho mt instance ca SQL Server. - msdb: c chng trnh SQL Server Agent dng hn gi thng bo hay thc
hin tc v.
- model: dng lm mu to CSDL mi. - Resource: cha cc i tng h thng c trong SQL Server 2005. - tempdb: dng cha cc d liu tm.
6.
File v Filegroup:
C 3 kiu file c bn trong SQL Server 2005:
- File d liu chnh: .mdf - Cc file d liu ph: .ndf - File log: .ldf
7.
Ti liu lu hnh ni b
b. Kin trc vt l: - Page v Extent: 1 page chim 8KB b nh, 1 extent bng 8 page. - File v Filegroup. - Vic ghi log cc giao dch cho php khi phc CSDL v trng thi trc khi c thay
i.
8.
B. 1.
Bi tp
Ci t SQL Server 2005:
Da theo Ph lc A (tr. 263), hc vin ci SQL Server 2005 bn Enterprise ln my ca mnh. Lu :
- Figure 11 (tr. 273), m mc Documentation, Sample, and ri chn ci t
CSDL AdventureWorks.
- Figure 13 (tr. 275), chn Use the built-in System account, chn Local system. 2.
Kt ni v thao tc:
Page 9 of 24
- M Microsoft SQL Server Management Studio. - Kt ni n instance ca SQL Server 2005 bn Enterprise. - Ngt kt ni (disconnect) v kt ni li. - ng v m li cc panel Object Explorer, Object Explorer Details. - Duyt cy th mc trong Object Explorer, xem xt nhng thay i bn Object
Truy vn d liu:
- S dng Query Designer, t CSDL AdventureWorks ly d liu v ngy sinh, gii
Employee v Contact. Ly d liu v h tn (FirstName, LastName, MiddleName), ngy sinh, gii tnh, tnh trng hn nhn, chc v ca cc nhn vin.
Ti liu lu hnh ni b
V.
Transact-SQL Language
A. 1.
Tm tt ni dung cn ghi nh
Gii thiu:
Ngn ng truy vn c cu trc (Structured Query Language SQL) l ngn ng ph bin dnh cho CSDL. Da trn chun SQL ca Hip hi Tiu chun Quc t (ISO) v Vin Tiu chun Quc gia Hoa K (ANSI), tp on Microsoft pht trin mt ngn ng mi, l Transact-SQL (T-SQL).
2.
Ngn ng T-SQL
a. Bin: - Bin cc b: (?) Nu cch khai bo v gn gi tr cho bin cc b. - Bin ton cc: @@VERSION, @@LANGUAGE, @@SERVERNAME, b. Kiu d liu: - Nhng i tng c nh kiu l: cc ct trong bng, tham s, bin. - Cc kiu d liu thng dng: int, bigint, nvarchar, ntext, datetime, smalldatetime,
decimal, image.
c. Ghi ch:
3.
a. Cc hm: - Hm gp: SUM (tnh tng), AVG (gi tr trung bnh), COUNT (m), MAX (tm gi
Books Online.
- Hm ton hc: phc v vic tnh ton i s. - Hm h thng: cung cp thng tin v siu d liu v cc cu hnh ca h thng. - Hm xp hng: nh s dng bt u t 1, 2, 3 trong tp hp kt qu
4.
a. To bng:
CREATE TABLE <Tn_Bng> (<Tn_Ct1> <Kiu_d_liu>, <Tn_Ct2> <Kiu_d_liu>,)
CREATE TABLE Contacts (MailID varchar(20) PRIMARY KEY, Name text NOT NULL, TelephoneNumber int)
Ti liu lu hnh ni b
ALTER TABLE <Tn_Bng> [ALTER COLUMN <Tn_Ct> <Kiu_d_liu_mi>] | [ADD <Tn_Ct> <Kiu_d_liu>] | [DROP COLUMN <Tn_Ct>
5.
a. C bn:
Ngn ng thao tc d liu (Data Manipulation Language DML) s dng cc lnh SELECT, INSERT, UPDATE, DELETE thc hin nhng thao tc tng ng trn cc i tng to bi DDL.
UPDATE Contacts SET TelephoneNumber = 382915 WHERE Name = John
b. Nng cao: - Biu thc bng thng thng (Common Table Expression - CTE)
WITH <Tn_CTE> (<Danh_sch_ct_ca_CTE>) AS (SELECT <Danh_sch_ct> FROM <Tn_bng>)
6.
Page 13 of 24
Ngn ng iu khin d liu (Data Control Language DCL) s dng cc lnh GRANT, REVOKE, DENY phn quyn v hy quyn truy cp, sa i cc i tng trong CSDL.
7.
8.
B.
Bi tp
Trong CSDL AdventureWorks:
- Hin th tng s nhn vin n trong bng HumanResources.Employee. - Hin th 15% s dng ca bng Person.Contact.
Ti liu lu hnh ni b
Kch thc
200 18, 4
Item.
- Xa ct Picture khi bng Item. - Xa thng tin v cc sn phm c tn l HL Mountain Frame - Black, 48 trong
bng Item.
- Hy ton b bng Item. - To mt file script ghi li cc thao tc thc hin trong bi tp ny. t tn file l
baitap05.sql.
- S dng cc ghi ch m t r ngha ca tng dng lnh. VD:
-- Delete all records from table Item DELETE FROM Item
Page 15 of 24
- ng file baitap05.sql. M li file ny, nhn F5 chy ton b cc lnh trong file.
Mi bng c nh ngha nhiu trng,mi trng(field hay cn gi l column name) ng vi mt loi kiu d liu. D liu nhp vo c th chp nhn hoc t chi ty thuc vo nguyn tc rng buc d liu hoc loi d liu tng thch do h thng hay ngi dng nh ngha.
Khi thit k c s d liu nn t tn bng ng chun, iu ny gip cho vic lp trnh theo nhm ,hay lm vic trong cc cng ty chuyn nghip, bn nn s dng tip u ng tbl trc, k n l tn bng
Khi nh ngha bng s liu, bn cn quan tm n cc yu t sau: Key: Trng c Kha hay khng (Primary key) ID: Trng c thuc tnh Indentity hay khng Column name: Tn ca trng (ct) Data Type: Loi d liu cho trng tng ng Size: Kch thc trng d liu Allow null: Cho php gi tr rng lu trong trng hay khng Default: Gi tr mc nhin cho trng Identity: Nu bn cn s dng mt trng c gi tr t ng nh Autonumber trong Access, trng ny Not Null v Identity:Yes Identity Seed: Nu trng (ct) ny l Identity , cn s bt u s 1 hoc 2 Identity Increament: S nhy cho mi ln tng 1) To bng- Create table: Tn bng nn t ngn gn v d hiu, khng c khong trng, khng trng vi nhng t dnh ring, c ngha khi ng nghip ca bn cng pht trin ng dng s d dng hiu c
Ti liu lu hnh ni b
C php y pht biu to bng nh sau: CREATE TABLE <Table_Name> (<Column_Name> <Data_Type>) Example: CREATE TABLE tblEmployee ( Type_emp nvarchar(2),
Name_emp nvarchar(20) ) 2) Tn ct Column Name: t tn ct cng ging nh t tn bng, c rt nhiu qui tc t tn ( nh trnh by phn table nhng khuyn khch bn t tn theo mt s qui tc c bn sau: Tn ct bt u bng ch hoa, cn li bng ch thng Tn ngn gn v y ngha Khng nn t tn ct c khong trng, sau ny bn s gp phin toi khi tham chiu n trng Khng nn t ct trng vi t kha, t dnh ring v nhng k t c bit nh cc php ton hay ton t khc 3) Kiu d liu Data Type: Khi xy dng c s d liu, tt c cc trng trong bng cn phi c kiu d liu c th.Vn quan trng l vic chn kiu d liu no cho ph hp vi d liu m ngi dng s nhp vo. thit k d liu cho ph hp vi thc t ngoi tnh ng dng hp vi ng cnh bn cng cn quan tm n kiu d liu tng thch v chiu di ca tng ct VD: [CustomerNo] [varchar] (10) NULL
Trn thc t, thng thng trong qu trnh x l d liu, mt vi trng hp khi cn trao i thng tin nhng c s khc nhau v kiu d liu chng ta cn c cc hm chuyn i qua li cc kiu d liu
Page 17 of 24
lm c iu ny chng ta cn mt s kin thc v cc hm chuyn i ca SQL Server. Tuy nhin cng c mt s kiu d liu khng th chuyn i c. V d nh binary khng th chuyn i sang d liu s nh float hay real. Nhng bn c th chuyn i float, real, decimal, numeric sang text hay ntext
4) Ton vn d liu Data integrity: Trong qu trnh chy ng dng th vic ton vn d liu trong c s d liu l mt iu rt quan trong. SQL Server 2000 cung cp mt vi thuc tnh ti u trong phng thc rng buc d liu khi xy dng c s d liu. Constrains cn gi l rng buc. N dng kim tra khi c s bin i d liu nh thm vo, xa, cp nht t bt k ngun no khc nhau Mt s bng c s thay i v lng v cht ca d liu phi theo mt qui lut nht nh no nhm bo ton c tnh rng buc trn vn i vi d liu ang tn ti trong nhng bng c quan h vi nhau. Mi khi cc hnh ng lm thay i d liu xy ra, qu trnh kim tra cc rng buc c thc hin nh l mt phng thc r sot li tt c cc iu kin v cc qui lut khi thit lp c s d liu Nu mt d liu thm vo hoc xa i hay cp nht khng tha mn iu kin hoc qui lut nh, ty vo nhm phn li m SQL pht sinh ngoi l (exception) nhm thng bo cho ngi dng bit rng d liu a vo khng hp l,d liu khi s khng c php cp nht v thay i trong c s d liu.
1. Domain integrity: Domain integrity lin quan n nhiu ct.ng vi mi ct c mt qui lut hay tiu chun.Khi bn thm hay cp nht mu tin rng buc ny kim tra m khng cn xt n s lin quan n cc mu tin trong bng
2. Entitty integrity: Entity integrity lin quan n cc mu tin, rng buc ny khng quan tm n ct trong mu tin, kim tra s liu c ng tiu chun hay khng
3. Referential integrity: Referential integrity kim tra gi tr ca ct c ph hp vi ct trong bng khc quan h vi bng hin cha rng buc hay khng.
Ti liu lu hnh ni b
4. User-defined integrity y l kiu ton vn d liu do ngi dng t to ra kim tra tnh ton vn d liu trong c s d liu.
SQL Server Tools 1. Dng buc kha chnh- Primary Key Constraints 2. Dng buc duy nht UNIQUE Constraints 3. Dng buc ng nht IDENTITY columns
Domain Integrity
1. Rng buc mc nhin - DEFAULT definition 2. Rng buc kha ngoi - FOREIGN KEY constraint 3. Rng buc kim tra - CHECK constraint 4. NOT NULL property
Referential Integrity
User-defined Integrity
5) Rng buc kha chnh Promary Key constraints: Primary key c chia lm hai kiu:
Trung tm o to Lp trnh vin Quc t AiTi-Aptech 35/115 Ph nh Cng Hong Mai
Page 19 of 24
Composite key Candidate key Identifying the Primary Key Primary key l cch duy nht nhn dng mt mu tin trong bng d liu nn chng phi cha duy nht mt gi tr, khng th null, v tun theo cc rng buc vi cc bng quan h khc. Kha chnh l nn tng cho rng buc Primary constraints. Khi d liu thm vo hay sa i trn ct Primary key qu trnh kim tra rng buc Primary Key s xy ra. o o
Note: o o o o Mt bng c duy nht mt kha chnh Mt kha chnh c th cha mt hoc nhiu trng Primary key khng th xa nu tn ti mt foreign key ti bng khc Khi to primary key trong bng m cha d liu th SQL server 2000 check xem d liu trong ct cn to primary key c null hay trng lp gi tr khng.nu null hay trng lp SQL server 2000 s tr v mt li To kha chnh trong bng: Systax: CREATE TABLE Table_Name ( Column_definition PRIMARY KEY) Example: CREATE TABLE Reservation ( PNR_no int PRIMARY KEY )
Hoc sau khi bn to xong bng d liu: ALTER TABLE Table_name ADD CONSTRAINT <constraint_nam> PRIMARY KEY (column_name) Example: ALTER TABLE Rerservation ADD CONSTRAINT PK_const PRIMARY KEY (PNR_no)
Ti liu lu hnh ni b
6) Rng buc kha ph - FOREIGN KEY Constraint: Foreign key dng to mi quan h gia cc bng vi nhau vi mt bng l bng chnh v mt bng l bng ph. Syntax: <column_name> FOREIGN KEY REFERENCES Table_name (column_name) Or: CONSTRAINT FOREIGN KEY(column_name) REFERENCES Table_name (column_name)
7) Rng buc duy nht - Unique constraints: - Rng buc ny ging nh rng buc kha chnh nhng ch yu cu gi tr duy nht cha trong ct trong mi bng d liu. - Mt khi thit lp rng buc duy nht cho mt ct th gi tr trong ct l duy nht. Nu gi tr trong ct thay i khi mu tin thm vo hay sa i b trng lp, li s pht sinh. To Unique constraint: CREATE TABLE Table_name ( <column_name> NOT NULL UNIQUE) Nu bng tn ti: ALTER TABLE Table_name ADD CONSTRAINT UK_name UNIQUE(column_name) Note: o o UNIQUE cho php cha gi tr null UNIQUE cng c th c coi l FOREIGN KEY
8) Identity property: Mt cch khc bo ton d liu thc th l p dng thuc tnh identity cho ct.Thuc tnh ny c th p dng cho cc kiu d liu nh decimal, int, smailint or numberic.Khi n s to gi tr duy nht cho cc dng d liu trong bng. Syntax: Column_name Data Type IDENTITY (seed,increment)
Page 21 of 24
S rng buc ny rt th v. Thng thng khi nhp thm mu tin hay cp nht s liu i khi do nhm ln trong thao tc nhp liu, gi tr ngi dng a vo khng ng nh mong mun ( tuy nguyn tc c php th ph hp), cho nn gi tr vn tn ti, mc d kt qu tr v khng ng ngn iu ny xy ra, chng ta cn c rng buc CHECK. Mc ch ca rng buc ny l kim tra li cc gi tr trong cc ct rng buc c ph hp hay khng
VD: ALTER TABLE tblSIM ADD CONSTRAINT CN_tbnSIMInvoiceDate CHECK (InvoiceDate<= getDate())
10) Rng buc mc nhin: Rng buc ny gip ging nh cc rng buc khc, n gip cho nh ngha ca bng c d liu ph hp ngay c khi khng c ngi dng nhp vo. Khi cc bn thm mt mu tin vo nu bn a d liu vo trng rng th gi tr default s c s dng
Syntax: <column_name> data_type DEFAULT value Or: ALTER TABLE Table_name ADD CONSTRAINT cons_name DEFAULT value FOR Column_name
11) Thay i cu trc bng v xa bng: Khi to bng song ,i khi chng ta cn thay i cc trng trong bng , hay cc constraint trong bng hoc xa bngCc thao tc chng ta c th hon ton lm c vi: o o Enterprise Manager Transact- SQL 1. Thay i cu trc bng:
Ti liu lu hnh ni b
C php thay i cu trc bng: ALTER TABLE <Table_name> [ALTER COLUMN <Column_name> <New_data_type>] | ADD [Column_name <Data_type>] | DROP COLUMN <Column_name>]
Bi tp chng:
Thit k c s d liu lu tr thng tin ca khch hng vi cc bng Customers: cha thng tin chi tit ca khch hng Accounts: cha thng tin v account ngi s dng CustomerType:Dng phn loi cc kiu khch hng
Customers : Id : Kha chnh Type: khch thuc loi no ( Kha ph lin kt vi bng CustomerType) Name: tn ca khch Gender: gii tnh Phone Company BirthDay ( vi iu kin nh hn ngy hin ti) Age DateCreate: Ngy to (mc nh l ngy hin hnh) Accounts:
Trung tm o to Lp trnh vin Quc t AiTi-Aptech 35/115 Ph nh Cng Hong Mai
Page 23 of 24
Cust_Id: kha ngoi lin kt vi bng Customer Email: ( kha chnh ) Password: CustomerType: Name_Type: Tn kiu ( Kha chnh) DiscountRate: phn trm gim gi cho khch hng ( mc nh l 5) Describe: M t Sau khi to xong cc bng thc hin thay i nhng Thm hai trng sau vo bng Customers: Address Country Xa trng Age trong bng Customers