創建存儲過程和函數


#1.創建數據表
create table sch(
    id int(10) primary key not null unique,
    name varchar(50) not null,
    glass varchar(50) not null
);
#插入數據
insert into sch values(1,'xiaoming','glass1'),(2,'xiaojun','glass2');
#查看創建的表格
DESC sch;
#查看表中的內容
SELECT * FROM sch;

#2.創建一個存儲函數來統計表sch中的記錄數
create function count_sch()
returns int
return (select count(*) from sch);
#查看
select count_sch() as count_sch;
#創建的存儲函數名稱為count_sch,通過select count_sch()查看函數執行的情況,這個表中只有兩條記錄,得到的結果也是兩條記錄,說明存儲函數成功的執行。

#3.創建一個存儲過程add_id在同時使用前面創建的存儲函數返回表sch中的記錄數,計算出表中所有的id之和。
create procedure add_id(out count int)
begin
    declare itmp int;
    declare cur_id cursor for select id from sch;
    declare exit handler for not found close cur_id;
    
    select count_sch() into count;
    set @sum = 0;
    open cur_id;
    repeat
    fetch cur_id into itmp;
    if itmp < 10
    then set @sum = @sum + itmp;
    end if;
    until 0 end repeat;
    close cur_id;
end;
/**
 * 這個存儲過程的代碼中使用到了變量的聲明、光標、流程控制、在存儲過程中調用存儲函數等知識點,結果應該是兩條記錄,
 * id之和為3,記錄條數是通過上面的存儲函數count_sch()獲取的,是在存儲過程中調用了存儲函數。
 */

#查看
select @a,@sum;

 1.3變量的使用

  變量可以在子程序中聲明並使用,這些變量的作用范圍是在BEGIN END程序中。

  1.定義變量

    DECLARE 變量名【,變量名】 數據類型【DEFAULT value】;

    例:定義名稱為myprama的變量,類型為int類型,默認值為100;

      DECLARE myprama INT DEFAULT 100;

  2.為變量賦值 定義變量之后,為變量賦值可以改變變量的默認值,MySQL中使用SET語句為變量賦值,語句格式如下:

    SET 變量名 = expr[,變量名 = expr];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM