mysql儲存器學習筆記

2021-08-07 18:50:19 字數 2420 閱讀 6121

儲存過程可以寫一條或多條的sql語句

加上mysql> delimiter \$\$

mysql> create procedure test1()

-> begin

-> select * from db_user;

-> end;

-> \$\$

query ok, 0 rows affected (0.00 sec)

mysql> call test1()

-> ;

-> $$

1.儲存過程的變數

create procedure `db01`()

begin    

#宣告變數

declare my_uname varchar(32) default '';  

#賦值辦法1  

set my_uname='hxf'; 

#賦值辦法2   

select  question into my_uname from db_question where id=4;    

select my_uname;

endcall db01

條件語句

create definer=`root`@`localhost` procedure `db03`(in my_uid int)

begin   

declare my_uname varchar(32) default ''; 

if(my_uid%2=0)

then

select question into my_uname from db_question where id=my_uid;      

select my_uname;   

elseif(...)

then

......

else      

select my_uid;   

end if; 

end迴圈語句

情況一:

create procedure `db05` ()

begin

declare i int default 0;

while(i<10) do

begin

select i;

set i=i+1;

#insert into db_user(name) values(i);

end;

end while;

end;

情況二:

create procedure `new_procedure` ()

begin

declare i int default 0;

repeat

begin

select i;

set i=i+1;

#insert into db_user(name) values(i);

end;

until i>10

end repeat;

end游標

begin

declare stopflag int(11) default 0;

declare my_uname varchar(32) default '';

#游標是乙個查詢的結果集

declare uname_cur cursor for select name from db_user where id%2=0;

#continue 是否繼續的控制代碼 continue handler 跟蹤上乙個游標的變數  

declare continue handler for not found set stopflag=1;

#開啟游標

open uname_cur;

#使用游標

fetch uname_cur into my_uname;

while(stopflag=0) do

begin

#select my_uname;

update db_user set name=concat(my_uname,'_cur') where name=my_uname; 

fetch uname_cur into my_uname;

end;

end while;

#使用完游標要關閉、

close uname_cur; 

end觸發器

#建立乙個觸發器  在新增db_user之後

create trigger tr_user_insert after insert on db_user

#對每一行受影響

for each row

begin

#新增完一條之後就立刻執行一條sql

insert into db_test(name,face) 

values(new.name,new.img);

end

mysql學習筆記 儲存過程

sql view plain copy use test drop table if exists t8 create table t8 s1 int,primary key s1 drop procedure if exists handlerdemo delimiter create proce...

Mysql儲存過程學習筆記

在pl sql中,主要包括declare部分 宣告引數 begin.end部分和例外部分。mysql儲存過程建立的格式 create procedure過程名 過程引數 特性.過程體 選中 函式右鍵 新建建立 完成 輸入函式體 儲存名字 語法 create procedire 儲存過程命名 開始 函...

mysql儲存過程學習筆記

儲存過程理解 1.儲存過程 類似函式或者方法,是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數 如果該儲存過程帶有引數 來呼叫執行它。2.mysql儲存過程的建立 mysql儲存過程建立的格式 create procedure 過程名 過程引數 特...