Bài giảng Cơ sở dữ liệu: Lập trình trong SQL server cung cấp cho người học các kiến thức: Kiểu dữ liệu trong SQL server, hàm trong SQL server, biến cục bộ, vòng lặp while, từ khóa return, thủ tục nội tại,... Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1LẬP TRÌNH TRONG SQL-SERVER
Trang 2KIỂU DỮ LiỆU TRONG SQL-SERVER
lượng có thể lưu trữ của một đối tượng
cài đặt sẵn như sau:
Trang 3Kiể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
Trang 4> 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
Trang 5> 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
Trang 7Các hàm ngày tháng
Getdate(): cho biết ngày tháng hiện tại
Dateadd(datepart, number, date): để thêmngày/tháng/năm vào date
Datediff(datepart, date1, date2): tính khoảngcách của date2-date1
Datename(datepart, date): cho biết tên tiếngAnh của ngày tháng
Datepart(datepart, date):
Trang 8BiẾN CỤC BỘ
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 đó
và được kết thúc bằng từ khóa GO:
được xử lý cùng lúc
SERVER biết đã kết thúc một batch job và yêucầu thực thi
Trang 9Tên các biến cục bộ phải bắt đầu bằng @
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
Trang 10Chú ý: kiểu dữ liệu text, ntext hoặc image không được chấp nhận khi khai báo biến
gán giá trị cho biến
Trang 11Ví 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’
Trang 12Để hiển thị giá trị của biến:
PRINT @tên_biến
của phòng ‘KT’ Hiển thị kết quả ra màn hình
DECLARE @min_luong float, @max_luongfloat
Trang 13BEGIN
tập_lệnhEND
Trang 14Các toán tử logic: AND, OR, NOT
Các toán tử so sánh: >, < =, >=, <=, <> (!=)
sánh với giá trị NULL
Trang 15declare @luong1 float, @luong2 float
select @luong1= AVG(luong) from Nhanvien where MaDV='0001' select @luong2= AVG(luong)from Nhanvien where MaDV='0002'
Trang 16VÒNG LẶP WHILE
Cú pháp:
WHILE điều_kiệnBEGIN
tập_lệnhEND
thức điều kiện có giá trị FALSE
lặp
Trang 18TỪ KHÓA RETURN
bất kỳ để thoát ra khỏi khối hoặc thủ tục
được thực hiện
Trang 19THỦ TUC NỘi TẠI
trước
thống nhất
về kết quả
Trang 21Ví dụ: Tạo một SP để lấy ra danh sách nhân viêncủa phòng ‘KT’
CREATE PROC List_Empl