You are on page 1of 6

Bi thc hnh 3

Lm vic vi kiu d liu & M kch bn


Mc tiu
Sau bi thc hnh ny sinh vin nm c cc k nng sau:
-

Lm vic vi cc kiu d liu

Lm vic vi m kch bn

Lu
-

Cc ni dung trong bi thc hnh ny c thao tc trn CSDL AP, c s dng


trong bi thc hnh 1

Qun tr c s d liu vi SQL Server (COM2032)

Lab 3

Bi 1 Lm vic vi m kch bn
1. Lm quen v chy th m kch bn.
on m kch bn sau y tnh tng gi tr cc s t 1 n 10. M kch bn ny gm:
-

Mt cu lnh khai bo hai bin: Bin @a l bin chy v l iu kin kim tra vng lp,
@Tng l bin cha gi tr tng cc s t 1 n 10

Hai cu lnh gn gi tr cho cc bin

Cu trc iu khin WHILE lp v tnh tng cc s t 1 n 10

Cu lnh SELECT truy xut gi tr ca bin

DECLARE @a int ,
@Tng int
SET @a = 1
SET @Tng = 0
WHILE (@a <= 10)
BEGIN
SELECT @Tng = @Tng + @a
SET @a = @a + 1
END
SELECT @Tng

Sinh vin chy th on m kch bn trn

Sa on m kch bn trn tr v tng cc s t 10 n 20

2. Lm vic vi bng tm.


M kch bn sau s dng bng dn xut tr v ngy v tng s tin trn ha n
mi nht ca mi nh cung cp. Vit m kch bn sinh tp kt qu tng t, nhng s
dng bng tm thay v bng dn xut.
USE AP
SELECT VendorName, FirstInvoiceDate, InvoiceTotal
FROM Invoices JOIN
(SELECT VendorID, MIN(InvoiceDate) AS FirstInvoiceDate
FROM Invoices
GROUP BY VendorID)
AS FirstInvoice
Qun tr c s d liu vi SQL Server (COM203)

Lab 3

ON (Invoices.VendorID = FirstInvoice.VendorID AND


Invoices.InvoiceDate = FirstInvoice.FirstInvoiceDate)
JOIN Vendors
ON Invoices.VendorID = Vendors.VendorID
ORDER BY VendorName, FirstInvoiceDate

Yu cu: M kch bn phi c on kim tra nu bng tm tn ti, thc hin xa bng
tm.

Hng dn :
-

Tham kho SGK chng 8 phn Hng dn kim tra s tn ti ca i tng c


s d liu vit on m kim tra s tn ti ca bng tm.

Lu kt qu cu lnh SELECT ca bng dn xut (cu lnh bn di) trong on m


trn vo mt bng tm.
SELECT VendorID, MIN(InvoiceDate) AS FirstInvoiceDate
FROM Invoices
GROUP BY VendorID

Thay tn bng tm vo v tr ca cu lnh SELECT trn

Np bi: ng gi cc file .sql ca cc yu cu t 1 -> 2 vo th mc Bai1_Lab3

Bi 2 Lm vic vi cc kiu d liu


1. Lm vic vi kiu d liu s
a. Chy th v khm ph hot ng ca hm CAST v CONVERT khi chuyn i d
liu s thp phn sang cc kiu d liu khc.
-

Ct InvoiceTotal ca bng Invoices c kiu d liu Money. Cu lnh SELECT sau


y thc hin cc php chuyn i d liu s sang kiu d liu decimal v kiu
varchar, s dng hm CAST v CONVERT, tr v bn ct d liu.
o

Ct th nht c kiu decimal vi 3 ch s bn phi du chm thp phn

Ct th hai c kiu varchar

Ct th ba ging ct th nht

Ct th t c kiu varchar vi nh dng 2 ch s bn phi du chm


thp phn v c du phy ngn cch gia mi ba ch s bn tri.

Qun tr c s d liu vi SQL Server (COM203)

Lab 3

SELECT

CAST(InvoiceTotal AS decimal(19,3)),
CAST(InvoiceTotal AS varchar),
CONVERT(decimal(19,3),InvoiceTotal) ,
CONVERT(varchar,InvoiceTotal,1)
FROM Invoices

Sinh vin chy th v khm ph hot ng ca hai hm trn

b. Sa li cu lnh SELECT trn tr v hai ct vi nh dng gi tr d liu nh


trong nh bn di:
o

Ct th nht c kiu varchar vi 2 ch s bn phi du chm thp phn

Ct th hai c kiu varchar vi nh dng 2 ch s bn phi du chm


thp phn v c du phy ngn cch gia mi ba ch s bn tri.

c. Cu lnh SELECT trong yu cu th hai ang tr v nh dng s theo nh dng


nc ngoi. Hy vit mt cu lnh SELECT tr v hai ct ging nh trong yu
cu hai. Nhng ch s phi c nh dng theo nh dng chun Vit Nam
(Du chm thp phn c thay bng du phy v du phy phn tch gia mi
ba ch s bn tri c thay bng du chm) nh hnh bn di.

Hng dn:
-

Sinh vin s dng on m sau y ly d liu cho ct th nht

REPLACE(CAST(InvoiceTotal AS varchar),'.',',')
-

S dng on m sau ly d liu cho ct th hai

REPLACE(LEFT(CONVERT(varchar,InvoiceTotal,1),
LEN(CONVERT(varchar,InvoiceTotal,1))-3),',','.')
+ ','
+
RIGHT(CONVERT(varchar,InvoiceTotal,1),2)
Qun tr c s d liu vi SQL Server (COM203)

Lab 3

2. Lm vic vi kiu d liu ngy gi


Vit cu lnh SELECT tr v cc ct da vo ct InvoiceDate ca bng Invoices:
-

S dng hm CAST tr v ct u tin c kiu d liu varchar.


S dng hm CONVERT tr v ct th hai, th ba, th t, th nm c kiu
varchar vi nh dng tng ng dd/mm/yyyy, mm/dd/yyyy, dd-mm-yyyy, mmdd-yyyy

Hng dn:
o

Sinh vin tham kho BookOnline hoc Website


http://msdn.microsoft.com/en-us/library/ms187928.aspx la chn
tham s nh dng ph hp.

3. Lm vic vi kiu d liu chui


Vit cu lnh SELECT c s dng hm LEFT (hoc SUBSTRING) tr v cc ct da
vo bng Vendors.

Ct u tin, Contact, l tn theo nh dng: tn vi h c vit tt (v d, John


S.).

Ct th hai ging vi ct th nht, vi tt c cc gi tr c vit hoa

Ct th ba, Phone, l ct VendorPhone khng cha m vng.

Ch tr v cc dng cha nh cung cp vi m vng 559. Sp xp tp kt qu theo tn, sau


n h.

Hng dn: Sinh vin tham kho v d trong slide phn Demo cc hm x l chui

Np bi: ng gi cc file .sql ca cc yu cu t 1 -> 3 vo th mc Bai2_Lab3

Qun tr c s d liu vi SQL Server (COM203)

Lab 3

Yu cu np bi
Cui gi thc hnh, sinh vin to th mc theo tn <Tn ng nhp SV>_Lab3, cha tt c
sn phm ca nhng bi lab trn, nn li thnh file zip v upload ln mc np bi tng ng
trn LMS.

nh gi bi lab
STT

Bi s

im

Bi 1

Bi 2

Qun tr c s d liu vi SQL Server (COM203)

Lab 3

You might also like