#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];