Phần 3 bài giảng Hệ quản trị cơ sở dữ liệu: Lập trình trên SQL Server cung cấp cho người học các kiến thức: Cấu trúc điều khiển trong T-SQL, cú pháp searched CASE, cấu trúc WHILE, các toán tử đặc biệt,... Mời các bạn cùng tham khảo.
Lập trình SQL Server LẠI HIỀN PHƯƠNG EMAIL: LHPHUONG@TLU.EDU.VN LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Cấu trúc điều khiển T-SQL LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Cấu trúc rẽ nhánh IF … ELSE Cú pháp: IF biểu_thức_điều_kiện Lệnh | khối_lệnh điều kiện [ELSE Lệnh | khối lệnh điều kiện sai ] Với khối lệnh gồm nhiều câu, cần đặt cặp từ khóa BEGIN … END BEGIN Câu lệnh … Câu lệnh n END LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Ví dụ cấu trúc IF … ELSE Ví dụ: Từ bảng SinhVien bảng KetQua, tính điểm trung bình ‘Nguyễn Văn A’ hiển thị ‘Đạt’ điểm trung bình lớn 3.5 LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Ví dụ cấu trúc IF … ELSE Các cấu trúc IF … ELSE lồng LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Cấu trúc lựa chọn CASE CASE SQL dùng để đánh giá danh sách điều kiện trả biểu thức kết thỏa mãn điều kiện đánh giá CASE có định dạng: CASE đơn giản (Simple CASE): so sánh biểu thức với biểu thức đơn giản để xác định kết CASE tìm kiếm (Searched CASE): đánh giá biểu thức Boolean để xác định kết LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Cú pháp Simple CASE LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Ví dụ Simple CASE Ví dụ: hình tên tháng LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Cú pháp Searched CASE LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Ví dụ: Searched CASE Ví dụ: Viết lại ví dụ xếp loại SV Nguyễn Văn A LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 10 Ví dụ: định nghĩa biến cursor Ví dụ: khai báo trỏ gắn với ghi bảng SinhVien LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 26 Mở Cursor Cú pháp: OPEN Tên_con_trỏ Ví dụ: LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 27 Đọc xử lý dòng lệnh FETCH Cú pháp: LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 28 Kiểm tra việc đọc liệu LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 29 Đọc xử lý dịng lệnh FETCH Ví dụ: Đếm số sinh viên LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 30 Đóng Cursor Giải phóng liệu tham chiếu bên Cursor CLOSE Tên_con_trỏ Giải phóng Cursor khỏi nhớ DEALLOCATE Tên_con_trỏ Ví dụ: LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 31 Ví dụ: đầy đủ bước với cursor LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 32 Ví dụ: sử dụng cursor hiển thị danh sách MaSV, HoTen, GioiTinh LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 33 Xử lý lỗi LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 34 Khối lệnh TRY … CATCH Ý nghĩa : Thực lệnh khối TRY, gặp lỗi chuyển qua xử lý lệnh khối CATCH Cú pháp: LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 35 Khối lệnh TRY … CATCH Lưu ý : TRY CATCH phải lô lệnh (nằm hai từ khóa GO GO) Sau khối TRY phải khối CATCH Có thể lồng nhiều cấp LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 36 Khối lệnh TRY … CATCH Ví dụ : Trả LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 37 Mộ số hàm ERROR thường dùng LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 38 Thủ tục RAISERROR Ý nghĩa : Trả thông báo lỗi cho ứng dụng Cú pháp: Raiserror(tbao_lỗi, mức_độ, trạng_thái [, các_tham_số]) Tbao_lỗi: là: Chuỗi thông báo lỗi Mã thông báo lỗi người dùng định nghĩa trước sp_addmessage lưu sys.messages Giá trị phải > 50000 Mức_độ: số có giá trị từ đến 25 thể mức độ nghiêm trọng lỗi Trạng_thái: số từ 1-127 để xác định vị trí lỗi sử dụng thông báo lỗi nhiều điểm khác Các_tham_số: hỗ trợ thông báo lỗi cần tham số LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 39 Thủ tục RAISERROR (Ví dụ) LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 40 ... kết LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Cú pháp Simple CASE LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Ví dụ Simple CASE Ví dụ: hình tên tháng LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL Cú pháp Searched CASE LẠI... SinhVien LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 26 Mở Cursor Cú pháp: OPEN Tên_con_trỏ Ví dụ: LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 27 Đọc xử lý dòng lệnh FETCH Cú pháp: LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ... lồng nhiều cấp LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 36 Khối lệnh TRY … CATCH Ví dụ : Trả LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 37 Mộ số hàm ERROR thường dùng LẠI HIỀN PHƯƠNG - HỆ QUẢN TRỊ CSDL 38 Thủ