Bài giảng Lập trình trong SQL & Server

KIỂU DỮ LiỆU TRONG SQL-SERVER

Kiểu dữ liệu chỉ định kiểu của dữ liệu và dung

lượng có thể lưu trữ của một đối tượng

SQL Server hỗ trợ một số kiểu dữ liệu được

cài đặt sẵn như sau

pdf 21 trang yennguyen 7080
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình trong SQL & Server", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình trong SQL & Server

Bài giảng Lập trình trong SQL & Server
LẬP TRÌNH TRONG SQL-SERVER
KIỂU DỮ LiỆU TRONG SQL-SERVER
Kiểu dữ liệu chỉ định kiểu của dữ liệu và dung 
lượng có thể lưu trữ của một đối tượng
SQL Server hỗ trợ một số kiểu dữ liệu được
cài đặt sẵn như sau: 
Kiểu dữ liệu Kích 
thước
Miền giá trị dữ liệu lưu trữ
> Các kiểu dữ liệu dạng số nguyên
Int 4 bytes từ-2,147,483,648đến +2,147,483,647
SmallInt 2 bytes từ -32768 đến +32767
TinyInt 1 byte từ 0 đến 255
Bit 1 byte 0, 1 hoặc Null
> Các kiểu dữ liệu dạng số thập phân
Decimal,
Numeric
17bytes từ -10^38 đến +10^38
> Các kiểu dữ liệu dạng số thực
Float 8 bytes từ -1.79E+308 đến +1.79E+308
Real 4 bytes từ -3.40E+38 đến +3.40E+38
> Các kiểu dữ liệu dạng chuỗi có độ dài cố định
Char N bytes từ 1 đến 8000 ký tự, mỗi ký tự là một
byte
> Các kiểu dữ liệu dạng chuỗi có độ dài biến đổi
VarChar N bytes từ 1 đến 8000 ký tự, mỗi ký tự là 1 byte
> Các kiểu dữ liệu dạng chuỗi dùng font chữ Unicode
NChar 2*N bytes từ 1 đến 4000 ký tự, mỗi ký tự là 2 bytes
NVarChar 2*N bytes từ 1 đến 4000 ký tự, mỗi ký tự là 2 bytes
> Các kiểu dữ liệu dạng tiền tệ
Money 8 bytes từ -922,337,203,685,477.5808 đến
+922,337,203,685,477.5807
SmallMoney 4 bytes từ -214,748.3648 đến + 214,748.3647
> Các kiểu dữ liệu dạng ngày và giờ
DateTime 8 bytes từ01/01/1753đến31/12/9999
SmallDateTime 4 bytes từ01/01/1900đến06/06/2079
> Các kiểu dữ liệu dạng chuỗi nhị phân (Binary String)
Binary N bytes từ 1 đến 8000 bytes
VarBinary N bytes từ 1 đến 8000 bytes
Image N bytes từ 1 đến 2,147,483,647 bytes
HÀM TRONG SQL SERVER
Aggregate functions: sum(), min(), 
max(), avg()
Hàm chuyển đổi: convert()
declare @x money
set @x=30000
select 'Luong nhan vien A la: ' + 
convert(char(10), @x)
Các hàm ngày tháng
Getdate(): cho biết ngày tháng hiện tại
Dateadd(datepart, number, date): để thêm
ngày/tháng/năm vào date
Datediff(datepart, date1, date2): tính khoảng
cách của date2-date1
Datename(datepart, date): cho biết tên tiếng
Anh của ngày tháng
Datepart(datepart, date): 
BiẾN CỤC BỘ
Biến là một đối tượng để chứa dữ liệu
Gọi là biến cục bộ vì phạm vi hoạt động của biến
chỉ nằm trong một thủ tục, một hàm hoặc một lô
có chứa lệnh khai báo biến đó.
Một lô lệnh (batch) là các câu lệnh liên tiếp nhau
và được kết thúc bằng từ khóa GO:
 Những câu lệnh nằm trong cùng batch sẽ
được xử lý cùng lúc
 Lệnh GO dùng để gửi tín hiệu đến cho SQL 
SERVER biết đã kết thúc một batch job và yêu
cầu thực thi.
Tên các biến cục bộ phải bắt đầu bằng @
Cách khai báo:
DECLARE @tên_biến kiểu dữ liệu
Ví dụ: 
DECLARE @hoten nchar(20)
DECLARE @diachi nchar(50)
DECLARE @luong float, @ngaysinh datetime
Chú ý: kiểu dữ liệu text, ntext hoặc image 
không được chấp nhận khi khai báo biến
Từ khóa SET hay SELECT được dùng để
gán giá trị cho biến
Cú pháp
SET @tên_biến = giá_trị
hoặc
SELECT @tên_biến = giá_trị
Ví dụ: 
SET @hoten=N’Nguyễn Thị Thái’
Ví dụ: Tính lương trung bình của
các nhân viên của phòng ‘KT’
DECLARE @luong_tb float
SELECT @luong_tb=avg(luong) 
FROM NHANVIEN WHERE 
MAP=‘KT’
Để hiển thị giá trị của biến:
PRINT @tên_biến
Ví dụ: tính lương cao nhất, lương thấp nhất
của phòng ‘KT’. Hiển thị kết quả ra màn hình
DECLARE @min_luong float, @max_luong
float
SELECT @min_luong=min(luong), 
@max_luong=max(luong) FROM NHANVIEN
PRINT ‘Luong cao nhat la: ‘ + convert 
(char(10), @min_luong)
PRINT @max_luong
CÂU LỆNH IFELSE
Cú pháp
IF điều_kiện
BEGIN
tập_lệnh
END
ELSE
BEGIN
tập_lệnh
END 
Các toán tử logic: AND, OR, NOT
Các toán tử so sánh: >, =, (!=)
Toán tử so sánh IS / IS NOT dùng để so 
sánh với giá trị NULL
declare @luong1 float, @luong2 float
select @luong1= AVG(luong) from Nhanvien where MaDV='0001'
select @luong2= AVG(luong)from Nhanvien where MaDV='0002'
if @luong1>@luong2
begin
print 'Luong trung binh don vi 1 lon hon don vi 2 la: '
print abs(@luong1-@luong2)
end
else 
print 'Luong trung binh don vi 2 lon hon don vi 1 la: '+ 
convert(chAR(20), abs(@luong1-@luong2)) 
GO
VÒNG LẶP WHILE
Cú pháp:
WHILE điều_kiện
BEGIN
tập_lệnh
END
Tập lệnh sẽ được thực hiện cho đến khi biểu
thức điều kiện có giá trị FALSE
Có thể dùng lệnh BREAK để thoát khỏi vòng
lặp
Ví dụ
DECLARE @count int =10
WHILE @count>=0
BEGIN
PRINT ‘Hello’
SET @count=@count-1
if @count <5
break
END
TỪ KHÓA RETURN
Từ khóa RETURN được sử dụng ở một ví trí
bất kỳ để thoát ra khỏi khối hoặc thủ tục
Những câu lệnh đằng sau RETURN sẽ không
được thực hiện
THỦ TUC NỘi TẠI
Là một “chương trình con” của SQL Server
La tập hợp các câu lệnh T-SQL được biên dịch
trước
SP được dặt tên và được xử lý như một khối lệnh
thống nhất
Ưu điểm của SP:
 Tối ưu hóa tốc độ truy vấn trong SQL Server
 Tính module hóa, tái sử dụng một cách dễ dàng
Có thể có các tham số vào, tham số ra và có thể trả
về kết quả
Cú pháp
CREATE PROCEDURE | PROC
Danh sách các tham số
AS
BEGIN
tập lệnh
END
Ví dụ: Tạo một SP để lấy ra danh sách nhân viên
của phòng ‘KT’
CREATE PROC List_Empl
@phong char(10)
AS
BEGIN
Set @phong=‘KT’
SELECT * FROM NHANVIEN WHERE 
PHONG=@phong
END

File đính kèm:

  • pdflap_trinh_trong_sql_server.pdf