Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 - Phạm Nguyên Thảo

67 7 0
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 - Phạm Nguyên Thảo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 trình bày về Transact-SQL nâng cao. Nội dung cụ thể của chương này gồm có: Khai báo và sử dụng biến, các lệnh điều khiển, cursor, stored procedure, function. Mời các bạn cùng tham khảo!

Chương 4: Transact-SQL nâng cao Phạm Nguyên Thảo Trường Đại học Khoa học Tự nhiên Khoa Công nghệ Thông tin Bộ mơn Hệ thống Thơng tin pnthao@fit.hcmuns.edu.vn Nội dung • Khai báo sử dụng biến • Các lệnh điều khiển • Cursor • Stored procedure • Function Biến cục • Là đối tượng chứa giá trị thuộc kiểu liệu định • Tên biến: – Bắt đầu ký tự @ • Tầm vực biến: – Biến cục có giá trị query batch stored procedure/ function Biến cục - Khai báo • Khai báo biến cục lệnh declare – Cung cấp tên biến kiểu liệu Declare tên_biến Kiểu_dữ_liệu • Ví dụ: Declare @MaSinhVien char(10) Declare @HoTen nvarchar(30) Declare @Sum float, @Count int Biến cục - Gán giá trị • Dùng lệnh set để gán giá trị cho biến – Giá trị gán cho biến phải phù hợp với kiểu liệu biến Set tên_biến = giá_trị Set tên_biến = tên_biến Set tên_biến = biểu_thức Set tên_biến = kết_quả_truy_vấn Gán giá trị (tt) Câu truy vấn phải trả dịng có cột • Ví dụ Set @MaLop = „TH2001‟ Set @SoSV = (select count (*) from SinhVien) Set @MaLop = „TH‟+Year(@NgayTuyenSinh) Biến cục - Gán giá trị (tt) • Đưa kết truy vấn vào biến: Ví dụ : SV(MaSV: int; HoTen: nvarchar(30), Tuoi int) Select @Var1 = HoTen, @Var1 = Tuoi from SV where MaSV = • Lưu ý: câu truy vấn trả nhiều dòng, biến nhận giá trị tương ứng dòng Biến tồn cục • Là biến hệ thống SQL Server cung cấp – Tên biến bắt đầu @@ (2 ký tự @) – SQL tự cập nhật giá trị cho biến này, NSD gán giá trị trực tiếp – Bản chất hàm (function) • Một số biến hệ thống thường dùng – @@error – @@rowcount – @@trancount – @@fetch_status Nội dung • Khai báo sử dụng biến • Các lệnh điều khiển • Cursor • Stored procedure • Function 10 Debug stored procedure 53 Nội dung • Khai báo sử dụng biến • Các lệnh điều khiển • Cursor • Stored procedure • Function 54 Hàm người dùng (user function) – khái niệm • Giống stored procedure: – Là mã lệnh tái sử dụng – Chấp nhận tham số input – Dịch lần từ gọi cần • Khác stored procedure – Chấp nhận nhiều kiểu giá trị trả (chỉ giá trị trả về) – Không chấp nhận tham số out put – Khác cách gọi thực 55 Hàm người dùng – khái niệm (tt) • Có thể xem hàm người dùng thuộc loại tùy theo giá trị trả : – Giá trị trả kiểu liệu sở (int, varchar, float, datetime…) – Giá trị trả bảng có từ câu truy vấn – Giá trị trả bảng mà liệu có nhờ tích lũy dần sau chuỗi thao tác xử lý insert 56 Hàm người dùng – khai báo • Loại 1: Giá trị trả kiểu liệu sở Create function func_name ( {parameter_name DataType [= default ] } [,…n]) returns DataType As Dù khơng có tham số phải ghi cặp ngoặc rỗng Begin … Return {value | variable | expression} End Dù thân function có lệnh phải đặt Begin End 57 Hàm người dùng – khai báo (tt) – Ví dụ: Create function SoLonNhat (@a int,@b int,@c int) return int As Begin declare @max int set @max = @a if @b > @max set @max = @b if @c > @max set @max = @c return @max End 58 Hàm người dùng – khai báo (tt) • Loại 2: Giá trị trả bảng liệu có từ câu truy vấn Create function func_name ( {parameter_name DataType [= default ] } [,…n]) returns Table As Return [ ( ]select_statement [ ) ] Go Thân function ln có lệnh, khơng đặt Begin End 59 Hàm người dùng – khai báo (tt) – Ví dụ Create function DanhSachMatHang ( @MaDonHang varchar(10) ) returns Table As Return (Select MH.TenHang,MH.DonGia From ChiTietDH CT, MatHang MH Where CT.MaDH = @MaDonHang and CT.MaMH = MH.MaMH) Go 60 Hàm người dùng – khai báo (tt) • Loại 3: Giá trị trả table mà liệu có nhờ tích lũy dần sau chuỗi thao tác xử lý insert Create function func_name ( {parameter_name DataType [= default ] } [,…n]) returns TempTab_name Table(Table_definition) As Begin … Return End 61 Hàm người dùng – khai báo (tt) – Ví dụ: Create function DanhSachLop () returns DS Table(@MaLop varchar(10),@SoSV int) As xử lý insert liệu vào bảng DS return Go 62 Hàm người dùng – Khai báo (tt) • Lưu ý : Trong thân hàm không sử dụng hàm hệ thống bất định (Built-in nondeterministic functions ), bao gồm : – GETDATE – GETUTCDATE – NEWID – RAND – TEXTPTR – @@TOTAL_ERRORS, @@CPU_BUSY, @@TOTAL_READ, @@IDLE, @@TOTAL_WRITE, @@CONNECTIONS … 63 Hàm người dùng – sử dụng • Các hàm người dùng sử dụng câu truy vấn, biểu thức… phù hợp kiểu liệu trả • Ví dụ: – Select dbo.SoLonNhat(3,5,7) – Select * from DanhSachLop() 64 Hàm người dùng – sử dụng (tt) • Lưu ý: – Nếu dùng giá trị mặc định tham số, phải dùng từ khóa default vị trí tham số (khác với thơng thường khơng ghi gì) – Khi gọi hàm loại (trả giá trị bản), phải có tên owner hàm kèm (ví dụ dbo.SoLonNhat) 65 Hàm người dùng (tt) • Thay đổi hàm người dùng Thay từ khóa create lệnh tạo hàm từ khóa alter • Xóa hàm người dùng Drop function tên_hàm_cần _xóa – Ví dụ : Drop function DanhSachMatHang 66 Các hàm hệ thống • Ngoài hàm người dùng định nghĩa, SQL Server cung cấp hàm xây dựng sẵn hệ thống • Các hàm cung cấp tiện ích xử lý chuỗi, xử lý thời gian, xử lý số học… • Sinh viên tìm hiểu thêm hàm Books on-line tài liệu tham khảo 67 ... tên_biến Kiểu _dữ_ liệu • Ví dụ: Declare @MaSinhVien char(10) Declare @HoTen nvarchar(30) Declare @Sum float, @Count int Biến cục - Gán giá trị • Dùng lệnh set để gán giá trị cho biến – Giá trị gán cho... dòng, biến nhận giá trị tương ứng dịng Biến tồn cục • Là biến hệ thống SQL Server cung cấp – Tên biến bắt đầu @@ (2 ký tự @) – SQL tự cập nhật giá trị cho biến này, NSD gán giá trị trực tiếp – Bản... procedure • Function 23 Cursor - Khái niệm • Là cấu trúc liệu ánh xạ đến tập dòng liệu kết câu truy vấn (select) • Cho phép duyệt qua tập dòng liệu đọc giá trị dòng 24 Cursor - Khái niệm (tt) • Vị trí

Ngày đăng: 11/05/2021, 01:29

Tài liệu cùng người dùng

Tài liệu liên quan