声明变量
声明变量:
声明方式: = := 两种都可以,如果时查询语句,需要用:=
set @变量名 = 1
select @tang:=money from bank (格式:select @变量名:=字段 from 表)
查看变量值:
select @变量名
存储过程:
存储过程是数据库中的一个重要功能,存储过程可以用来转换数据、数据迁移、制作报表,它类似于编程语言,一次执行成功,就可以随时被调用,完成指定的功能操作
存储过程:
定义存储过程:
create procedure test(in a int, in b int, out sum int)
begin
set sum = a + b; (后面记得加;)
end
test为存储过程名,(这里面应当按照格式 in xxx int)这是要获取的值,(out xxx int)这是要返回的值,相当于return
调用存储过程:
call test(10, 20, @result) #这里需要传三个参数,前两个分别代表a、b,后面的为变量接返回值的
select @result //查看返回值
###使用存储过程将进行累加和####
create procedure test1(in count int)
begin
declare i int default 1; //这里时定义变量,使用declare进行定义变量i且默认值为1
declare sum int default 0; //定义变量sum默认值为0
while i <= count do //使用while循环,这里的while 后面是 do
set sum=sum+i; //没句语句后面记得加;
set i=i+1;
end while; //结束循环
select sum; //查询sum的值
end
//也支持if循环,和循环嵌套,
if格式:
if 条件 then
xxxxxx;
else
xxxxxxx;
end if;
###############调用
call test1(20)
删除存储过程:
drop procedure 存储过程名
触发器
触发器(trigger):
自动调用,
创建触发器:
create trigger 触发器名
before|after 动作(delete、inser、update)
on 表名 for each row
degin
动作
end;
删除触发器:
drop trigger 触发器名
##########################
create table bank_bak1 select * from bank limit 0 //复制表bank结构为表bank_bak1
create table bank_bak1 select * from bank //复制表bank结构和数据为bank_bak1
create table bank_bak2 like bank //复制表结构
#################################
create trigger trigger_test //创建触发器
before delete //delete动作触发
on bank for each row //bank表
begin
insert into bank_bak1(name, money) values(old, name, old, money);
//这里是当触发后执行的操作:在bank_bak1表中插入数据,old为原来的意思,就是原来的数据插入到备份表中
end