T-SQL TRẦN THỊ BẠCH HUỆ Nội dung Giới thiệu T-SQL Transact SQL Kiểu dữ liệu Khai báo biến Gán giá trị cho biến Toán tử Các lệnh điều khiển Một số hàm xây dựng sẵn 3 Giới th
Trang 1T-SQL
TRẦN THỊ BẠCH HUỆ
Nội dung
Giới thiệu T-SQL (Transact SQL)
Kiểu dữ liệu
Khai báo biến
Gán giá trị cho biến
Toán tử
Các lệnh điều khiển
Một số hàm xây dựng sẵn
3
Giới thiệu T-SQL
T-SQL (Transact-SQL):
– Là ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO (International Organization for
Standardization) và ANSI (American National Standards Institute) được sử dụng trong SQL Server, khác với P-SQL (Procedural-SQL) dùng trong Oracle.
T-SQL được chia làm 3 nhóm lệnh:
– Data Definition Language – DDL
Create object_Name
Alter object_Name
Drop object_Name
– Data Control Language – DCL
Grant
Revoke
Deny
– Data Manipulation Language – DML
Select, Insert, Update, Delete
Trang 2Các kiểu dữ liệu
smalldatetime bigint
datetime smallint
bit tinyint
money int
real nvarchar(n)
float varchar(n)
decimal nchar(n)
numeric char(n)
ntext
text
image
varbinary
binary
7
Khai báo biến
Cú pháp:
declare @ | @@<tên biến> <KDL>;
Ý nghĩa:
– @: biến cục bộ
– @@: biến toàn cục
Ví dụ:
declare @x int;
declare @@y float;
Ví dụ:
declare @numberOfCustomers int;
select @numberOfCustomers = count(*) from Customers;
print @numberOfCustomers;
Giải thích:
– Khai báo một biến có tên @numberOfCustomers thông qua
từ khóa declare Biến này lưu số khách hàng đếm được thông qua hàm count Sau đó in ra giá trị của biến
Trang 3Gán giá trị cho biến
Dùng lệnh set hoặc select
Set | Select @<tên biến> = <giá trị>;
Select @<tên biến> = <truy vấn trả ra giá trị>;
Ví dụ:
DECLARE @age INT;
DECLARE @firstName CHAR(20), @lastName CHAR(20);
Set @age=21;
Select @age=21;
SET @lastName=’Forta’;
Toán tử
Toán tử số
+ , - , * , / , %
bitwise:
& , | , ^ , ~
string
+
11
Ví dụ:
Select custLast + “ , “ + custFirst from customers
Các lệnh điều khiển
Cú pháp
If điều_kiện Lệnh_của_if Else
Lệnh_của_else
Chú ý:
– Nếu Lệnh_của_if hoặc Lệnh_của_else có từ 2 lệnh trở lên thì phải bao lại bằng BEGIN … END
Trang 4 Ví dụ:
If a>b
begin
print “a”
print “c”
end
Else
print “b”
Cú pháp
CASE WHEN <điều kiện> THEN
kết_quả
ELSE
kết_quả_của_else
END
15
Ví dụ:
CREATE PROCEDURE doigiatricotphai AS
BEGIN SELECT Hosv,tensv, CASE WHEN phai='True' THEN N'Nam'
ELSE N'Nữ' END AS Phai FROM SinhVien END
Vòng lặp
Cú pháp
While <điều_kiện>
<Lệnh_trong_vòng_lặp>
Chú ý:
– Nếu <Lệnh_trong_vòng_lặp> từ 2 lệnh trở lệnh thì phải bao bằng BEGIN…END
Ý nghĩa:
– <Điều_kiện> đúng thực hiện vòng lặp – <Điều_kiện> sai thoát khỏi vòng lặp
Trang 5 Ví dụ:
DECLARE @counter INT
SET @counter=1
WHILE @counter <= 10
BEGIN
PRINT @counter
SET @counter=@counter+1
END
Một số hàm xây dựng sẵn
Các hàm làm việc với KDL số
– IsNumeric, Round
Các hàm làm việc với KDL chuỗi
– Left, Right, SubString, Len, Replace, Stuff, Lower, Upper,
Ltrim, Rtrim
Các hàm làm việc với KDL ngày tháng năm
– GetDate, Day, Month, Year, DatePart, DateName
Các hàm chuyển đổi kiểu
– Cast, Converter
19
Ví dụ:
IsNumeric(‘abc’) false IsNumeric(1) true
Ví dụ: Thay chữ huệ trong chuỗi Bạch huệ thành chữ Huệ
Replace(‘Bạch huệ’,’huệ’, ‘Huệ’) Stuff(‘Hoa hong’,3,4,’bcde’) Hobcdeng
Ví dụ: 30/4/1975 thuộc quý mấy trong năm?
Datepart(qq,#30/4/1975#)
Trang 6select datepart(yyyy, orderdate) as
YEAROFORDERDATE
from orders
select orderdate
from orders
Hết