Tài liệu Thủ tục lưu trữ và Hàm - Store Procedures ppt

46 1.5K 0
Tài liệu Thủ tục lưu trữ và Hàm - Store Procedures ppt

Đ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ủ tục lưu trữ Hàm Store Procedures  Định nghĩa thủ tục lưu trữ,hàm Ưu điểm của thủ tục lưu trữ,hàm Tạo lập thực thi thủ tục lưu trữ,hàm Tham số trong thủ tục lưu trữ,hàm Biến cục bộ Cấu trúc điều khiển   Là một nhóm các câu lệnh  Được biên dịch trước → thực hiện một nhiệm vụ cụ thể.  Được viết bởi: − Người phát triển CSDL. − DBA – Database Administrator  Hỗ trợ cho công việc quản trị CSDL  Lập trình theo module Thực thi nhanh hơn các lệnh T-SQL Làm giảm lưu lượng trên mạng Tăng cường bảo mật Xem các thủ tục lưu trữ của một database select routine_type, routine_name from information_schema.routines where routine_schema='csdl_qldthi'; Khai báo thủ tục CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[, ]]) [characteristic ] routine_body Khai báo hàm CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[, ]]) RETURNS type [characteristic ] routine_body  Trong đó: proc_parameter: là kiểu của tham số [ IN | OUT | INOUT ] param_name type type: Kiểu dữ liệu hợp lệ trong MySQL routine_body: Những câu lệnh hợp lệ Khai báo thủ tục – ví dụ DELIMITER $$ DROP PROCEDURE IF EXISTS `Hello` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `Hello`() BEGIN select 'Hello World'; END $$ DELIMITER ; Gọi thủ tục CALL sp_name([parameter[, ]]) CALL sp_name[()] Ví dụ CALL Hello() CALL Hello('Marry') [...]... số trong thủ tục lưu trữ, hàm Làm cho các chương trình mềm dẻo hơn hữu dụng hơn Được đặt trong cặp dấu ngoặc đơn sau thủ tục với cú pháp: mode parameter_name datatype Lưu ý: Mode có 3 giá trị IN, OUT, INOUT riêng đối với function chỉ có tham số kiểu IN Các kiểu tham số Có 3 kiểu tham số: Chỉ đọc (Read-only) (mặc định) Chỉ ghi (Write – only) Vừa đọc vừa ghi (read - write) Khai báo thủ tục - vd1 DELIMITER... (num1 int) BEGIN if num1 = 0 then select 'một số bằng o'; end if; END $$ DELIMITER ; Cấu trúc IF- dạng 1 Yêu cầu: Tạo thủ tục như trên Gọi thủ tục: CALL IF_DANG1(1); CALL IF_DANG1(0) Xem kết quả cho nhận xét?? Cấu trúc IF – dạng 2 IF expression THEN commands ELSE commands END IF; Cấu trúc IF – dạng 2- ví dụ DELIMITER $$ DROP PROCEDURE IF EXISTS `test`.`IF_DANG2` $$ CREATE PROCEDURE `test`.`IF_DANG2`... báo thủ tục – vd3 DELIMITER $$ DROP PROCEDURE IF EXISTS `Hello_out` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `Hello_out`(inout chao varchar(100)) BEGIN set chao = 'Daisy'; select concat('Hello ',chao); END $$ DELIMITER ; Gọi thủ tục set @chao='Marry'; CALL Hello_in_out(@chao); select @chao; Câu hỏi: Thực thi từng câu query Nhận xét sự thay đổi của biến @name Biến cục bộ Được khai báo bên trong thủ. .. DELIMITER ; Gọi hàm – vd1 SELECT test_f('mary') Hoặc Set @a =``; Set @a:=test_f('mary'); Hoặc Set @a=``; select @a:= test_f('mary'); Khai báo thủ tục – ví dụ 2 DELIMITER $$ DROP PROCEDURE IF EXISTS `Hello_out` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `Hello_out`(str1 varchar(100),out str2 varchar(100)) BEGIN set str2 = 'Daisy'; select concat(str1,' ',str2); END $$ DELIMITER ; Gọi thủ tục – ví dụ... int) BEGIN if num1=0 or num1=1 then select 'số bằng 0 hoặc 1'; else select 'trường hợp khác'; end if; END $$ DELIMITER ; Cấu trúc IF – dạng 2 – ví dụ Yêu cầu: Tạo thủ tục như trên Gọi thủ tục: CALL IF_DANG1(1); CALL IF_DANG1(0) Xem kết quả cho nhận xét?? Cấu trúc IF – dạng 3 IF expression THEN commands2    ELSEIF expression THEN commands3    ELSE commands4   END IF; Cấu trúc IF – dạng 2 – ví dụ DELIMITER... 'Hello Lan'; elseif name='Hue' then select 'Hello Hue'; else select 'I don`t know you'; end if; END $$ DELIMITER ; Cấu trúc IF – dạng 3 – ví dụ Yêu cầu: Tạo thủ tục như trên Gọi thủ tục: CALL IF_DANG1(`Lan`); CALL IF_DANG1(`Hồng`); Xem kết quả cho nhận xét?? Cấu trúc Case CASE    WHEN expression THEN commands; …………      WHEN expression THEN commands…; ELSE commands;    END CASE; Cấu trúc Case –... 'Hello Lan'; WHEN name='hue' THEN SELECT 'Hello Hue'; ELSE SELECT 'i don`t know you.'; END CASE; END $$ DELIMITER ; Cấu trúc CASE– ví dụ Yêu cầu: Tạo thủ tục như trên Gọi thủ tục: CALL test.`case`('lan') CALL test.`case`(hue') CALL test.`case`(`an') Xem kết quả cho nhận xét?? Cấu trúc vòng lặp While,Repeat,Loop ... DEFINER=`root`@`localhost` PROCEDURE `Hello_in`(chao varchar(100)) BEGIN set chao = 'Daisy'; select concat('Hello ',chao); END $$ DELIMITER ; Gọi thủ tục set @name='Marry'; CALL Hello_in(@name); select @name; Câu hỏi: Thực thi từng câu query Nhận xét sự thay đổi của biến @name??? Khai báo hàm – vd1 DELIMITER $$ DROP FUNCTION IF EXISTS `test_baitap`.`test_f` $$ CREATE FUNCTION `test_baitap`.`test_f` (name varchar(50))... ',chao); END $$ DELIMITER ; Gọi thủ tục set @chao='Marry'; CALL Hello_in_out(@chao); select @chao; Câu hỏi: Thực thi từng câu query Nhận xét sự thay đổi của biến @name Biến cục bộ Được khai báo bên trong thủ tục Cú pháp: DECLARE variable_name [,variable_name ] datatype [DEFAULT value]; Vd: declare name varchar(50) default 'hey' Conditional Control (Điều khiển rẽ nhánh) Cấu trúc điều khiển Thực thi code dựa . Thủ tục lưu trữ và Hàm Store Procedures  Định nghĩa thủ tục lưu trữ, hàm Ưu điểm của thủ tục lưu trữ, hàm Tạo lập thực thi thủ tục lưu trữ, hàm Tham. theo module Thực thi nhanh hơn các lệnh T-SQL Làm giảm lưu lượng trên mạng Tăng cường bảo mật Xem các thủ tục lưu trữ của một database select routine_type,

Ngày đăng: 25/02/2014, 03:20

Từ khóa liên quan

Mục lục

  • Thủ tục lưu trữ và Hàm

  • Nội dung

  • Định nghĩa thủ tục lưu trữ, hàm

  • Thuận lợi

  • Xem các thủ tục lưu trữ của một database

  • Khai báo thủ tục

  • Khai báo hàm

  • Ý nghĩa các tham số

  • Khai báo thủ tục – ví dụ

  • Gọi thủ tục

  • Tham số trong thủ tục lưu trữ,hàm

  • Các kiểu tham số

  • Khai báo thủ tục - vd1

  • Slide 14

  • Khai báo hàm – vd1

  • Gọi hàm – vd1

  • Khai báo thủ tục – ví dụ 2

  • Gọi thủ tục – ví dụ 2

  • Khai báo thủ tục – vd3

  • Slide 20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan