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
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
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:
- lap_trinh_trong_sql_server.pdf