MySQL3
流程控制语句
IF语句
if 条件表达式 then sql语句集
end if
但分支if
if 条件表达式 then sql语句集
else sql语句集
end if
多分支if
if 条件表达式 then sql语句集
elseif 条件表达式 then sql语句集
[else sql语句集](可选项)
end if
case 语句
语法
case 表达式
when 表达式值 then sql语句集;
[when 表达式值 then sql语句集]
…………
[else sql语句集](可选项)
end case
case在普通的sql语句中使用
语法1
select 列名列表,case 值 when 比较值 then 结果
[ when 比较值 then 结果……]
[else 结果] end
from 表名 where 过滤条件
语法2
select 列名列表,case when 比较值 then 结果
[ when 比较值 then 结果……]
[else 结果] end
from 表名 where 过滤条件
while语句
语法
[begin_label:] while 条件表达式 do aql语句集
end while [end_lable]
当条件表达式的值为真时,while语句内的语句或语句集会被重复执行
除非begin_label也存在,end_lable才能被用,如果两者都存在,它们必须都是一样的。
触发器
触发器是用来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程它的执行不是由程序调用,是由事件来触发。
触发器是一种特殊的存储过程,它在插入、刪除或修改特定表中的数据时触发执行。
优点:
1、自动
2、安全性
3、审计
4、业务逻辑封装性好,修改方便
5、实现复杂的数据完整性规则
6、实现复杂的非标准的数据库相关完整性规则
缺点:
1、可移植性差
2、定时触发,不可以调用
3、当数据库之间数据导出导入的时候,可能会引起不必要的触发逻辑
语法:
create trigger 触发器名称
before / after
insert / update / delete
on 表名
for each row
begin
sql语句集
end
查看所有触发器
语法:
show triggers
刪除触发器
语法:
drop trigger 触发器名称