17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

Embed Size (px)

Citation preview

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    1/46

    TRNG I HC HNG HI VIT NAM

    KHOA CNG NGH THNG TIN

    B MN H THNG THNG TIN

    -----***-----

    BI GING

    THC TP CHUYN NGNH (SQL SERVER)

    TN HC PHN : THC TP CHUYN NGNH(SQL SERVER)

    M HC PHN : 17413TRNH O TO : I HC CHNH QUYDNG CHO SV NGNH : CNG NGH THNG TIN

    HI PHNG - 2011

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    2/46

    2

    MC LC

    Ni dung TrangChng 1: Gii thiu Microsoft SQL Server (2005) 51.1. Cc thnh phn v chc nng ca SQL Server 51.2. Gii thiu b cng c qun l SQL Server (2005) (SQL Server Management Studio -SSMS)

    5

    Chng 2: Ci t Microsoft SQL Server (2005) 72.1. Cc yu cu ci t (Installation requirements) 72.2. Thc hin ci t (Installation walkthrough) 8Chng 3: Bo mt v qun tr ngi dng 93.1. Qun l ng nhp SQL Server (Logins) 93.2. Qun l ngi dng SQL Server (Users) 93.3. Qun l cc nhm quyn CSDL (Database roles) 10

    3.4. Qun l phn quyn ngi dng trong SQL Server (Permissions) 11Chng 4: To v qun l c s d liu 124.1. To c s d liu (Database) 124.2. Xa c s d liu 13Chng 5: To v qun l cc bng 145.1. To bng (Tables) 145.2. nh ngha cc ct (Columns) 155.3. nh ngha cc rng buc (Constrains) 175.4. Sa bng (ALTER TABLE) 205.5. Xa bng (DROP TABLE) 215.6. Thm bn ghi mi (INSERT) 225.7. Cp nht bn ghi (UPDATE) 235.8. Xa bn ghi (DELETE) 23Chng 6: Truy vn d liu 256.1. Truy vn c bn 256.2. Truy vn t nhiu bng 276.3. Truy vn lng nhau (Subqueries) 29Chng 7: Sao lu v phc hi CSDL 317.1. Sao lu CSDL 317.2. Phc hi CSDL 34Chng 8: Lp trnh vi ADO.NET 38

    8.1. Gii thiu v nn tng .NET 388.2. ADO.NET 2.0 v SQL Server 388.3. Kt ni n SQL Server 398.4. Thc thi cc cu lnh SQL 40MT S THI MU 44

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    3/46

    3

    Tn hc phn: Thc tp chuyn ngnh 2- SQL Server Loi hc phn: 2B mn ph trch ging dy: H thng Thng tin Khoa ph trch: CNTT.M hc phn: 17413 Tng s TC: 3Tng s tit L thuyt Thc hnh/Xemina T hc Bi tp ln n mn hc

    75 30 45 0 c khng

    Hc phn hc trc: C s d liu; H qun tr c s d liu.Hc phn tin quyt: Khng yu cu.Hc phn song song: Khng yu cu.Mc tiu ca hc phn:Cung cp cho sinh vin kin thc v k nng cn thit qun tr c s d liu (CSDL) trongMicrosoft SQL Server (2005); Gip sinh vin hiu cc chc nng ca Microsoft SQL Server (2005) xy dng cc ng dng c s d liu.Ni dung ch yu:Gii thiu Microsoft SQL Server (2005); Ci t v cu hnh Microsoft SQL Server; Bo mt vqun tr ngi dng; To v qun l CSDL; To v qun l cc bng; Truy vn d liu; Sao lu v

    phc hi CSDL; SQL Server v nn tng .NET; Xy dng cc ng dng SQL Server;Ni dung chi tit:

    TN CHNG MCPHN PHI S TIT

    TS LT TH BT KT

    Chng 1: Gii thiu Microsoft SQL Server (2005) 2 1 11.1. Cc thnh phn v chc nng ca SQL Server1.2. Gii thiu b cng c qun l SQL Server (2005) (SQLServer Management Studio- SSMS)Chng 2: Ci t Microsoft SQL Server (2005) 3 1 22.1. Cc yu cu ci t (Installation requirements)2.2. Thc hin ci t (Installation walkthrough)Chng 3: Bo mt v qun tr ngi dng 5 2 33.1. Qun l ng nhp SQL Server (Logins)3.2. Qun l ngi dng SQL Server (Users)3.3. Qun l cc nhm quyn CSDL (Database roles)3.4. Qun l phn quyn ngi dng trong SQL Server(Permissions)Chng 4: To v qun l c s d liu 5 2 34.1. To c s d liu (Database)4.2. Xa c s d liuChng 5: To v qun l cc bng 10 4 6

    5.1. To bng (Tables)5.2. nh ngha cc ct (Columns)5.3. nh ngha cc rng buc (Constrains)5.4. Sa bng (ALTER TABLE)5.5. Xa bng (DROP TABLE)5.6. Thm bn ghi mi (INSERT)5.7. Cp nht bn ghi (UPDATE)5.8. Xa bn ghi (DELETE)Chng 6: Truy vn d liu 10 4 66.1. Truy vn c bn

    6.2. Truy vn t nhiu bng6.3. Truy vn lng nhau (Subqueries)Chng 7: Sao lu v phc hi CSDL 5 2 37.1. Sao lu CSDL

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    4/46

    4

    TN CHNG MCPHN PHI S TIT

    TS LT TH BT KT

    7.2. Phc hi CSDLChng 8: Lp trnh vi ADO.NET 30 12 188.1. Gii thiu v nn tng .NET8.2. ADO.NET 2.0 v SQL Server

    8.3. Kt ni n SQL Server8.4. Thc thi cc cu lnh SQL8.5. Xy dng cc ng dng SQL Server

    Nhim v ca sinh vin:Tham d cc bui hc l thuyt v thc hnh, lm cc bi tp c giao, lm cc bi thi gia hc

    phn v bi thi kt thc hc phn theo ng quy nh.Ti liu hc tp:

    1. Ray Rankins, Paul Bertucci, Chris Gallelli, Alex T.Silverstein, Microsoft SQL Server 2005Unleashed, Sams Publishing, 2007.

    2. Brian Knightet al, Professional SQL Server 2005 Administration, Wrox Press, 2007.

    Hnh thc v tiu chun nh gi sinh vin:- Hnh thc thi: t lun hoc vn p.- Tiu chun nh gi sinh vin: cn c vo s tham gia hc tp ca sinh vin trong cc bui

    hc l thuyt v thc hnh, kt qu lm cc bi tp c giao, kt qu ca cc bi thi giahc phn v bi thi kt thc hc phn.

    Thang im: Thang im ch A, B, C, D, F.im nh gi hc phn: Z = 0,3X + 0,7Y.

    Bi ging ny l ti liu chnh thc v thng nhtca B mn H thng Thng tin, Khoa Cngngh Thng tin v c dng ging dy cho sinh vin.

    Ngy ph duyt: / /

    Trng B mn

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    5/46

    5

    Chng 1: Gii thiu Microsoft SQL Server(2005)

    1.1. Cc thnh phn v chc nng ca SQL ServerSQL Server 2005 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 v SQL Server. Mt RDBMS

    bao gm databases, database engine v cc ng dng dng qun l. d liu vcc b phn khc

    nhau trong RDBMS.

    SQL Server 2005 c tiu c th chy trn mi trng c s d liu rt ln (Very Large

    Database Environment) ln n Tera-Byte v c th phc v cng lc cho hng ngn user. SQL

    Server 2005 c th kt hp vi cc server khc nh Microsoft Internet Information Server (IIS), E -

    Commerce Server, Proxy Server....

    Cc phin bn ca SQL Server 2005:

    Enterprise: H tr khng gii hn s lng CPU v kch thc Database. H tr khng gii hn

    RAM (nhng ty thuc vo kch thc RAM ti a m HH h tr) v cc h thng 64bit.

    Standard: Tng t nh bn Enterprise nhng ch h tr 4 CPU. Ngoi ra phin bn ny cng

    khng c trang b mt s tnh nng cao cp khc.

    1.2. Gii thiu b cng c qun l SQL Server (2005) (SQLServer Management Studio- SSMS)ng nhp

    :

    Qun l c s d liu:

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    6/46

    6

    Bi tp:1. Cc phng php ng nhp SQL Server2. Cc thnh phn trong ca s qun l SQL Server

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    7/46

    7

    Chng 2: Ci t Microsoft SQL Server(2005)

    2.1. Cc yu cu ci t (Installation requirements)

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    8/46

    8

    2.2. Thc hin ci t (Installation walkthrough)Download v ci t Microsoft .NET Framework 2.0:

    ci t thnh cng SQL Server Express Edition hay cc phin bn SQL Server 2005 khc,

    Microsoft .NET Framework 2.0phi c ci t trc.

    Ci t SQL Server 2005 Express Edition:Microsoft SQL Server 2005 Express Edition l phin bn min ph, d s dng v nh ca

    Microsoft SQL Server 2005. Microsoft SQL Server 2005 Express Edition c tch hp trong

    Visual Studio 2005 to ra s d dng trong vic pht trin cc ng dng hng CSDL. SQL Server

    2005 Express Edition c t do sdng trong cc ng dng thng mi v d dng cp nht ln

    cc phin bn cao hn khi cnthit.

    Ci t SQL Server Management Studio Express:

    SQL Server Management Studio Express cung cp giao din ngi dng d dng tng tc vi

    cc thnh phn ca Microsoft SQL Server 2005 Express Edition. Trc khi ci t SQL Server

    Management Studio Express, MSXML 6.0 phi c ci t

    Double click vo file ci t Microsoft SQL Server Express Edition

    Click Next.

    Lu : SQL Server 2005 c hai kiu authentication (kim tra ngi dng).

    Windows authentication mode: Vic kim tra ngi dng ca SQL Server 2005 s ph thuc vo

    vic kim tra ngi dng ca Windows. Khi ngi dng c quyn ng nhp vo Windows, ngi

    dng s c quyn ng nhp vo SQL Server. Kiu kim tra ngi dngny thng c s

    dng khi ng dng khai thc d liu v SQL Server c ci trn cngmt my tnh.

    SQL Server authentication mode: Vic kim tra ngi dng ca SQL Server 2005 skhng ph

    thuc vo vic kim tra ngi dng ca Windows. Khi ngi dng c quyn ng nhp vo

    Windows, ngi dng cha chc s c quyn ng nhp vo SQL Server. ngnhp vo

    SQL Server, ngi dng ny phi c mt b username v password do SQL Serverqun l. Kiu

    kim tra ngi dng ny thng c s dng khi ng dng khai thc d liu v SQL Server khng

    c ci trn cng mt my tnh.

    Khi chnMixed mode, SQL Server c th dng bt k kiu kim tra ngi dng no khi cn thit.

    y l mt thit lp thc s rt hu ch khi xy dng cc ng dng CSDL. Ngoi ra, ta cng phi

    nh password vo hai bn di c th ng nhp vo SQL Server khi ta xydng mt ng

    dng truy xut vo CSDL my ny khi ta ang my khc.

    Click Next ba ln.

    Bi tp:

    Thc hin ci t SQL Server trn my ch v my khch

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    9/46

    9

    Chng 3: Bo mt v qun tr ngi dng

    3.1. Qun l ng nhp SQL Server (Logins)ng nhp:

    3.2. Qun l ngi dng SQL Server (Users)To ngi dng mi:

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    10/46

    10

    3.3. Qun l cc nhm quyn CSDL (Database roles)Thit lp nhm quyn i vi c s d liu:

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    11/46

    11

    3.4. Qun l quyn ngi dng trong SQL Server(Permissions)Thit lp quyn ca ngi s dng;

    Bi tp:

    1. Cc nhm quyn trong CSDL SQL Server

    2. Cc quyn ngi dng trong CSDL SQL Server

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    12/46

    12

    Chng 4: To v qun l cs d liu

    4.1. To c s d liu (Database)

    t tn Database trong Textbox Database Name, click OK.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    13/46

    13

    4.2. Xa c s d liuClick chut phi ln bng hay CSDL mun xa -> Delete - >OK. Trong trng hp xamt CSDL,

    nn chn du tch vo Close existing connections. Khi SQL Server 2005 s ngt tt c cc ktni vo CSDL ny v vic xa s khng gy bo li.

    Bi tp:

    1. Thc hin to mt CSDL trong SQL Server

    2. Thc hin sa i cu trc v d liu ca mt CSDL c trong SQL Server

    3. Thc hin xo mt CSDL c trong SQL Server

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    14/46

    14

    Chng 5: To v qun l cc bng

    5.1. To bng (Tables)

    Bng gm cc cc ct. Mi ct gm tn ct (Column Name), kiu d liu (Data Type) vmt gi trcho bit ct c th cha gi tr NULL hay khng. Trong bng s c t nht mt ct lm kha

    chnh (primary key). Ct lm kha chnh s c biu tng cha kha trc tn ct.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    15/46

    15Sau khi to xong tt c cc ct ca bng, tin hnh Save -> OK

    5.2. nhngha cc ct (Columns)Cu lnh CREATE TABLE c s dng nh ngha mt bng d liu mi trong CSDL. Khi

    nh ngha mt bng d liu mi, ta cn phi xc nh c cc yu cu sau y:

    Bng mi c to ra s dng vi mc ch g v c vai tr nh th no trongc s d liu.

    Cu trc ca bng bao gm nhng trng (ct) no, mi mt trng cnghanh th no trong

    vic biu din d liu, kiu d liu ca mi trng l g v trng c chophp nhn gi tr

    NULL hay khng.

    Nhng trng no s thamgia vo kha chnh ca bng. Bng c quan h vi nhng bng khc hay

    khng v nu c th quan h nh th no.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    16/46

    16Trn cc trng ca bng c tn ti nhng rng buc v khun dng, iu kin hp l cad liu

    hay khng; nu c th s dng u v nh th no.

    Cu lnh CREATE TABLE c c php nh sau

    CREATE TABLE tn_bng

    (

    tn_ct thuc_tnh_ct cc_rng_buc

    [,...

    ,tn_ct_n thuc_tnh_ct_n cc_rng_buc_ct_n]

    [,cc_rng_buc_trn_bng]

    )

    Tn_bng: tun theo quy tc nh danh, khng vt qu 128 k t

    Tn_ct: cc ct trong bng, mi bng c t nht mt ct.

    Thuc_tnh_ct: bao gm kiu d liu ca ct, gitr mc nh ca ct, ct c c thitlp thuc

    tnh identity, ct c chp nhn gi tr NULL hay khng. Trong kiu d liu l thuc tnh bt

    buc.

    Cc_rng_buc: gm cc rng buc v khun dng d liu (rng buc CHECK) hay cc rng buc

    v bo ton d liu (PRIMARY KEY, FOREIGN KEY, UNIQUE)

    V d: V d di y to mt bng c tn CUSTOMERS

    create table customers

    (

    customerid int identity (1,1) primary key,

    customername nvarchar(50) not null,

    address nvarchar(100 ) null ,

    birthday datetime null,

    gender bit default('true') not null

    )

    Ct customeridc kiu d liu int, c ch nh thuc tnh identity(1,1) ngha l d liuct nyc thm t ngbt u t 1 v mi ln c dng mi thm vo, gi tr ct ny ctng ln 1.

    Ct ny cng c ch nh lm kha chnh ca bng thng qua thuc tnhprimary key.

    Thuc tnh NULL/ NOT NULL ch ra rng ct c chp nhn/ khng chp nhn gi tr NULL.

    Ct genderc ch nh gi tr mc nh l true ngha l nu khng ch nh gi tr choct ny th

    ct ny c gi tr l true

    V d:

    Thm dng mi vo bng customers vi gi tr truyn vo y cho cc ctinsert into customers

    values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988', 'True')

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    17/46

    17Thm dng mi vo bng customers s dng gi tr mc nh

    insert into customers (customername, addr ess, birthday)

    values('Nguyen Van An', '22 Nguyen Thien Thuat', '5/5/1988')

    Thm dng mi vo bng customers v khng truyn gi tr cho cc ct cho php gi tr NULL

    insert into customers (customername )

    values('Nguyen Van An')

    5.3. nh ngha cc rng buc (Constrains)Rng buc CHECK

    Rng buc CHECK c s dng nhm ch nh iu kin hp l i vi d liu. M i khi c s

    thay i d liu trn bng (INSERT, UPDATE), nhng r ng buc ny s c s dngnhm kim

    tra xem d liu mi c hp l hay khng.

    Rng buc CHECK c khai bo theo c php nh sau:

    [CONSTRAINT tn_rng_buc] CHECK (iu_kin)

    V d:

    create table students

    (

    studentid int identity(1,1) primary key,

    studentname nvarchar(50) not null,

    address nvarchar(100) not null,

    score1 tinyint not null

    constraint chk_score1 CHECK (score1 >= 0 and score1

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    18/46

    18Nu kho chnh ca bng ch bao gm ng mt ct v rng buc PRIMARY KEY cch

    nh mc ct, ta khng cn thit phi ch nh danh sch ct sau t kho PRIMARY KEY. Tuy

    nhin, nu vic khai bo kho chnh c tin hnh mc bng (s dng khi slng cc ct tham

    gia vo kho l t hai tr ln) th bt buc phi ch nh danh sch ct ngay sau t kha PRIMARY

    KEY v tn cc ct c phn cch nhau bi du phy.

    V d 1: nh ngha mt bng ch c mt kha chnh

    create table customers

    (

    customerid int identity(1,2)

    constraint chk_primarykey primary key,

    customername nvarchar(50) not null,

    address nvarchar(100) not null,

    gender bit not null

    )

    Hoc l

    create table customers

    (

    customerid int identity(1,2) primary key,

    customername nvarchar(50) not null,

    60

    address nvarchar(100) not null,

    gender bit not null

    )

    V d 2: nh ngha bng c hai kha chnh:

    create table orderdetail

    (

    customerid int,

    orderid int,

    itemid int not null,

    quantity decimal(8,2) not null,

    constraint chk_primarykey primary key (customerid, orderid)

    )

    Rng buc FOREIGN KEY

    FOREIGN KEY l mt ct hay mt s kt hp ca nhiu ct c s dng p t mi lin ktd liu gia hai table. FOREIGN KEY ca mt bng s gi gi tr ca PRIMARYKEY ca mt

    bng khc v chng ta c th to ra nhiu FOREIGN KEY trong mt table.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    19/46

    19FOREIGN KEY c th tham chiu vo PRIMARY KEY hay ct c rng buc duy nht.

    FOREIGN KEY c th cha gi tr NULL. Mc d mc ch chnh ca rng buc FOREIGN KEY

    l kim sot d liu cha trong bng c FOREIGN KEY (tc table con) nhng thccht n cng

    kim sot lun c d liu trong bng cha PRIMARY KEY (tc table cha).

    V d

    nu ta xa d liu trong bng cha th d liu trong bng con tr nn "m ci" (orphan) v khng th

    tham chiu ngc v bng cha. Do rng buc FOREIGN KEY s m bo iu khng xy ra.

    Nu bn mun xa d liu trong bng cha th trc ht bn phi xa hay v hiuha rng buc

    FOREIGN KEY trong bng con trc.

    Rng buc FOREIGN KEY c nh ngha theo c php di y:

    [CONSTRAINT tn_rng_buc] FOREIGN KEY [(danh_sch_ct)]

    REFERENCES tn_bng_tham_chiu(danh_sch_ct_tham_chiu)

    [ON DELETE CASCADE | NO ACTION | SET NULL | SET DEFAULT]

    [ON UPDATE CASCADE | NO ACTION | SET NULL | SET DEFAULT]

    Vic nh ngha mt rng buc FOREIGN KEY bao gm cc yu t sau:

    Tn ct hoc danh sch ct ca b ng c nh ngha tham gia vo kho ngoi.

    Tn ca bng c tham chiu bi kho ngoi v danh sch cc ct c tham chiu n

    trong bng tham chiu.

    Cch thc x l i vi cc bn ghi trong bng c nh ngha trong trng hp cc bn ghi c

    tham chiu trong bng tham chiu b xo (ON DELETE) hay cp nht (ON UPDATE). SQL chun

    a ra 4 cch x l.

    CASCADE: T ng xo (cp nht) nu bn ghi ctham chiu b xo (cp nht).

    NO ACTION: (Mc nh) Nu bn ghi trong bng tham chiu ang c thamchiu bi

    mt bn ghi bt k trong bng cnh ngha th bn ghi khng c phpxo hoc

    cp nht (i vi ct c tham chiu).

    SET NULL: Cp nht li kho ngoi ca bn ghi thnh gi tr NULL (nu ct chophp nhn

    gi tr NULL).

    SET DEFAULT: Cp nht li kho ngoi ca bn ghi nhn gi tr mc nh (nu ct c qui

    nh gi tr mc nh).

    V d:

    drop table orderdetail

    create table orderdetail

    (

    orderid int

    constraint fk_orderdetail_orders foreign k ey references orders(orderid)

    on delete cascade

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    20/46

    20on update cascade,

    customerid int

    constraint fk_orderdetail_customer foreign key references customers(customerid)

    on delete cascade

    on update cascade,

    itemid int

    constraint fk_orderdetail_items fore ign key references items(itemid)

    on delete cascade

    on update cascade,

    quantity decimal(18,2) not null,

    )

    5.4. Sa bng (ALTER TABLE)Mt bng sau khi c nh ngha bngcu lnh CREATE TABLE c th c sai thng

    qua cu lnh ALTER TABLE. Cu lnh ny cho php thc hin c cc thao tc sau:

    B sung mt ct vo bng.

    Xo mt ct khi bng.

    Thay i nh ngha ca mt ct trong bng.

    Xo b hoc b sung cc rng buc cho bng

    C php ca cu lnh ALTER TABLE nh sau:

    ALTER TABLE tn_bng

    ADD nh_ngha_ct |

    ALTER COLUMN tn_ct kiu_d_liu [NULL | NOT NULL]

    DROP COLUMN tn_ct |

    ADD CONSTRAINT tn_rng_bu c nh_ngha_rng_buc

    DROP CONSTRAINT tn_rng_buc

    V d 1: Thm mt ct mi vo bng ORDERSalter table orders

    add description nvarchar(100) not null

    V d 2: Thay i nh ngha ct desciption

    alter table orders

    alter column description nvarchar(200) null

    V d 3: Thm rng buc CHECK vo ct decription

    alter table ordersadd constraint chk_descriptionlength CHECK (len(description) > 10)

    V d 4: Xa rng buc CHECK

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    21/46

    21alter table orders

    drop chk_descriptionlength

    V d 5: Xa ct description

    alter table orders

    drop column description

    V d 6: Thm mt ct mi vo bng orders v thm rng buc cho ct ny

    alter table orders

    add

    description nvarchar(100) null,

    constraint chk_descriptionlength CHECK (len(description) > 0)

    Nu b sung thm mt ct vo bng v trong bng c t nhtmt bn ghi th ct micn b sung

    phi cho php chp nhn gi tr NULL hoc phi c gi tr mc nh.

    Mun xo mt ct ang c rng buc bi mt rng buc hoc ang c tham chiubi mt

    kho ngoi, ta phi xo rng buc hoc kho ngoi trc sao cho trn ct khng cn bt k mt

    rng buc v khng cn c tham chiu bi bt k kho ngoi no.

    Nu b sung thm rng buc cho mt bng c d liu v rng buc cn b sung khngc tho

    mn bi cc bn ghi c trong bng th cu lnh ALTER TABLE khng thc hinc.

    5.5. Xa bng (DROP TABLE)

    Khi mt bng khng cn cn thit, ta c th xo n ra khi c s d liu bng cu lnh DROPTABLE. Cu lnh ny cng ng thi xo tt c nhng rng buc, ch mc, trigger lin quan n

    bng .

    Cu lnh c c php nh sau:

    DROP TABLE tn_bng

    Trong cc h qun tr c s d liu, khi xo mt bng bng lnh DROP TABLE, ta khng th

    khi phc li bng cng nh d liu ca n. Do , cn phi cn thn khis dng cu lnh ny.

    Cu lnh DROP TABLE khng th thc hin cnu bng cn xo ang c thamchiu bi mtrng buc FOREIGN KEY. Trong trng hp ny, rng buc FOREIGNKEY ang tham chiu

    hoc bng ang tham chiu n bng cn xo phi c xo trc.

    Khi mt bng b xo, tt c cc rng buc, ch mc v trigger lin quan nbng cng ng thi b

    xa theo. Do , nu ta to li bng th cng phi to li cc i tng ny.

    V d: xa bng ORDERS trc tin ta phi xa rng buc FOREIGN KEY t bng

    ORDERDETAIL

    alter table orderdetail

    drop constraint fk_orderdetail_orders

    Sau xa bng ORDERS

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    22/46

    22drop table orders

    5.6. Thm bn ghi mi (INSERT)D liu trong cc bng c th hin di dng cc dng (bn ghi). b sung thm cc dng d

    liu vo mt bng, ta s dng cu lnh INSERT. Hu ht cc h qun tr CSDL da trn SQL cung

    cp cc cch di y thc hin thao tc thm d liu cho bng:

    Thm tng dng d liu vi mi cu lnh INSERT. y l cc s dng thng gp nht

    trong giao tc SQL.

    Thm nhiu dng d liu bng cch truy xut d liu t cc bng d liu khc.

    Thm tng dng d liu b sung mt dng d liu mi vo bng, ta s dngcu lnh INSERT vi c php nh sau:

    INSERT INTO tn_bng[(danh_sch_ct)] VALUES(danh_sch_tr)

    Trong cu lnh INSERT, danh sch ct ngay sau t n bng khng cn thit phi ch nh nu gi tr

    cc trng ca bn ghi mi c ch nh y trong danh sch tr. Trongtrng hp ny, th t

    cc gi tr trong danh sch tr phi bng vi s l ng cc trng ca bng cn b sung d liu cng

    nh phi tun theo ng th t ca cc trngnh khibng c nh ngha

    V d: Thm thng tin mt khch hng mi vo bng Customer

    insert into customers (customername, birthday, gender, address)

    values('Nguyen Van An', '4/2/1976', 'True', '14 Thong Nhat')

    hocinsert into customers

    values('Nguyen Van An', '4/2/1976', 'True', '14 Thong Nhat')

    Lu : Trng CUSTOMERID c thit lp identity l YES nn ta khng cn thm gi tr

    trng ny m SQL s t ng to ra mt gi tr cho trng ny.

    Trong trng hp ch nhp gi tr cho mt s ct trong bng, ta phi ch nh danh sch cc ct cn

    nhp d liu ngay sau t n bng. Khi , cc ct khng c nhp d liu s nhn gi tr mc nh

    (nu c) hoc nhn gi tr NULL (nu ct cho php chp nhn gi trNULL). Nu mt ct khng cgi tr mc nh v khng chp nhn gi tr NULL m khnguc nhp d liu, cu lnh s b li.

    Thm mt tp cc dng d liu vo bngMt cch s dng khc ca cu lnh INSERT cs dng b sung nhiu dng dliu vo mt

    bng, cc dng d liuny c ly t mt bng khc thng qua cu lnhSELECT. cch ny,

    cc gi tr d liu c b sung vo bng khng c ch nh tngminh m thay vo l mt

    cu lnh SELECT truy vn d liu t bng khc.

    C php cu lnh INSERT c dng nh sau:INSERT INTO tn_bng[(danh_sch_ct)] cu_lnh_SELECT

    V d:

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    23/46

    23insert into Customers_Backup

    select * from Customers

    Lu : Kt qu ca cu lnh SELECT phi c s ct bng vi s ct cch nh trong

    bng ch v phi tng thch v kiu d liu.

    5.7. Cp nht bn ghi (UPDATE)Cu lnh UPDATE trong SQL c s dng cp nht d liu trong cc bng. Cu lnh

    ny c c php nh sau:

    UPDATE tn_bng

    SET tn_ct = biu_thc

    [, ..., tn_ct_k = biu_thc_k]

    [FROM danh_sch_bng]

    [WHERE iu_kin]

    Sau UPDATE l tn ca bng cn cp nht dliu. Mt cu lnh UPDATE c th cpnht d liu

    cho nhiu ct bng cch ch nh cc danh sch t n ct v biu thc tng ng saut kho SET.

    Mnh WHERE trong cu lnh UPDATE cs dng ch nh ccdng d liu chu tc

    ng ca cu lnh (nu khng ch nh, ph m vi tc ng ca cu lnh c hiu l ton b cc

    dng trong bng).

    V d:

    update customers

    set customername = 'Cao Van Chung'

    where customerid = 9

    Trong cu lnh UPDATE c th s dng CASEWHEN.

    V d:

    select *

    into tmp1

    from customersupdate tmp1

    set address = case when customerid < 2 then 'Nguyen Trung Truc'

    else 'Nguyen Thi Minh Khai'

    end

    5.8. Xa bn ghi (DELETE) xo d liu trong mt bng, ta s dng cu lnhDELETE. C php ca cu lnh ny nh sau:

    DELETE FROM tn_bng

    [FROM danh_sch_bng]

    [WHERE iu_kin]

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    24/46

    24Trong cu lnh ny, tn ca bng cn xo d liu c ch nh sau DELETE FROM.

    Mnh WHERE trong cu lnh c s dng ch nh iu kin i vi cc dng d liu cn

    xo. Nu cu lnh DELETE khng c mnh WHERE th ton b cc dng d liu trong bng

    u b xo.

    V d:

    delete from Items

    where itemid = 3

    Xo d liu khi iu kin lin quan n nhiu bngNu iu kin trong cu lnh DELETE lin quan n ccbng khng phi l bng cnxa d liu,

    ta phi s dng thm mnh FROM v sau l danh sch tn cc bng .Trong trng hp

    ny, trong mnh WHERE ta ch nh thm iu kin ni gia cc bng.

    V d:

    delete

    from orderdetail

    from items

    where items.itemid = orderdetail.itemid

    and items.itemname = 'LAPTOP'

    S dng truy vn con trong cu lnh DELETEMt cu lnh SELECT c th c lng vo trong mnh WHERE trong cu lnhDELETE

    lm iu kin cho cu lnh tng t nh cu lnh UPDATE.

    V d:

    delete

    from orderdetail

    from items

    where items.itemid = (select i.itemid

    from items i inner join orderdetail od

    on i.itemid = od.itemid

    WHERE itemname = 'LAPTOP')

    Bi tp:

    Thc hin cc thao tc to, sa, xo cc bng trong c s d liu sau Sach (MaSH, TenSH, TacGia, NXB, NamXB)

    DocGia (MaDG, TenDG, CMND, NgaySinh, DiaChi)

    PhieuMuon (MaPM, MaDG, NgayMuon)

    ChiTietPM (MaCTPN, MaPM, MaSH, NgayTra)

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    25/46

    25

    Chng 6: Truy vn d liu

    6.1. Truy vn c bnCu lnh SELECT c s dng truy xut d liu t cc d ng v cc ct ca mt haynhiu

    bng, khung nhn. Cu lnh ny c th dng thc hin php chn (tc l truy xut mttp con

    cc dng trong mt hay nhiu bng), php chiu (tc l truy xut mt tp con cc cttrong mt hay

    nhiu bng) v php ni (tc l lin kt cc dng trong hai hay nhiu bng truy xut d liu).

    Ngoi ra, cu lnh ny cn cung cp kh nng thc hin cc thao tc truyvn v thng k d liu

    phc tp khc.

    C php chung ca cu lnh SELECT c dng:

    SELECT [ALL | DISTINCT][TOP n] danh_sch_ch n

    [INTO tn_bng_mi]

    FROM danh_sch_bng/khung_nhn

    [WHERE iu_kin]

    [GROUP BY danh_sch_ct]

    [HAVING iu_kin]

    [ORDER BY ct_sp_xp]

    [COMPUTE danh_sch_hm_gp [BY danh_sch_ct]]

    iu cn lu. u tin i vi cu lnh ny l cc thnh phn trong cu lnh SELECTnu c s

    dng phi tun theo ng th t nh trong c php. Nu khng, cu lnh s cxem l khng hp

    l.

    Cu lnh SELECT c s dng tc ng l n cc bng d liu v kt qu ca cu lnhcng

    c hin th di dng bng,tc l mt tp hp cc dng v cc ct (ngoi tr trnghp s dng

    cu lnh SELECT vi mnh COMPUTE).

    V d:

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    26/46

    26

    V d di y hin th tn khch hng v a ch cc khch hng hin c.

    select customername, gender, address

    from customers

    Danh sch chn trong cu lnh SELECT

    Danh sch chn trong cu lnh SELECT c s dng ch nh cc trng, cc biu thc cn

    hin th trong cc ct ca kt qu truy vn. Cc trng, cc biu thc c ch nh ngay sau t

    kho SELECT v phn cch nhau bi du phy. S dng danh sch chn trong cu lnh SELECTbao gm cc t rng hp sau:

    Chn tt c cc ct: Nh ni trong chng 1, chng ta dng du * trong cu lnh Select hm

    chn ht tt c cc ct. Trong trng hp ny, cc ct c hin th trong kt qu truy vn s tun

    theo th t m chng c to ra khi bng c nh ngha.

    Chn mt s ct c th: Trong trng hp cn ch nh c th cc ct cn hin th trong kt qu

    truy vn, ta ch nh danh sch cc t n ct trong danh sch chn. Th t ca cc ct trong kt qu

    truy vn tun theo th t ca cc trng trong danh sch chn.Mnh FROM

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    27/46

    27Mnh FROM trong cu lnh SELECT c s dung nhm ch nh cc bng v khung nhn

    cn truy xut d liu. Sau FROM l danh sch tn ca cc bng v khung nhn tham gia vo truy

    vn, tn ca cc bng v khung nhn c phn cch nhau bi du phy.

    Mnh WHERE - iu kin truy vn d liu

    Mnh WHERE trong cu lnh SELECT c s dng nhm xc nh cc iukin i vi vic

    truy xut d liu. Sau mnh WHERE l mt biu thc logic v ch nhng dng d liu no tho

    mn iu kin c ch nh mi c hin th trong kt qu truy vn.

    Trong mnh WHERE thng s dng:

    Cc ton t kt hp iu kin (AND, OR)

    Cc ton t so snh

    Kim tra gii hn ca d liu (BETWEEN/ NOT BETWEEN)

    Tp hp

    Kim tra khun dng d liu.

    Cc gi tr NULL

    6.2. Truy vn t nhiu bngPhp ni bng: Mt php ni bng (equi-join) l mt php ni trong gi tr ca cc ctc s

    dng ni c so snh vi nhau da trn tiu chun bng v tt c cc ct trong ccbng tham

    gia ni u c a ra trong kt qu.

    Mt dng c bit ca php ni bng c s dng nhiu l php ni t nhin (natural Join). Trong

    php ni t nhin, iukin ni gia hai bng chnh l iu kin bnggia kho ngoi v kho

    chnh ca hai bng; V trong danh sch chn ca cu lnh ch gi li mt cttrong hai ct tham gia

    vo iu kin ca php ni.

    V d php kt ni bng:

    select *

    from Customers c, Orders o

    where c.customerid = o.customerid

    V d php kt ni t nhin:

    select c.CUSTOMERID, c.CUSTOMERNAME,

    c.BIRTHDAY, c.GENDER, c.ADDRESS, o.ORDERDATE

    from Customers c, Orders o

    where c.customerid = o.customeridhoc vit gn:

    select c.*, o.ORDERDATE

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    28/46

    28from Customers c, Orders o

    where c.customerid = o.customerid

    Trong php kt ni bng, trng CUSTOMERID xut hin hai ln. S d tha c loi b bngcch s dng php kt ni t nhin v vic ch nh r cc ct ct cn truy xut.

    Trong cc cu lnh ni, ngoi iu kin ca php ni c ch nh trong mnh WHERE cn c

    th ch nh cc iu kin tm kim d liu khc (iu kin chn). Thngthng, cc iu kin ny

    c kt hp vi iu kin ni thng qua ton t AND.

    V d:

    select c.*, o.ORDERDATE

    from Customers c, Orders o

    where c.customerid = o.customerid

    and c.customerid = 3

    Php t niPhp t ni l php ni m trong iu kin ni c ch nh lin quan n cc ct cacng mt

    bng. Trong trng hp ny, s c s xut hin tn ca cng mt bng nhiu ln trong mnh

    FROM v do cc bng cn phi c t b danh.

    V d: Gi s c yu cu tm ra cc khch hng c nhi u hn mt n t hng trong cng ngyselect c1.CUSTOMERID, c1.CUSTOMERNAME

    from customers c1, customers c2, orders o1, orders o2

    where c1.customerid = o1.customerid

    and c2.customerid = o2.customerid

    and c1.customerid = c2.customerid

    and o1.orderdate = o2.orderdate

    and o1.orderid o2.orderid

    Cu truy vn c gii thch nh sau: Ln lt ly ra cc m khch hng, m ha n vngy t

    hng t bng c1, o1 em so snh ln lt vi cc m khch hng, m ha n v ngy t hng t

    bng c2, o2. Nu vic so snh hai tp hp n y tha iu kin sau y: m khch hng trng nhau,

    ngy t hng trng nhau v c m ha n khc nhau th thng tin khchhng ny c cho vo

    kt qua truy vn.

    Php ni ngoiTrong cc php ni cp trn, ch nhng dng c gi tr trong cc ct c chnh tho mn

    iu kin kt ni mi c hin th trong kt qu truy vn, v c gi l phpni trong (inner

    join) Theo mt ngha no , nhng php ni ny loi b thng tin cha trongnhng dng khng

    tho mn iu kin ni. Tuy nhin, i khi ta cng cn gi li nhng thng tin ny bng cch cho

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    29/46

    29php nhng dng khng tho mn iu kin ni c mt trong kt qu caphp ni. lm iu

    ny, ta c th s dng php ni ngoi.

    SQL cung cp cc loi php ni ngoi sau y:

    Php ni ngoi tri (k hiu: *=): Php ni ny hin th trong kt qu truy vn tt c cc

    dng d liu ca bng nm bn tri trong iu kin ni cho d nhng dng ny khng tho

    mn iu kin ca php ni

    Php ni ngoi phi (k. hiu: =*): Php ni n y hin th trong kt qu truy vn tt c cc

    dng d liu ca bng nm bn phi trong iu kin ni cho d nhng dng ny khng tho

    iu kin ca php ni.

    6.3. Truy vn lng nhau (Subqueries)Truy vn con l mt cu lnh SELECT c lng vo bn trong mt cu lnh SELECT, INSERT,

    UPDATE, DELETE ho c bn trong mt truy vn con khc. Loi truyvn ny c s dng

    biu din cho nhng truy vn trong iu kin truy vn d liu cnphi s dng n kt qu ca

    mt truy vn khc.

    C php ca truy vn con nh sau:

    (SELECT [ALL | DISTINCT] danh_sch_chn

    FROM danh_sch_bng

    [WHERE iu_kin]

    [GROUP BY danh_sch_ct][HAVING iu_kin])

    Khi s dng truy vn con cn lu mt s quy tc sau:

    Mt truy vn con phi c vit trong cp du ngoc. Trong hu ht cc trng hp, mt truy vn

    con thng phi c kt qu l mt ct (tc l ch c duy nht mt ct trongdanh sch chn).

    Mnh COMPUTE v ORDER BY khng c php s dng trong truy vn con.

    Cc tn ct xut hin trong truy vn con c th l cc ct ca cc bng trong truy vn ngoi.

    Mt truy vn con thng c s dng lm iu kin trong mnh WHERE hoc HAVING camt truy vn khc.

    Nu truy vn con tr v ng mt gi tr, n c th s dng nh l mt thnh phn bntrong mt

    biu thc (chng hn xut hin trong mt php so snh bng).

    Php so snh i vi vi kt qu truy vn conKt qu ca truy vn con c th c s dng thc hin php so snh s hc vi mt biu thc

    ca truy vn cha. Trong trnghp ny, truy vn con c s dng di dng:

    WHERE biu_thc php_ton_s_hc [ANY|ALL] (truy_vn_con)Trong php ton s hc c th s dng bao gm: =, , >, =,

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    30/46

    30V d: Cu truy vn sau y tm tn khch hng c tui ln nht

    select c.CUSTOMERNAME, c.ADDRESS

    from customers c

    where year(getdate()) - year(BIRTHDAY) =

    (select max(year(getdate()) - year(BIRTHDAY))

    from customers)

    Nu truy vn con tr v nhiuhn mt gi tr, vic s dng php so snh nh trn skhng hp l.

    Trong trng hp ny, sau php ton so snh phi s dng thm lng t ALL hoc ANY. Lng

    t ALL c s dng khi cn so snh gi tr ca biu thc vi tt c cc gi tr tr v trong kt qu

    ca truy vn con; ngclai, php so snh vi lng t ANY c kt qung khi ch cn mt gi tr

    bt k no trong kt qu ca truy vn con tho mn iu kin

    Ton t IN/NOT INKhi cn thc hin php kim tra gi tr ca mt biu thc c xut hin (khng xut hin) trong tp

    cc gi tr ca truy vn con hay khng, ta c ths dng ton t IN (NOT IN) nh sau:

    WHERE biu_thc [NOT] IN (truy_vn_con)

    Truy vn con vi EXISTSLng t EXISTS c s dng kt hp vi truy vn con di dng:

    WHERE [NOT] EXISTS (truy_v n_con)

    Lng t EXISTS (tng ng NOT EXISTS) tr v gi tr True (t ng ng False) nu kt qu ca

    truy vn con c t nht mt d ng (tng ng khng c dng no). iu khc bitca vic s dng

    EXISTS vi hai cch nu trn l trong danh sch chn ca truy vn con c th c nhiu hn

    hai ct.

    Truy vn con v mnh HAVINGMt truy vn con c th c s dng trong mnh HAVING ca mt truy vn khc. Trong

    trng hp ny, kt qu ca truy vn con c s dng to nn iu kin i vi cchm gp.

    Bi tp:

    1. Cho cc lc quan h sau:Sach (MaSH, TenSH, TacGia, NXB, NamXB)

    DocGia (MaDG, TenDG, CMND, NgaySinh, DiaChi)

    PhieuMuon (MaPM, MaDG, NgayMuon)

    ChiTietPM (MaCTPN, MaPM, MaSH, NgayTra)

    a) Vit cu lnh SQL thc hin truy vn sau: Lp danh sch chi tit phiu mn gm MaSH,

    TenSH, NgayTra ca tt c cc quyn sch trong phiu mn c MaPM l PM0001.

    b) Vit cu lnh SQL thc hin truy vn sau: Lp danh sch gm MaDG, TenDG ca cc c gimn sch trong ny 24/2/2009.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    31/46

    31

    Chng 7: Sao lu v phc hi CSDL

    Trong qu trnh thc hin qun tr CSDL SQL Server th mt s nguyn nhn sau y bt buc bn

    phi xem xt n k thut sao luv khi phc d liu:

    Thit b lu tr (CSDL nm trn cc thit b lu tr ny) b h hng.

    Ngi dng v tnh xa d liu.

    Cc hnh ng v tnh hay c ph hoi CSDL.

    7.1. Sao lu CSDL

    Microsoft SQL Server 2005 cung cp hai k thut sao lu CSDL chnh: full backup v differential

    backup.

    Full backup v Differential backup

    Full backup: sao lu mt bn y ca CSDL tr n cc phng tin lu tr. Qu trnh full

    backup c th tin hnh m khng cn offline CSDL, nhng qu trnh ny li chim mt

    lng ln ti nguyn h thng v c th nh hng nghim trng ti thi gian p ng cc

    yu cu ca h thng.

    Differential backup: c xy dng nhm lm gim thi gian cn thit thc hin qu

    trnh full backup. Differential backup ch sao lu nhng thay i trn d liu k t ln full

    backup gn nht. Trong nhng h thng CSDL ln, qu tr nh differential backup s s dng

    ti nguyn t hn rt nhiu so vi qu trnh full backup v c th khng nh hng n hiu

    sutca h thng.Qu trnh differential ch sao lu nhng s thay i ca d liu t ln full

    backup gnnht, do khi c s c vi CSDL nu khng c bn sao luca qu trnh full

    backup th bnsao lu ca qu trnh differential backup s tr nn v ngha.

    V d:

    Cng ty XYZ thc hin full backup vo cui ngy th 6 hng tun v thc hin differential backup

    vo t i cc ngy t th 2ti th 5. Nu CSDL c s c vo sng th 4,qun tr vin CSDL s phc

    hi d liu bng bn sao lu ca qu trnh full backup ca ngyth 6 tun trc v sau phc hi

    cc thay i ca d liu bng cch p dng bn sao luca qu trnh differential backup vo ngy

    th 3.

    Transaction log backup

    Qu trnh full backup v differential backup chim nhiu ti nguyn h thng v nhhng n

    hiu sut lm vic h thng nn thng c thc hin vo sau gi lm vic. Tuynhin iu ny c

    th dn n cc mtmt d liu trong mt ng y lm vic nu CSDL c s c trc khi qu trnh

    sao lu din ra. Transaction log backup l mt gii php nhm gim thiu ti a lng d liu c

    th mt khi c s c CSDL.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    32/46

    32Trong qu trnh hot ng, SQL Server s dng transaction log theo di tt c cc thayi

    trn CSDL.Logbo m CSDL c th phc hi sau nhng s c t xut v cng m bongi

    dng c th quay ngc cc kt qu trong cc giao tc CSDL. Cc giao tc cha hon thnh c

    lu trong log trc khi c lu vnh vin trong CSDL.

    Transaction log backup sao lu transactio n log ca CSDL vo thit b lu tr. Mi khi transaction

    log c sao lu, SQL Server b i cc transaction thc hin thnh cng (committed tracsaction)

    v ghi cc transaction vo phng ti n sao lu. Transaction log backup s dng ti nguyn h

    thng t hn rt nhiu so vi full backup v differential backup, do cth s dng transaction log

    backup bt k thi gian no m khng s nh hng n hiu suth thng.

    Tr li vi v d v cng ty XYZ. Cng ty ny thc hin full backup vo ti th 6 v differential

    backup vo ti t th 2 ti th 5. Cng ty thc hin thm qu trnh transaction logbackup mi gi

    mt ln. Gi s s c CSDL xy ra vo 9h:05 sng th 4. Qu trnh khi phcli CSDL nhu sau:

    Dng full backup v differential backup c a ti th 6 v ti th 3 phchi li trng thi CSDL

    vo ti th 3. Tuy nhin qu trnh ny vn cn mt d liu trong 2 gi (7 9h) sng th 4. Tip

    theo s dng 2 bn sao lu transaction backup lc 8h v 9h sng khi phc CSDL v trng thi

    lc 9h sng th 4.

    Cc thao tc thc hin qu trnh Backup

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    33/46

    33

    Click OK

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    34/46

    34

    Click OK. Qu trnh sao lu hon tt

    7.2. Phc hi CSDL

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    35/46

    35

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    36/46

    36

    Click OK hai ln

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    37/46

    37

    Click OK. Qu trnh phc hi hon tt

    Bi tp:

    Thc hin sao lu v phc hi cc c s d liu to chng trc.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    38/46

    38

    Chng 8: Lp trnh vi ADO.NET

    8.1. Gii thiu v nn tng .NET L mt cng ngh ca MicroSoftPht trin trn nn tng ADO.

    Cung cp cc lp i tng v hmg th vin phc vcho vic kt ni v x l d liu.

    M hnh .NET Framework

    ADO.NET l mt phn ca .NET Framework, n c xem l b th vin lp chu trch nhim

    x l d liu trong ngn ng MS.NET. ADO.NET c thit k vi dng d liu ngt kt ni,

    ngha l chng ta c th ly c mt cu trc phc tp ca d liu t database, sau ngt kt ni vi

    database ri mi thc hin cc thao tc cn thit. y l mt s tin b v mt thit k bi v thit

    k ADO trc y lun cn duy tr mt kt ni trong qu trnh thao tc d liu.

    8.2. ADO.NET 2.0 v SQL Server.NET Data Providers

    .NET Data Providers l mt tp cc i tng phc v cho vic trao i d liu gia Data Source

    (d liu ngun) v i tng DataSet. N chia ra gm 2 loi tp i tng : 1 tp cc i tng

    chu trch nhim qun l cc kt ni (connections) ti DataSource (d liu ngun) v 1 tp cc i

    tng cn li chu trch nhim x l d liu.

    ADO.NET cung cp 2 loi .NET Data Providers l SQL Server .NET Data Provider v OLE DB

    .NET Data Provider.

    SQL Server .NET Data Provider s dng truy xut Database SQL Server 7.0 tr v sau. Cn OLEDB .NET Data Provider s dng cho phin bn 6.5 tr v trc v cc loi Database khc (Access,

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    39/46

    39Oracle). SQL Server .NET Data Provider hot ng hiu qu hnbi v n thao tc trc tip

    vi SQL Server m khng cn phi thng qua OLE DB Provider.

    s dng 2 loi .NET Data Provider ny ta phi import 2 Namespace : System.Data.SqlClient cho

    SQL Server .NET Data Provider v System.Data.OleDb cho OLE DB Data Provider.

    8.3. Kt ni n SQL Serveri tng Connectioni tng Connection l i tng chu trch nhim qun l kt ni ti ngun d liu

    (DataSource). C 2 dng Connection tng ng vi 2 kiu d liu SQL Server v OLE DB l:

    SqlConnection v OleDbConnection. C 2 i tng ny u implement t interface

    IDbConnection. Bng cch s dng Interface IDbConnection, cc nh cung cp dch v Database

    khc nhau c th to ra cc ci t ph hp cho Database ring ca h.

    i tng Connection ca ADO.NETch nhn mt tham s u vo l chui kt ni (connectionstring). Trong chui kt ni, cc thng s c cch nhau bng du ;, connection string c cc

    thng s sau:

    Provider: Tn nh cung cp Database, i vi OLEDB cn khai bo l SQLOLEDB. i

    vi SQL Server th khng thuc tnh ny.

    DataSource (hoc Server): tn/a ch database server cn kt ni ti.

    Initial catalog (hoc Database): tn ca Database cn truy xut.

    Uid: username ng nhp vo Database Server. Pwd:password ng nhp vo Database Server.

    Cn y l vd v 1 chui kt ni i vi Database dng SQL Server:

    Server=CSC;database=Northwind;uid=sa;pwd=sa;

    Sau y l cc thuc tnh, phng thc, s kin thng dng ca c SqlConnection v

    OleDbConnection:

    Thuc tnh

    ConnectionString: thuc tnh thit lp / ly chui kt ni. ConnectionTimeout: thuc tnh thit lp / ly thi gian ch trong khi truy xut vo database.

    Khi truy xut vo Database, chng trnh s ch ng khong thi gian ny nu ch qua

    khong thi gian ny m vn khng kt ni c vo database th chng trnh s bo li.

    Database: thuc tnh thit lp/ ly tn database ca i tng connection hin thi.

    DataSource: thuc tnh thit lp/ly tn ca database server ca i tng connection hin

    thi.

    State: Ly trng thihin thi ca Connection c cc trng thi sau: Connecting, Broken,Open, Closed, Executing, Fetching.

    Phng thc

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    40/46

    40 BeginTransaction: s dng cho trng hp x l giao tc ca ng dng. Vic x l giao

    tc rt c li trong khi x l d liu t database v c lc trong khi x l d liu gp li th

    c th thc hin cu lnh nh Rollback hay trong lc thao tc cng c th thc hin c

    cc giao tc chnh nh trn SQL Server nh Commit

    Close: ng 1 connection. Open: M 1 connection vi cc thuc tnh hin hnh.

    S kin

    InfoMessage: Xy ra khi provider gi ra 1 li cnh co hay thng tin.

    StateChange: Xy ra khi trng thi ca connection thay i.

    Sau y l on source code s dng i tng Connection kt ni vo c s d liu:

    * Dim connString As String = "server=CSC;database=Northwind;uid=sa;pwd=sa"

    Dim conn As SqlConnection = New SqlConnection(connString)'mo ket noi

    conn.Open()

    'Thuc hien cac thao tac du lieu

    'dong ket noi

    conn.Close()

    8.4. Thc thi cc cu lnh SQLi tng CommandSau khi chng ta kt ni vo ngun d liu, chng ta cn phi thc hin thao tc cc d liu.

    thao tc c vi cc d liu chng ta phi dng i tng Command. i tng Command l i

    tng rt a nng, n va x l csqlserver stored procedures va x l c cc giao tc

    (transaction).

    Tng t nh i tng Connection, i tng Command cng chia ra lm 2 loi tu theo ngun

    d liu: SqlCommand (cho SQL Server) v OleDbCommand (cho OLE DB).

    Mt s thuc tnh v phng thc thng dng ca i tng Command:Thuc tnh:

    CommandText: Thit lp/ Ly lnh thao tc vi d liu.

    CommandTimeout: Thit lp/ Ly thi gian ch thc hin lnh. Sau khi ch 1 khong thi

    gian nu vt qu s bo li.

    CommandType: Thit lp/ Ly kiu ca i tng lnh (lnh trc tip, stored procedure)

    Parameters: Cc tham s truyn vo cho i tng command ( kiu

    OleDbParameterCollection/ SQLParameterCollection). Connection: Thit lp / ly kt ni ang c i tng Command s dng.

    Transaction: Thit lp / ly giao tc m i tng Command thc thi.

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    41/46

    41Phng thc:

    ExecuteReader: Thc thi cu lnh CommandText ca i tng Command v tr v kiu

    DataReader (OleDbDataReader / SqlDataReader ).

    ExecuteNonQuery: Thc thi cu lnh CommandText ca itng Command, y l dng

    cu lnh cp nht c s d liu (xo /sa) nn ch tr v s dng b nh hng m khng trv dng d liu no.

    ExecuteScalar: Thc thi cu truy vn ca i tng Command v ch tr v ct u tin ca

    dng u tin ca kt qu. Cc kt qu cn li b b qua.

    - Cc hm khi to ca i tng SqlCommand (Tng t cho i tng OleDbCommand):

    New(): khng c tham s no.

    New(cmdText as String) ,trong :

    o cmdText l cu lnh truyn vo cho i tng Command.

    New(cmdText as String, connectin as SqlConnection), trong :

    o cmdText nh trn.

    o connection l i tng kt ni truyn vo cho i tng Command.

    New(cmdText as String, connection as SqlConnection, transaction as SqlTransaction), trong

    :

    o cmdText,connnection nh trn.

    o Transaction: l giao tc truyn cho i tng Command.

    Cc v d:

    - S dng cu lnh ExecuteNonQuery update d liu:

    * Dim connStr As String = "server=CSC;database=Northwind;uid=sa;pwd=sa"

    Dim cmdStr As String = "Update Customers set CompanyName='CSC' where

    CustomerID='Seves'"

    Dim conn As New SqlConnection(connStr)

    conn.Open()

    Dim cmd As SqlCommand = New SqlCommand(cmdStr, conn)

    cmd.ExecuteNonQuery()

    conn.Close()

    - S dng cu lnh ExecuteReader ly d liu:

    * Dim conn As New SqlConnection("server=CSC; database=Northwind;uid=sa; pwd=sa")

    Dim cmd As New SqlCommand("Select * From Customers", conn)

    conn.Open()

    Dim rdr As SqlDataReader = cmd.ExecuteReader()

    While rdr.Read()

    Response.Write(rdr.GetString(0) + "")

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    42/46

    42End While

    rdr.Close()

    - S dng cu lnh ExecuteScalar ly d liu:

    * Dim conn As New SqlConnection("server=CSC; database=Northwind2;uid=sa; pwd=sa")

    conn.Open()

    Dim cmdStr As String = "Select * From Customers"

    Dim cmd As SqlCommand = New SqlCommand(cmdStr, conn)

    Response.Write(cmd.ExecuteScalar())

    conn.Close()

    Bi tp:

    1. Trnh by cc phng thc v thuc tnh ca i tng Connection?

    2. Trnh by cc phng thc v thuc tnh ca i tng Command?

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    43/46

    43

    TI LIU THAM KHO

    [1] Gio trnh h qun tr c s d liu SQL Server, Khoa CNTT, i hc Hu.[2] Gio trnh MSSQL 2005,http://www.bloghoctap.net/post/giao-trinh-mssql-2005.php

    http://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.php
  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    44/46

    44

    MT S THI MU

    http://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.php
  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    45/46

  • 7/31/2019 17413 - Bai Giang Thuc Tap Chuyen Nganh SQL Server

    46/46

    46Trng i Hc Hng Hi Vit Nam

    Khoa Cng ngh Thng tinB MN H THNG THNG TIN

    -----***-----

    THI KT THC HC PHN

    Tn hc phn:THC TP CHUYN NGNH (SQL SERVER)Nm hc: x

    thi s: K duyt :

    x

    Thi gian: 60 pht

    Cu 1: (5 im)

    Cho lc quan h sau:

    Suppliers(sid: integer, sname: string, address: string)

    Parts(pid: integer, pname: string, color: string)

    Catalog(sid: integer, pid: integer, cost: real)

    (Suppliers: thng tin v cc nh cung cp; Parts: thng tin v cc loi hng ha;Catalog: thng tin v gi bn cc loi hng ha ca cc nh cung cp).

    c. To mt c s d liu c cc bng tng ng vi lc quan h trn.

    d. Thc hin truy vn sau bng SQL: Hin th danh schtn ca nhng nh cungcp c tt c cc loi sn phm.

    Cu 2: (5 im)Xy dng mt ng dng vi c s d liu cu 1 cho php ngi s dng

    cp nht, sa, xo thng tin v cc nh cung cp, cc loi hng ho v thng tin vgi bn cc loi hng ho ca cc nh cung cp.

    ----------------------------------------***HT***----------------------------------------

    Lu : -Khng sa, xa thi, np li sau khi thi

    http://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.phphttp://www.bloghoctap.net/post/giao-trinh-mssql-2005.php