1. Trang chủ
  2. » Cao đẳng - Đại học

BẢNG ĐIỂM HỌC PHẦN SQL – LỚP CT15

34 11 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

Nội dung

– Lệnh cập nhật phải viết sao cho chỉ làm thay đổi dữ liệu thật sự trong một bảng (lệnh xóa chỉ thực hiện được nếu view chỉ tham chiếu đến đúng một bảng) – Không thỏa các điều kiện [r]

(1)(2)

Nội dung

Trigger

Khung nhìn

(3)

Trigger -Giới thiệu

Là loại stored procedure đặc biệt

– Tự động thực có thao tác insert, delete update liệu

– Thường dùng để kiểm tra ràng buộc toàn vẹn CSDL qui tắc nghiệp vụ

(4)

Trigger – giới thiệu (tt)

Xử lý trigger thường cần sử dụng đến hai

bảng tạm:

Inserted: chứa dòng vừa thao tác insert/ update thêm vào bảng

Deleted: chứa dịng vừa bị xóa khỏi bảng thao tác update/delete

(update = delete dòng chứa giá trị cũ+ insert dòng chứa giá trị mới)

(5)

Trigger – giới thiệu

Inserted Deleted bảng nhớ

chính

– Cục cho trigger

– Có cấu trúc giống bảng (table) mà trigger định nghĩa

(6)

Trigger – giới thiệu(tt)

Nếu thao tác insert/ delete/ update thực

trên nhiều dòng, trigger gọi

lần

(7)

Khai báo trigger

• Cú pháp:

Create trigger tên_trigger On {tên_bảng|tên_view}

{For| After| Instead of } { [delete] [,] [insert] [,] [update] }

As

{ các lệnh T-sql }

(8)

Khai báo trigger (tt)

For | After:

– Trigger gọi thực sau thao tác delete/ insert/ update tương ứng thực thành cơng

Các dịng thêm chứa đồng thời bảng liệu bảng inserted

Các dịng bị xố nằm bảng deleted (đã bị xoá khỏi bảng liệu)

(9)

Khai báo trigger (tt)

Instead of:

– Trigger gọi thực thay cho thao tác delete/ insert/ update tương ứng

Các dòng thêm chỉ chứa bảng inserted

Các dịng bị định xố nằm đồng thời bảng deleted bảng liệu (dữ liệu không bị xoá)

– Trigger Instead of thường dùng để xử lý cập

(10)

Khai báo trigger (tt)

Lưu ý:

– Lệnh tạo trigger phải lệnh

query batch

– Trên bảng định nghĩa nhiều trigger

for/after cho thao tác…

(11)

Khai báo trigger (tt)

– Không thể định nghĩa trigger instead of update/

delete bảng có cài đặt khố ngoại dạng update

cascade/ delete cascade

– Trong thân trigger, sử dụng hàm

Update(tên_cột) để kiểm tra xem việc cập nhật/ insert thực cột

Update(tên_cột) = true : có thực cập nhật cột

(12)

Trigger -Ví dụ

Cho CSDL:

DatHang(MaPDT, NgayDH,…)

GiaoHang(MaPGH, MaPDH, NgayGH,…)

Ràng buộc: Ngày giao hàng nhỏ

(13)

Trigger -Ví dụ

Bảng tầm ảnh hưởng:

Cần cài đặt trigger cho thao tác sửa đặt hàng, thêm/sửa giao hàng

Thêm Xoá Sửa

DatHang - -(*) +(NgayDH)

(14)

Trigger -Ví dụ (tt)

Trigger cho thao tác thêm sửa giao

hàng:

Create trigger tr_GH_ins_upd_NgayGH

On GIAOHANG for insert, update As

(15)

Trigger -Ví dụ (tt)

if update(MaPDH) or update (NgayGH)

if exists(select * from inserted i, DatHang d where i.MaPDH = d.MaPDH

and i.NgayGH<d.NgayDH) begin

raiserror (N‘Ngày GH nhỏ ngày ĐH,15,1) rollback tran

(16)

Trigger -Ví dụ (tt)

(17)(18)

Trigger - Ví dụ (tt)

Qui định:

– Các trận đấu đội bóng phải cách tối thiểu 24

– Cầu thủ thi đấu trận đấu mà đội cầu thủ tham gia

(19)

Thay đổi xóa trigger

Thay đổi nội dung trigger:

Thay từ khóa create lệnh tạo trigger

từ khóa alter

Xóa trigger

(20)

Nội dung

Trigger

Khung nhìn

(21)

View – Khái niệm

View (khung nhìn) bảng ảo định

nghĩa lệnh select

– Đối với người dùng: view giống bảng thật – Dữ liệu view liệu nhiều

bảng thật (view không chứa liệu thật sự)

(22)

View – Khái niệm (tt)

Mục đích sử dụng:

– Thể liệu dạng phù hợp với nhóm nghiệp vụ/ nhóm NSD

(23)

View – Khai báo

Cú pháp:

Create view view_name [(column_name [ , n ])] [with Schemabinding]

(24)

View – khai báo (tt)

Schemabinding: gắn kết view với lược đồ, đó: Khơng thể xóa bảng hay view khác có liên quan đến định

nghĩa view có schemabinding

Khơng thể thay đổi cấu trúc bảng/ view việc thay đổi ảnh hưởng đến định nghĩa view có schemabinding

Các tên bảng, view câu select phải viết dạng owner.Tênbảng/Tênview tất phải database

Nếu view schemabinding định nghĩa view khác, view phải dạng schemabinding

(25)

View – Khai báo (tt)

Ví dụ:

Create view ThiSinh_Nganh (SBD, HoTen, MaNganh, TenNganh) as

select ts.SBD, ts.HoTen, ts.Nganh, n.TenNganh from ThiSinh ts, Nganh n

where ts.Nganh = n.MaNganh

(26)

Khai báo view – Lưu ý

Lệnh select định nghĩa view khơng

chứa:

Order by, có phải kèm với TOP Compute/ Compute…by

Select into

Khơng thể gắn kết rule hay default vào view

Khơng thể khai báo

trigger for/after

view

(chỉ khai báo

trigger instead of

)

(27)

View – Sử dụng

Truy xuất liệu từ view (select)

– Như truy xuất bảng

Cập nhật liệu (insert/ delete/ update)

– Dùng lệnh insert / delete / update tương tự thao tác bảng

cần xem xét thêm số vấn đề

(28)

Cập nhật liệu view

View cập nhật (insert/ update/

delete) nếu:

– lệnh select định nghĩa view khơng chứa:

Cột dẫn suất (tính toán từ cột liệu thật sự) Trong số trường hợp xóa

Các hàm tổng hợp (count, sum, avg, max,…)

Group by,Top, Select distinct

(29)

Cập nhật liệu view (tt)

– Trong mệnh đề from lệnh select phải tham

chiếu đến bảng ( view với liệu lấy từ bảng), phải select cột từ liệu

– Lệnh cập nhật phải viết cho làm thay đổi liệu thật một bảng (lệnh xóa thực view tham chiếu đến bảng) – Không thỏa điều kiện trên, có trigger

(30)

Cập nhật liệu view (tt)

Ví dụ: Các view định nghĩa sau khơng thể

cập nhật được:

Create view V_SoNV

As Select MaPhong, Count (*) as SoNV From NhanVien

Group by MaPhong

Create View V_NhanVien

As select MaNV, HoNV + ‘ ‘ +TenNV as HoTen From NhanVien

Create View V1 Có thể

(31)

Cập nhật view với Trigger Instead of

Có thể dùng trigger instead of để cập nhật

view

– Tự xử lý thao tác cập nhật

Ví dụ: Viết trigger instead of phép

insert view

V_NhanVien

(32)

Cập nhật view với Trigger Instead of

create trigger tr_Ins_View_NV on V_NhanVien

instead of insert as

insert into NhanVien (MaNV, HoNV, TenNV) select MaNV,

left(TenNV, CharIndex(' ',TenNV)),

(33)

Indexed View

Dùng liệu view lớn, truy xuất

thường xuyên

Cài đặt cluster index view

view trở

thành index view

– Dữ liệu index view lưu trữ lại bảng

(34)

Thay đổi xóa view

Thay đổi cấu trúc view:

Thay từ khóa create lệnh tạo view

từ khóa alter

Xóa view

Ngày đăng: 04/04/2021, 07:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w