--把若干条sql语句封装起来,起个名字,叫做过程,也是没有返回值的函数 --把这个过程存储在数据库中->存储过程
--存储过程的创建过程 create procedure proceduceName() begin sql 语句 end$ --查看 show procedure status \G --调用 call procedureName()$ --声明变量 declare age int default 18; --运算 set age:=age+10; --改变边界 delimiter $ --例子 create procedure p1() begin declare age int default 18; set age:=age+10; select age; end$ --用call p1()$调用时出现 age 28
--创建表 create table test( id int, name varchar(30) not null default ‘‘, age int, content varchar(40) )engine myisam charset utf8$ --插入数据 insert into test values (1,‘zhangsan‘,13,‘学习好‘),(2,‘lisi‘,15,‘智慧的化身‘),(2,‘wangwu‘,14,‘不起眼‘)$
--存储过程存储sql语句 create procedure p2() begin select content from test where age=15; end$ --存储过程是可以编程的 --意味着可以使用变量,表达式,控制结构完成复杂的功能 --if/else语句的使用 if 条件 then 语句; else if 条件 then 语句; else 语句; end if; create procedure p3() begin declare age int default 18; if age>=18 then select ‘你已经成年了‘; else select ‘未成年‘; end if; end$ --while 循环 while 条件 do 语句; end while; --括号里可以声明参数 --参数类型 [in/out/inout] 参数名 参数类型 create procedure p4(agee int) begin select name from test where age=agee; end$ in 表示输入参数 传参 out 表示输出参数 传变量名 向外传值 要设置初始化值 inout 输入参数执行后再输出 传入一个声明过的变量名 create procedure p5(in age int) begin select age as ‘你几岁了‘; end$ --out 参数,要在procedure 内部初始化参数 create procedure p6(out result int) begin declare i int default 1; set result:=0; while i<=100 do set result:=result+i; set i:=i+1; end while; end$ --调用 call p6(@num)$ select @num$ --inout 参数 create procedure p7(inout age int) begin set age:=age+10; select age as ‘10年后你几岁了‘; end$ set @age=10$ call p7(@age)$ select @age$ --case语句 case 变量名 when 值1 then 操作1; when 值2 then 操作2; ... else 操作n; end case; --repeat 循环 repeat 操作语句 until 条件 end repeat;
时间: 2024-10-14 17:26:50