1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng SQL server 2

43 9 0

Đ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

Cấu trúc

  • CHƯƠNG I THỦ TỤC LƯU TRỮ

    • 1.1 Thủ tục lưu trữ (stored procedure)

      • 1.1.1 Các khái niệm

      • 1.1.2 Tạo thủ tục lưu trữ

      • 1.1.3 Lời gọi thủ tục lưu trữ

      • 1.1.4 Sử dụng biến trong thủ tục

      • 1.1.5 Giá trị trả về của tham số trong thủ tục lưu trữ

      • 1.1.6 Tham số với giá trị mặc định

      • 1.1.7 Sửa đổi thủ tục

      • 1.1.8 Xoá thủ tục

  • CHƯƠNG II TRIGGER

    • 2.1 Định nghĩa trigger

    • 2.2 Sử dụng mệnh đề IF UPDATE trong trigger

    • 2.3 ROLLBACK TRANSACTION và trigger

    • 2.4 Sử dụng trigger trong trường hợp câu lệnh INSERT, UPDATE và DELETE có tác động đến nhiều dòng dữ liệu

      • 2.4.1 Sử dụng truy vấn con

      • 2.4.2 Sử dụng biến con trỏ

  • CHƯƠNG III HÀM

    • 3.1. Hàm do người dùng định nghĩa

      • 3.1.1 Định nghĩa và sử dụng hàm

      • 3.1.2 Hàm với giá trị trả về là “dữ liệu kiểu bảng”

  • Bài tập

  • CHƯƠNG IV BẢO MẬT TRONG SQL

    • 4.1 Các khái niệm

    • 4.2 Cấp phát quyền

      • 4.2.1 Cấp phát quyền cho người dùng trên các đối tượng cơ sở dữ liệu

      • 4.2.2 Cấp phát quyền thực thi các câu lệnh

    • 4.3 Thu hồi quyền

      • 4.3.1 Thu hồi quyền trên đối tượng cơ sở dữ liệu:

      • 4.3.2 Thu hồi quyền thực thi các câu lênh:

  • CHƯƠNG V GIAO TÁC SQL

    • 5.1 Giao tác và các tính chất của giao tác

    • 5.2 Mô hình giao tác trong SQL

    • 5.3 Giao tác lồng nhau

Nội dung

(NB) Bài giảng SQL server 2 gồm có 5 chương với những nội dung chính sau: Thủ tục lưu trữ, trigger, hàm, bảo mật trong SQL, giao tác SQL. Mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.

TRƯỜNG CAO ĐẲNG NGHỀ CƠ ĐIỆN HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG SQL SERVER (Lưu hành nội bộ) Biên soạn: Thái Ngô Hùng Hà nội, 2012 CHƯƠNG I THỦ TỤC LƯU TRỮ 1.1 Thủ tục lưu trữ (stored procedure) 1.1.1 Các khái niệm Như đề cập chương SQL Server 1, SQL thiết kế cài đặt ngôn ngữ để thực thao tác sở liệu tạo lập cấu trúc sở liệu, bổ sung, cập nhật, xoá truy vấn liệu sở liệu Các câu lệnh SQL người sử dụng viết yêu cầu hệ quản trị sở liệu thực theo chế độ tương tác Các câu lệnh SQL nhúng vào ngơn ngữ lập trình, thơng qua chuỗi thao tác sở liệu xác định thực thi nhờ vào câu lệnh, cấu trúc điều khiển thân ngơn ngữ lập trình sử dụng Với thủ tục lưu trữ, phần khả ngơn ngữ lập trình đưa vào ngơn ngữ SQL Một thủ tục đối tượng sở liệu bao gồm tập nhiều câu lệnh SQL nhóm lại với thành nhóm với khả sau: • Các cấu trúc điều khiển (IF, WHILE, FOR) sử dụng thủ tục • Bên thủ tục lưu trữ sử dụng biến ngơn ngữ lập trình nhằm lưu giữ giá trị tính tốn được, giá trị truy xuất từ sở liệu • Một tập câu lệnh SQL kết hợp lại với thành khối lệnh bên thủ tục Một thủ tục nhận tham số truyền vào trả giá trị thông qua tham số (như ngơn ngữ lập trình) Khi thủ tục lưu trữ định nghĩa, gọi thơng qua tên thủ tục, nhận tham số truyền vào, thực thi câu lệnh SQL bên thủ tục trả giá trị sau thực xong Sử dụng thủ tục lưu trữ sở liệu giúp tăng hiệu sở liệu, mang lại lợi ích sau: • Đơn giản hố thao tác sở liệu nhờ vào khả module hoá thao tác • Thủ tục lưu trữ phân tích, tối ưu tạo nên việc thực thi chúng nhanh nhiều so với việc phải thực tập rời rạc câu lệnh SQL tương đương theo cách thơng thường • Thủ tục lưu trữ cho phép thực yêu cầu câu lệnh đơn giản thay phải sử dụng nhiều dòng lệnh SQL Điều làm giảm thiểu lưu thơng mạng • Thay cấp phát quyền trực tiếp cho người sử dụng câu lệnh SQL đối tượng sở liệu, ta cấp phát quyền cho người sử dụng thông qua thủ tục lưu trữ, nhờ tăng khả bảo mật hệ thống 1.1.2 Tạo thủ tục lưu trữ Thủ tục lưu trữ tạo câu lệnh CREATE PROCEDURE với cú pháp sau: CREATE PROCEDURE tên_thủ_tục [(danh_sách_tham_số)] [WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION] AS Các_câu_lệnh_của_thủ_tục Trong đó: tên_thủ_tục Tên thủ tục cần tạo Tên phải tuân theo qui tắc định danh không vượt 128 ký tự Các tham số thủ tục khai báo sau tên thủ tục thủ tục có nhiều tham số khai báo phân cách danh_sách_tham_số dấu phẩy Khai báo tham số tối thiểu phải bao gồm hai phần: • Tên tham số bắt đầu dấu @ • Kiểu liệu tham số Ví dụ: @mamonhoc nvarchar(10) Thông thường, thủ tục phân tích, tối ưu dịch sẵn RECOMPILE lần gọi Nếu tuỳ chọn WITH RECOMPILE định, thủ tục dịch lại gọi ENCRYPTION Thủ tục mã hoá tuỳ chọn WITH ENCRYPTION định Nếu thủ tục mã hố, ta khơng thể xem nội dung thủ tục Tập hợp câu lệnh sử dụng nội dung thủ tục Các các_câu_lệnh_của_thủ_tục câu lệnh đặt cặp từ khố BEGIN END khơng Ví dụ 1.1: Giả sử ta cần thực chuỗi thao tác sau sở liệu Bổ sung thêm môn học sở liệu có mã TI-005 số đơn vị học trình vào bảng MONHOC Lên danh sách nhập điểm thi môn sở liệu cho sinh viên học lớp có mã C24102 (tức bổ sung thêm vào bảng DIEMTHI ghi với cột MAMONHOC nhận giá trị TI-005, cột MASV nhận giá trị mã sinh viên học lớp có mã C24105 cột điểm NULL) Nếu thực yêu cầu thông qua câu lệnh SQL thông thường, ta phải thực thi hai câu lệnh sau: INSERT INTO MONHOC VALUES('TI-005','Cơ sở liệu',5) INSERT INTO DIEMTHI(MAMONHOC,MASV) SELECT ‘TI-005’,MASV FROM SINHVIEN WHERE MALOP='C24102' Thay phải sử dụng hai câu lệnh trên, ta định nghĩa mơt thủ tục lưu trữ với tham số vào @mamonhoc, @tenmonhoc, @sodvht @malop sau: CREATE PROC sp_LenDanhSachDiem( @mamonhoc NVARCHAR(10), @tenmonhoc NVARCHAR(50), @sodvht SMALLINT, @malop NVARCHAR(10)) AS BEGIN INSERT INTO monhoc VALUES(@mamonhoc,@tenmonhoc,@sodvht) INSERT INTO diemthi(mamonhoc,masv) SELECT @mamonhoc,masv FROM sinhvien WHERE malop=@malop câu lệnh: ROLLBACK TRANSACTION (Câu lệnh ROLLBACK TRANSACTION chi tiết chương 6) Ví dụ 2.4: Nếu bảng MATHANG, ta tạo trigger sau: CREATE TRIGGER trg_mathang_delete ON mathang FOR DELETE AS ROLLBACK TRANSACTION Thì câu lệnh DELETE khơng thể có tác dụng bảng MATHANG Hay nói cách khác, ta khơng thể xố liệu bảng Ví dụ 2.5: Trigger kích hoạt câu lệnh INSERT sử dụng để bổ sung ghi cho bảng NHATKYBANHANG Trong trigger kiểm tra điều kiện hợp lệ liệu số lượng hàng bán phải nhỏ số lượng hàng có Nếu điều kiện khơng thoả mãn huỷ bỏ thao tác bổ sung liệu CREATE TRIGGER trg_nhatkybanhang_insert ON NHATKYBANHANG FOR INSERT AS DECLARE @sl_co int /* Số lượng hàng có */ DECLARE @sl_ban int /* Số lượng hàng bán */ DECLARE @mahang nvarchar(5) /* Mã hàng bán */ SELECT @mahang=mahang,@sl_ban=soluong FROM inserted SELECT @sl_co = soluong FROM mathang where mahang=@mahang /*Nếu số lượng hàng có nhỏ số lượng bán huỷ bỏ thao tác bổ sung liệu*/ IF @sl_co

Ngày đăng: 25/05/2021, 21:11

TỪ KHÓA LIÊN QUAN

w