Professional Documents
Culture Documents
Ni dung
1
Bin ......................................................................................................................... 2
2.1
2.2
2.3
Gn gi tr ........................................................................................................ 2
2.4
In gi tr ca bin ra mn hnh........................................................................... 3
2.5
Ton t.................................................................................................................... 5
3.1
Ton t s hc.................................................................................................. 5
3.2
3.3
3.4
Cursor ...................................................................................................................... 7
5.1
5.2
C php ............................................................................................................ 8
5.2.1 Khai bo Cursor ........................................................................................................ 8
5.2.2 M Cursor ................................................................................................................. 8
5.2.3 Ly d liu t Cursor................................................................................................ 8
5.2.4 ng Cursor .............................................................................................................. 8
5.3
V d ................................................................................................................ 8
5.3.1 Duyt qua tt c sinh vin c trong d liu ........................................................... 8
5.3.2 Xut ra danh sch sinh vin ca tng lp .............................................................. 9
1.Gii thiu
1 Gii thiu
Ti liu ny hng dn thc hnh lp trnh c s d liu vi ngn ng T-SQL trong
mi trng h qun tr SQL Server. Ni dung chnh bao gm nhng phn sau:
Cc thao tc lp trnh c bn.
Cc cu trc iu khin trong T-SQL: if, while, case,
i tng truy xut d liu: cursor.
2 Bin
2.1 Kiu d liu
T-SQL s dng cc bin vi cc kiu d liu c sng trong SQL Server nh: int, float,
double, varchar, nvarchar, char, nchar, datetime, decimal,
2.2 Khai bo bin
Bin trong T-SQL c s dng lu tr li 1 gi tr tm thi trong qu trnh x l.
C php khai bo bin:
DECLARE @ten_bien kieu_du_lieu
V d:
DECLARE @hoTen NVARCHAR(50)
V d:
DECLARE @hoTen NVARCHAR(50)
SET @hoTen = N'Hong Anh T'
DECLARE @soLuong INT
SELECT @soLuong = COUNT(*) FROM SINHVIEN
PRINT @soLuong
2.Bin
2.4 In gi tr ca bin ra mn hnh
S dng lnh PRINT in gi tr ca bin ra mn hnh.
DECLARE @hoTen NVARCHAR(50)
SET @hoTen = N'Hong Anh T'
PRINT @hoTen
Kt qu in ra mn hnh nh sau y:
2.Bin
Mn hnh s in ra gi tr 2.
Tuy nhin, trong 1 s trng hp, SQL Server s khng t ng chuyn i kiu d
liu. Khi , cu lnh sau s bo li h thng:
3.Ton t
3 Ton t
3.1 Ton t s hc
Cc ton t s hc c s dng trn cc bin kiu d liu l cc con s nh: int,
float, double,
STT Ton t
ngha
1
+
Cng 2 s
2
Tr 2 s
3
*
Nhn 2 s
4
/
Chia 2 s
5
%
Chia ly phn d
Bng 1. Cc ton t s hc
3.2 Ton t ni chui
ni 2 chui trong T-SQL ta s dng ton t +.
V d:
DECLARE @hoTen NVARCHAR(50)
SET @hoTen = N'Hong Anh T'
PRINT N'Xin cho ' + @hoTen
4 Cu trc iu khin
4.1 Cu trc r nhnh IFELSE
C php:
IF biu_thc_iu_kin BEGIN
cc_lnh_x_l_khi_tha_iu_kin
END
ELSE BEGIN
cc_lnh_x_l_khi_khng_tha_iu_kin
END
V d:
DECLARE @soLuong INT
SELECT @soLuong = COUNT(*) FROM SINHVIEN
IF @soLuong > 0 BEGIN
PRINT @soLuong
END
ELSE BEGIN
PRINT N'Khng c sinh vin'
END
4.1.1 Kt hp IF vi truy vn
Ta c th kt hp lnh IF vi cc cu truy vn kim tra iu kin tr v trn cu
truy vn.
-
Kt hp IF vi EXISTS
5.Cursor
PRINT N'C d liu sinh vin'
END
ELSE BEGIN
PRINT N'Khng c d liu sinh vin'
END
V d:
DECLARE @i INT
SET @i = 1
WHILE @i < 100 BEGIN
PRINT @i
SET @i = @i + 1
END
5 Cursor
5.1 Khi nim Cursor
Cc lnh trong SQL nh: SELECT, UPDATE, DELETE, u thao tc ln nhiu
dng d liu tha iu kin WHERE cng lc m khng th thao tc ln tng dng d
liu c th. Cursor l kiu d liu c bn dng duyt qua tng dng d liu tr v
t cu truy vn SELECT gip ta c th c nhng x l khc nhau cho tng dng
d liu c th.
Cursor c 1 s c im:
5.Cursor
-
5.2 C php
C php ca Cursor lun tun theo 1 s bc.
5.2.1 Khai bo Cursor
DECLARE tn_cursor CURSOR
FOR lnh_select
5.2.2 M Cursor
OPEN tn_cursor
5.2.4 ng Cursor
Ti mi thi im khng th m 2 cursor c cng 1 tn. Do , ta cn phi ng
cursor ngay v gii phng vng nh lu tr d liu tr v t lnh SELECT.
CLOSE tn_cursor
DEALLOCATE tn_cursor
5.3 V d
5.3.1 Duyt qua tt c sinh vin c trong d liu
DECLARE @cursor CURSOR
SET @cursor = CURSOR FOR SELECT ma, hoTen FROM SINHVIEN
OPEN @cursor
DECLARE @mssv VARCHAR(10), @hoTen NVARCHAR(50)
FETCH NEXT FROM @cursor INTO @mssv, @hoTen
5.Cursor
WHILE(@@FETCH_STATUS = 0) BEGIN
PRINT N'Sinh vin ' + @mssv + N' h tn: '
FETCH NEXT FROM @cursor INTO @mssv, @hoTen
END
CLOSE @cursor
DEALLOCATE @cursor
10
5.Cursor