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

SLIDE GIẢNG DẠY CƠ SỞ DỮ LIỆU QUAN HỆ VÀ SQL CHƯƠNG 9 NGÔN NGỮ PL SQL

79 446 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

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 784 KB

Nội dung

NGÔN NGỮ THỦ TỤC PL/SQL - Lý thuyết: tiết - Thực hành: tiết Chương Ngôn ngữ thủ tục –PL/SQL 9-1 NGÔN NGỮ THỦ TỤC – PL/SQL 9.1 Giới thiệu PL/SQL 9.2 Con trỏ (Cursor) 9.3 Thủ tục hàm 9.4 Quản lý đối tượng lớn Chương Ngôn ngữ thủ tục –PL/SQL 9-2 Giới thiệu PL/SQL - Mở rộng của SQL - Mã PL/SQL lưu trữ trực tiếp csdl - Giao tiếp với csdl  cho phép tích hợp lệnh SQL ngôn ngữ lập trình  sử dụng cả sở liệu lập trình ứng dụng  dùng để kết hợp lệnh xử lý chuyển tác  hỗ trợ nhiều thủ tục SQL  đơn vị mã lệnh PL/SQL dạng khối (Begin… End) Chương Ngôn ngữ thủ tục –PL/SQL 9-3 Giới thiệu PL/SQL Khai báo biến Identifier [CONSTANT] datatype [NOT NULL] [:=| DEFAULT expr] Ví dụ: V_Hiredate DATE; V_DeptNo NUMBER(3) NOT NULL := 10; V_Loc VARCHAR2(13) := ‘Atlanta’; Chương Ngôn ngữ thủ tục –PL/SQL 9-4 Giới thiệu PL/SQL - Khai báo khối [DECLARE Khai báo biến, trỏ,…] BEGIN - Lệnh SQL; - Lệnh PL/SQL; [EXCEPTION Xử lý ngoại lệ xảy ra;] END; Chương Ngôn ngữ thủ tục –PL/SQL 9-5 Giới thiệu PL/SQL Ví dụ: DECLARE v VARCHAR2(5); BEGIN SELECT Ename INTO v FROM Emp; EXCEPTION WHEN others THEN Message(SQLERRM); END; Chương Ngôn ngữ thủ tục –PL/SQL 9-6 Giới thiệu PL/SQL Ví dụ: Lấy liệu cột DeptId cột Loc của phòng SALES bảng Dept đưa vào hai biến v_deptno v_loc Nếu có lỗi xuất xuất dòng thông báo mã lỗi hình Chương Ngôn ngữ thủ tục –PL/SQL 9-7 Giới thiệu PL/SQL DECLARE v_deptno NUMBER(2); v_loc VARCHAR2(15); BEGIN SELECT DeptId, Loc INTO v_deptno, v_loc FROM Dept WHERE Dname = 'SALES'; EXCEPTION WHEN others THEN Message(SQLERRM); END; Chương Ngôn ngữ thủ tục –PL/SQL 9-8 Giới thiệu PL/SQL Thuộc tính %Type - %Type sử dụng lưu trữ giá trị nhận được từ một bảng - đặt %Type sau tên bảng và tên cột identifier Table.column%Type; Ví dụ: DECLARE v_deptno Dept.DeptNo%Type; v_loc VARCHAR2(15); v_name Dept.Dname%Type; Chương Ngôn ngữ thủ tục –PL/SQL 9-9 Giới thiệu PL/SQL - Một số chú ý  PL/SQL không hỗ trợ các kiểu dữ liệu mảng  Biến phải được khái báo trước tham chiếu đến Kiểu dữ liệu phần khai báo hoặc không   Trong một khối lệnh các biến không được trùng tên Tên biến không được trùng với tên cột của bảng dữ liệu sử dụng khối   Khởi tạo biến phải rõ NOT NULL, CONSTANT  Khai báo biến hàng  Khởi tạo giá trị cho biến cách sử dụng phép Chương Ngôn ngữ thủ tục –PL/SQL - 10 Thủ tục Sau tạo một thủ tục, sử dụng thủ tục chương trình Ví dụ: Gọi thực thủ tục change_sal với p_Percentage=15 Change_sal(15, v_err); Chương Ngôn ngữ thủ tục –PL/SQL - 65 Thủ tục - Huỷ bỏ thủ tục DROP PROCEDURE procedure_name; Ví dụ: DROP PROCEDURE change_sal; Chương Ngôn ngữ thủ tục –PL/SQL - 66 Hàm trả một giá trị tại lời gọi của - Tạo hàm CREATE [OR REPLACE] FUNCTION func_name [(argument1 [mode1] datatype1, argument2 [mode2] datatype2, )] RETURN datatype IS | AS BEGIN PL/SQL Block; END; Chương Ngôn ngữ thủ tục –PL/SQL - 67 Hàm Ví dụ: CREATE FUNCTION get_sal (p_Empid IN number) RETURN Number IS BEGIN SELECT sal FROM emp WHERE emp_id = p_Empid; RETURN null; EXCEPTION WHEN others THEN RETURN ‘Lỗi: ‘ || SQLERRM; END; Chương Ngôn ngữ thủ tục –PL/SQL - 68 Hàm - Gọi hàm Ví dụ: DECLARE v_Sal number; BEGIN v_SAL := get_sal(7934); PRINT v_Sal; END; Chương Ngôn ngữ thủ tục –PL/SQL - 69 Hàm - Huỷ bỏ hàm DROP FUNCTION function_name; Ví dụ: DROP FUNCTION get_sal; Chương Ngôn ngữ thủ tục –PL/SQL - 70 Hàm - Lợi ích việc sử dụng hàm thực các thao tác phức tạp mệnh đề của câu lệnh SQL  phân tích và xử lý dữ liệu được thực Server   gọi các hàm câu lệnh SQL sử dụng hàm để thao tác các kiểu dữ liệu tự tạo  cho phép thực đồng thời các câu lệnh truy vấn  Chương Ngôn ngữ thủ tục –PL/SQL - 71 Hàm - Hạn chế sử dụng hàm  Phải định nghĩa hàm trước sử dụng được áp dụng cho điều kiện WHERE, áp dụng cho điều kiện HAVING  Chỉ Tham số sử dụng hàm là loại IN, không chấp nhận giá trị OUT hay giá trị IN OUT  Kiểu dữ liệu trả của các hàm phải là kiểu dữ liệu DATE, NUMBER, NUMBER  Không cho phép hàm trả kiểu dữ liệu BOOLEAN, RECORD, TABLE Kiểu dữ liệu trả này phải tương thích với các kiểu dữ liệu bên Oracle Server.Chương Ngôn ngữ thủ tục –PL/SQL - 72  9.3.5 Phát triển gói (Package) - Tập các kiểu dữ liệu, biến, thủ tục và các hàm một mối liên hệ với nhau, được gộp chung lại  Tăng tính phân nhỏ các thành phần (Modularity)  Đơn giản việc thiết kế ứng dụng  Ẩn dấu thông tin (hiding information)  Nâng cao hiệu suất sử dụng  Thực chồng (overloading) (Xem giáo trình) Chương Ngôn ngữ thủ tục –PL/SQL - 73 9.3.6 Phát triển Triggers - Trigger là những thủ tục được thực ngầm định thực lệnh SQL đảm bảo thực tất các thao tác liên quan tới lệnh can thiệp dữ liệu được thực   sử dụng trigger đối với các thao tác trọng tâm không sử dụng trigger để thực các ràng buộc sẵn sở dữ liệu Oracle  Chương Ngôn ngữ thủ tục –PL/SQL - 74 9.3.6 Phát triển Triggers - Tạo TRIGGER Khi tạo trigger, cần lưu ý tới một số tiêu chí sau:  Thời gian thực hiện: BEFORE, AFTER  Hành động thực hiện: INSERT, UPDATE, DELETE  Đối tượng tác động: bảng dữ liệu Loại trigger thực hiện: dòng lệnh hay câu lệnh   Mệnh đề điều kiện thực  Nội dung của trigger Chương Ngôn ngữ thủ tục –PL/SQL - 75 9.3.6 Phát triển Triggers - Phân loại trigger + Phân loại theo thời gian BEFORE trigger: được kích hoạt trước thực câu lệnh(INSERT hoặc UPDATE)  AFTER trigger: được kích hoạt sau lệnh được thực xong  INSTEAD OF trigger: cho phép người sử dụng thay đổi một cách suốt dữ liệu của một số khung nhìn mà thực thay đổi trực tiếp được  Chương Ngôn ngữ thủ tục –PL/SQL - 76 9.3.6 Phát triển Triggers - Phân loại trigger + Phân loại theo câu lệnh kích hoạt (INSERT, UPDATE, DELETE) + phân loại theo số lần kích hoạt Mức lệnh: được kích hoạt thực câu lệnh  Mức dòng dữ liệu: được kích nhiều lần ứng với dòng dữ liệu chịu ảnh hưởng thao tác thực lênh  Chương Ngôn ngữ thủ tục –PL/SQL - 77 9.3.6 Phát triển Triggers - Tạo trigger mức câu lệnh CREATE [OR REPLACE] TRIGGER name timing event1 [OR event2 OR event3] ON table Trigger_body Chương Ngôn ngữ thủ tục –PL/SQL - 78 9.3.6 Phát triển Triggers - Tạo trigger mức câu lệnh Ví dụ: Tạo trigger để giới hạn dữ liệu chèn vào bảng Emp CREATE OR REPLACE TRIGER secure_emp BEFORE INSERT ON Emp BEGIN IF TO_CHAR(sysdate,’DAY’) IN (‘SAT’,’SUN’) OR TO_CHAR(sysdate,’HH24’) NOT BETWEEN ‘08’ AND ’18’ THEN RAISE_APPLICATION_ERROR (-20500, ’Invalid Time.’); END IF; - 79 END; Chương Ngôn ngữ thủ tục –PL/SQL ...NGÔN NGỮ THỦ TỤC – PL /SQL 9. 1 Giới thiệu PL /SQL 9. 2 Con trỏ (Cursor) 9. 3 Thủ tục hàm 9. 4 Quản lý đối tượng lớn Chương Ngôn ngữ thủ tục PL /SQL 9- 2 Giới thiệu PL /SQL - Mở rộng của SQL -... Chương Ngôn ngữ thủ tục PL /SQL Giới thiệu PL /SQL - Kiểu liệu hợp Kiểu dữ liệu Table Kiểu dữ liệu Record Thuộc tính %ROWTYPE Chương Ngôn ngữ thủ tục PL /SQL - 26 Giới thiệu PL /SQL - Kiểu liệu. .. TO MONTH PLS_INTEGER INTERVAL DAY TO SECOND BOOLEAN Chương Ngôn ngữ thủ tục PL /SQL - 11 Giới thiệu PL /SQL Khối lồng phạm vi biến Chương Ngôn ngữ thủ tục PL /SQL - 12 Giới thiệu PL /SQL - Các

Ngày đăng: 29/06/2017, 22:45

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN