Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Nguyễn Thị Mỹ Dung
Số trang: 29
Loại file: pdf
Dung lượng: 2.21 MB
Lượt xem: 9
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 Procedure, Trigger, Function cung cấp cho người học những kiến thức như: Procedure; Function; Trigger; Bài tập thực hành. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Nguyễn Thị Mỹ Dung Bài giảngHQT Cơ sở dữ liệu (ORACLE)Số tc: 3; LT: 25; Btập: 20GV: Nguyễn Thị Mỹ Dung Khối lớp: Đại học L2 1 NỘI DUNG MÔN HỌC 1 Chương 1: Tổng quan về Oracle (2) 2 Chương 2: Cơ bản về Oracle (2)3 Chương 3: Truy vấn SQL (12)4 Chương 4: Lập trình PL/SQL (9) 5 Chương 5: Procedure, Trigger, Function (12) 6 Chương 6: Quản trị người dùng (4)7 Chương 7: Kết nối CSDL với Oracle (4) 2 Ch5: Procedure, Function, TriggerI. ProcedureII. FunctionIII. TriggerIV. Bài tập thực hành 3 I. Procedure 1. Giới thiệu Thủ tục là một chương trình con để thực hiện một hànhđộng cụ thể nào đó để tăng khả năng xử lý. Có thể sử dụng nhiều lần, có tính bảo mật và an toàn dữliệu cao. Không có giá trị trả về. 2. Khai báo CREATE [OR REPLACE] PROCEDURE tên-thủ tục [(dsáchthamsố)] IS [khai báo biến] BEGIN [EXCEPTION ] END; /*kết thúc thủ tục*/ 4 Procedure – khai báo (tt) - Từ khóa OR REPLACE để tự động xóa và tạomới thủ tục nếu tên thủ tục đó đã tồn tại. Ví dụ: CREATE OR REPLACE HienThiNgay (m number) IS …. - Không được dùng Varchar2(n) trong tham sốtruyền vào, kiểu dữ liệu tham số truyền vào phải làkiểu dữ liệu không ràng buộc. - Không thể áp dụng cho các điều kiện thực hiệntrên nhóm (mệnh đề GROUP). - 5 Procedure – khai báo (tt)Cú pháp đầy đủ:CREATE [OR REPLACE] PROCEDURE procedure_name[( [IN | OUT | IN OUT] [, [IN | OUT | IN OUT] [DEFAULT ]) ]IS [ < kiểudữliệu > [NULL | NOT NULL] [DEFAULT ] ;]BEGIN [;] -- Đây là khối lệnh PL/SQL trong chương trình [EXCEPTION --Phần ngoại lệ (nếu có) WHEN THEN [;] ]END; 6 Procedure (tt)3. Gọi thủ tục - Cú pháp gọi trong PL/SQL: Declare …. BEGIN Tênthủtục(danhsáchthamsố);*/ …. END;- Cú pháp gọi thủ tục từ SQL*Plus: SQL> EXECUTE Tênthủtục(danhsáchthamsố)4. Xóa thủ tục DROP PROCEDURE tênthủtục; 7 Procedure (tt)VD1: Tăng kinh phí cho đề tài DT004CREATE OR REPLACE PROCEDURE Tang_kinhphiAS kp_old INT; kp_new INT;BEGIN SELECT KINHPHI INTO kp_old FROM DETAI WHERE MADT=DT004; IF SQL%FOUND THEN kp_new := kp_old + kp_old*10/100; UPDATE DETAI SET KINHPHI = kp_new WHERE MADT=DT004; 8 Procedure – VD1 (tt) IF SQL%ROWCOUNT0 THEN DBMS_OUTPUT.PUT_LINE (De tai DT004 duoc tang); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE (Khong tim thay de tai nay!); END; Thực thi thủ tục: Begin TANG_kinhphi; end; 9 Procedure – VD (tt)VD2: Thủ tục in ra ngày tương ứng với số truyền vàoCREATE PROCEDURE P_Ngay (n IN NUMBER,m OUT NUMBER) ISngay CHAR(15);BEGIN IF n =1 THEN ngay :=Sunday; ELSIF n =2 THEN ngay :=Monday; ELSIF n =3 THEN ngay :=Tuesday; ELSIF n =4 THEN ngay :=Wednesday; ELSIF n =5 THEN ngay :=Thursday; ELSIF n =6 THEN ngay :=Friday; ELSIF n =7 THEN ngay :=Saturday; END IF; m:=n; dbms_output.put_line(Ngay truyen vao: || ngay);END; 10 Procedure – VD2 (tt)--Chạy thủ tục với tham số raDECLARE M NUMBER;BEGIN P_NGAY(5,M); DBMS_OUTPUT.PUT_LINE(THAM SO RA:|| M);END;-- Truyền trực tiếp tham số raDECLARE M NUMBER;BEGIN P_NGAY(5,7); /* Cho nhan xet???? */ DBMS_OUTPUT.PUT_LINE(THAM SO RA:|| M);END; 11 Procedure – VD2 (tt)--Truyền cả hai tham sốDECLARE so1 NUMBER; so2 NUMBER;BEGIN so1:=4; P_NGAY(so1,so2); DBMS_OUTPUT.PUT_LINE(so1); DBMS_OUTPUT.PUT_LINE(so2);END;--Kết quả in ra? 12 Procedure – VD (tt)VD3: Tạo thủ tục kiểm tra khoá chính khi thêm sinh viênCreate Procedure THEM_SINHVIEN (v_MASV in CHAR, v_HOTENSV in varchar2, v_NAMSINH in INT, v_QUEQUAN in varchar2, v_HOCLUC in FLOAT)As DEM int;Begin select count(*) into DEM from SINHVIEN where MASV = v_MASV; if ( DEM=1) then DBMS_Output.Put_ ...
Nội dung trích xuất từ tài liệu:
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Nguyễn Thị Mỹ Dung Bài giảngHQT Cơ sở dữ liệu (ORACLE)Số tc: 3; LT: 25; Btập: 20GV: Nguyễn Thị Mỹ Dung Khối lớp: Đại học L2 1 NỘI DUNG MÔN HỌC 1 Chương 1: Tổng quan về Oracle (2) 2 Chương 2: Cơ bản về Oracle (2)3 Chương 3: Truy vấn SQL (12)4 Chương 4: Lập trình PL/SQL (9) 5 Chương 5: Procedure, Trigger, Function (12) 6 Chương 6: Quản trị người dùng (4)7 Chương 7: Kết nối CSDL với Oracle (4) 2 Ch5: Procedure, Function, TriggerI. ProcedureII. FunctionIII. TriggerIV. Bài tập thực hành 3 I. Procedure 1. Giới thiệu Thủ tục là một chương trình con để thực hiện một hànhđộng cụ thể nào đó để tăng khả năng xử lý. Có thể sử dụng nhiều lần, có tính bảo mật và an toàn dữliệu cao. Không có giá trị trả về. 2. Khai báo CREATE [OR REPLACE] PROCEDURE tên-thủ tục [(dsáchthamsố)] IS [khai báo biến] BEGIN [EXCEPTION ] END; /*kết thúc thủ tục*/ 4 Procedure – khai báo (tt) - Từ khóa OR REPLACE để tự động xóa và tạomới thủ tục nếu tên thủ tục đó đã tồn tại. Ví dụ: CREATE OR REPLACE HienThiNgay (m number) IS …. - Không được dùng Varchar2(n) trong tham sốtruyền vào, kiểu dữ liệu tham số truyền vào phải làkiểu dữ liệu không ràng buộc. - Không thể áp dụng cho các điều kiện thực hiệntrên nhóm (mệnh đề GROUP). - 5 Procedure – khai báo (tt)Cú pháp đầy đủ:CREATE [OR REPLACE] PROCEDURE procedure_name[( [IN | OUT | IN OUT] [, [IN | OUT | IN OUT] [DEFAULT ]) ]IS [ < kiểudữliệu > [NULL | NOT NULL] [DEFAULT ] ;]BEGIN [;] -- Đây là khối lệnh PL/SQL trong chương trình [EXCEPTION --Phần ngoại lệ (nếu có) WHEN THEN [;] ]END; 6 Procedure (tt)3. Gọi thủ tục - Cú pháp gọi trong PL/SQL: Declare …. BEGIN Tênthủtục(danhsáchthamsố);*/ …. END;- Cú pháp gọi thủ tục từ SQL*Plus: SQL> EXECUTE Tênthủtục(danhsáchthamsố)4. Xóa thủ tục DROP PROCEDURE tênthủtục; 7 Procedure (tt)VD1: Tăng kinh phí cho đề tài DT004CREATE OR REPLACE PROCEDURE Tang_kinhphiAS kp_old INT; kp_new INT;BEGIN SELECT KINHPHI INTO kp_old FROM DETAI WHERE MADT=DT004; IF SQL%FOUND THEN kp_new := kp_old + kp_old*10/100; UPDATE DETAI SET KINHPHI = kp_new WHERE MADT=DT004; 8 Procedure – VD1 (tt) IF SQL%ROWCOUNT0 THEN DBMS_OUTPUT.PUT_LINE (De tai DT004 duoc tang); END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE (Khong tim thay de tai nay!); END; Thực thi thủ tục: Begin TANG_kinhphi; end; 9 Procedure – VD (tt)VD2: Thủ tục in ra ngày tương ứng với số truyền vàoCREATE PROCEDURE P_Ngay (n IN NUMBER,m OUT NUMBER) ISngay CHAR(15);BEGIN IF n =1 THEN ngay :=Sunday; ELSIF n =2 THEN ngay :=Monday; ELSIF n =3 THEN ngay :=Tuesday; ELSIF n =4 THEN ngay :=Wednesday; ELSIF n =5 THEN ngay :=Thursday; ELSIF n =6 THEN ngay :=Friday; ELSIF n =7 THEN ngay :=Saturday; END IF; m:=n; dbms_output.put_line(Ngay truyen vao: || ngay);END; 10 Procedure – VD2 (tt)--Chạy thủ tục với tham số raDECLARE M NUMBER;BEGIN P_NGAY(5,M); DBMS_OUTPUT.PUT_LINE(THAM SO RA:|| M);END;-- Truyền trực tiếp tham số raDECLARE M NUMBER;BEGIN P_NGAY(5,7); /* Cho nhan xet???? */ DBMS_OUTPUT.PUT_LINE(THAM SO RA:|| M);END; 11 Procedure – VD2 (tt)--Truyền cả hai tham sốDECLARE so1 NUMBER; so2 NUMBER;BEGIN so1:=4; P_NGAY(so1,so2); DBMS_OUTPUT.PUT_LINE(so1); DBMS_OUTPUT.PUT_LINE(so2);END;--Kết quả in ra? 12 Procedure – VD (tt)VD3: Tạo thủ tục kiểm tra khoá chính khi thêm sinh viênCreate Procedure THEM_SINHVIEN (v_MASV in CHAR, v_HOTENSV in varchar2, v_NAMSINH in INT, v_QUEQUAN in varchar2, v_HOCLUC in FLOAT)As DEM int;Begin select count(*) into DEM from SINHVIEN where MASV = v_MASV; if ( DEM=1) then DBMS_Output.Put_ ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Hệ quản trị cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu Cơ sở dữ liệu Khai báo biến Truyền cả hai tham số Khai báo Cú phápGợi ý tài liệu liên quan:
-
62 trang 401 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 377 6 0 -
13 trang 292 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 292 0 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 285 0 0 -
Giáo án Tin học lớp 12 (Trọn bộ cả năm)
180 trang 267 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 255 1 0 -
Thực hiện truy vấn không gian với WebGIS
8 trang 248 0 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 244 0 0 -
8 trang 186 0 0