-- ----------------------------
-- table structure for students
-- ----------------------------
drop table if exists `students`;
create table `students` (
`id` int not null auto_increment comment '主鍵id',
`name` varchar(255) character set utf8 collate utf8_general_ci not null comment '姓名',
`code` varchar(20) character set utf8 collate utf8_general_ci not null comment '學號',
`class` varchar(255) character set utf8 collate utf8_general_ci not null default '一班' comment '所在班級',
primary key (`id`)
) engine=innodb auto_increment=5 default charset=utf8;
-- ----------------------------
-- records of students
-- ----------------------------
insert into `students` values ('1', '張三', '202001001', '一班');
insert into `students` values ('2', '李四', '202001002', '一班');
insert into `students` values ('3', '王五', '202001003', '一班');
insert into `students` values ('4', '趙六', '202001004', '一班');
示意圖:
drop procedure if exists insertstudents; # 如果存在test儲存過程則刪除
create procedure insertstudents() # 建立無參儲存過程,名稱為insertstudents
begin
declare i int; # 申明變數
set i = 0; # 變數賦值
while i<5 do # 結束迴圈的條件: 當i大於5時跳出while迴圈
insert into students(name, code, class) values('***', '2020010' + i + 10, '一班'); # 往students表新增資料
set i = i+1; # 迴圈一次,i加1
end while; # 結束while迴圈
select * from sudents; # 檢視students表資料
end $$ # 結束定義語句
delimiter ; # 重新將分隔符設定為;
執行結果:
call insertstudents(); #呼叫儲存過程
drop procedure insertstudents; #刪除儲存過程
set global log_bin_trust_function_creators=true;
delimiter $$
drop function if exists insertstudents; # 如果存在insertstudents函式則刪除
create function insertstudents(i int(10)) returns int(10) # 建立函式 學習while迴圈的用法
begin
while i<5 do # 結束迴圈的條件: 當i大於5時跳出while迴圈
insert into students(name, code, class) values('***', '2020010' + i + 10, '一班'); # 往students表新增資料
set i = i+1; # 迴圈一次,i加1
end while; # 結束while迴圈
return (select count(*) from students);
end $$
delimiter ;
執行結果:
select insertstudents(3); #呼叫函式
執行結果:
drop function insertstudents; #刪除函式
mysql迴圈(儲存過程)
delimiter drop procedure if exists test create procedure test begin declare i int declare j int set i 11235 set j 02011200 while i 15236 do insert int...
迴圈佇列(即順序儲存的佇列,元素迴圈儲存)
在邏輯上把順序儲存的佇列想象成乙個環,就是迴圈佇列。迴圈佇列仍是順序儲存,只是元素可以迴圈儲存在給定的儲存空間。前篇文章,順序儲存佇列基本操作 所描述的佇列的儲存空間只可以使用一次,在一些元素出隊之後,空出來的空間沒有辦法再次儲存,造成浪費,所以更多選擇迴圈佇列。兩者的記憶體中的儲存一樣,只是邏輯上...
mysql while迴圈多輸出一行原因解析
有這樣乙個儲存過程 drop procedure if exists tmall test delimiter create procedure tmall test begin declare done tinyint default 0 declare u id int 11 declare c...