Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 218 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
218
Dung lượng
3,13 MB
Nội dung
CHƯƠNG LẬP TRÌNH CƠ SỞ DỮ LIỆU BẰNG T-SQL NỘI DUNG KHAI BÁO VÀ SỬ DỤNG BIẾN CÁC TOÁN TỬ CÁC CẤU TRÚC ĐIỀU KHIỂN CÁC HÀM THÔNG DỤNG NỘI DUNG THỦ TỤC THƯỜNG TRÚ (STORED PROCEDURE) HÀM DO NGƯỜI DÙNG ĐỊNH NGHĨA TRIGGER KIỂU DỮ LIỆU CURSOR KHAI BÁO VÀ SỬ DỤNG BIẾN KHAI BÁO VÀ SỬ DỤNG BIẾN Biến dùng để lưu trữ giá trị tạm thời q trình tính tốn xử lý Dữ liệu truyền đến câu lệnh SQL cách sử dụng tên biến Trong T – SQL, biến phân thành loại: • Biến cục • Biến hệ thống KHAI BÁO VÀ SỬ DỤNG BIẾN Biến cục Cũng giống ngơn ngữ lập trình, biến cục T–SQL sử dụng trình viết mã lệnh T–SQL Biến cục biến người lập trình tạo Tên biến phải khai báo bắt đầu ký hiệu @ KHAI BÁO VÀ SỬ DỤNG BIẾN Khai báo biến cục Cú pháp: DECLARE @Ten_bien Kieu_du_lieu [,…] Ví dụ: Khai báo biến dùng để lưu trữ tên môn học, điểm sinh viên DECLARE @Tenmh Varchar(20), @Diem int KHAI BÁO VÀ SỬ DỤNG BIẾN Gán giá trị cho biến cục Dùng lệnh SET SELECT Cú pháp: SET @ = || Hay SELECT @ = ||, @ = ||, KHAI BÁO VÀ SỬ DỤNG BIẾN Gán giá trị cho biến cục Dùng lệnh SET SELECT Ví dụ 1: Khai báo biến @ngayxh gán giá trị ngày cho biến vừa tạo DECLARE @ngayxh DATE SET @ngayxh = getdate() KHAI BÁO VÀ SỬ DỤNG BIẾN Gán giá trị cho biến cục Ví dụ 2: Gán giá trị cho biến có tên @Diem_max, liệu gán lấy từ bảng KETQUA DECLARE @Diem_max int SET @Diem_max = ( SELECT MAX(DIEM) FROM KETQUA) Câu truy vấn trả giá trị (là điểm lớn từ bảng KETQUA) nên phép gán hợp lệ 10 KIỂU DỮ LIỆU CURSOR FETCH RELATIVE FETCH ABSOLUTE FETCH LAST 1 2 2 3 3 4 4 5 5 6 6 Cursor FETCH NEXT 1 204 KIỂU DỮ LIỆU CURSOR Mặc định: Fetch Next Đối với cursor dạng forward_only, fetch next Biến hệ thống @@Fetch_status cho biết lệnh Fetch vừa thực có thành cơng hay khơng 205 KIỂU DỮ LIỆU CURSOR Truy xuất dòng liệu Kiểm tra phạm vi trỏ @@Fetch_status, có giá trị trả sau: 0: Đọc liệu thành công -1: Đọc liệu thất bại dòng vượt kết gán -2: Đọc liệu thất bại (dịng liệu truy cập khơng tồn tại) 206 KIỂU DỮ LIỆU CURSOR 207 KIỂU DỮ LIỆU CURSOR Đóng Cursor: Close Tên_cursor|@Biến_cursor Kết thúc hành động Cursor cho lần mở Cursor hữu gặp lệnh Open khác Giải phóng Cursor khỏi nhớ Deallocate cursor_name Giải phóng Cursor khỏi nhớ Sau lệnh có dịng lệnh truy cập đến Tên Cursor gây lỗi 208 KIỂU DỮ LIỆU CURSOR Thứ tự thao tác xử lý liệu CurSor Định nghĩa biến Cursor Mở Cursor lệnh Open Duyệt xử lý liệu Cursor Fetch (Next, …) Dùng lệnh Into để đưa giá trị cursor vào biến Nếu khơng có lệnh Into, giá trị cursor hiển thị hình kết sau lệnh Fetch Có thể sử dụng vị trí điều kiện cho mệnh đề Where câu Delete/ Update (nếu cursor không Read_only) 209 KIỂU DỮ LIỆU CURSOR Thứ tự thao tác xử lý liệu CurSor Lặp lại việc duyệt sử dụng cursor, sử dụng biến @@fetch_status để biết duyệt qua hết cursor hay chưa Đóng CurSor lệnh Close Tên_cursor Giải phóng Cursor Deallocate Tên_cursor 210 KIỂU DỮ LIỆU CURSOR Ví dụ 1: SINHVIEN (MaSV, HoTen, MaKhoa) Định nghĩa biến kiểu cursor có tên cs_sinhvien gồm cột liệu bảng sinh viên MASV, HOTEN Mở xử lý in dòng liệu 211 KIỂU DỮ LIỆU CURSOR SINHVIEN (MaSV, HoTen, MaKhoa) B1: Định nghĩa Cursor cs_sinhvien lấy giá trị hai thuộc tính MASV, HOTEN DECLARE cs_sinhvien CURSOR FOR SELECT MASV, HOTEN FROM SINHVIEN 212 KIỂU DỮ LIỆU CURSOR B2: Mở cursor OPEN cs_sinhvien 213 KIỂU DỮ LIỆU CURSOR B3: Xử lý liệu cursor FETCH NEXT FROM cs_sinhvien WHILE (@@FETCH_STATUS = 0) BEGIN Đọc tiếp dịng liệu thành cơng FETCH NEXT FROM cs_sinhvien END 214 KIỂU DỮ LIỆU CURSOR B4: Đóng cursor CLOSE MY_CUR B5: Hủy cursor DEALLOCATE MY_CUR 215 KIỂU DỮ LIỆU CURSOR Ví dụ 2: SINHVIEN (MaSV, HoTen, MaKhoa) KHOA (MaKhoa, TenKhoa) Duyệt đọc giá trị từ cursor Cập nhật lại giá trị MaSV = MaKhoa + MaSV Áp dụng cho tất sinh viên 216 Kết hợp Cursor Thủ tục/ Trigger Để dễ dàng sử dụng quản lý cursor, cài đặt cursor lồng bên thủ tục/trigger Như vậy, lần gọi thủ tục/trigger cursor mở tạo mới, kết thúc thủ tục/trigger cursor đóng lại huỷ Tham khảo giảng/ trang 113 217 ... câu lệnh thực thành cơng biến có giá trị Tên ngôn ngữ mà SQL dùng, mặc định US_English Trạng thái việc đọc liệu bảng theo dòng (Cursor) Khi đọc liệu thành cơng biến có giá trị Tổng số kết nối... DỤNG BIẾN Xem giá trị hành biến cục Lệnh PRINT dùng để in giá trị biến giá trị cụ thể Trường hợp muốn in nhiều giá trị phải dùng nhiều lệnh PRINT tương ứng Lệnh SELECT in giá trị cho nhiều biến... DÙNG ĐỊNH NGHĨA TRIGGER KIỂU DỮ LIỆU CURSOR KHAI BÁO VÀ SỬ DỤNG BIẾN KHAI BÁO VÀ SỬ DỤNG BIẾN Biến dùng để lưu trữ giá trị tạm thời q trình tính tốn xử lý Dữ liệu truyền đến câu lệnh SQL cách