sql_存储过程、函数、分支、循环

简介: sql_存储过程、函数、分支、循环

1.存储过程

一、创建 ★

create procedure 存储过程名(参数模式 参数名 参数类型)

begin

存储过程体

end

注意:

1.参数模式:in、out、inout,其中in可以省略

2.存储过程体的每一条sql语句都需要用分号结尾

二、调用

call 存储过程名(实参列表)

举例:

调用in模式的参数:call sp1(‘值’);

调用out模式的参数:set @name; call sp1(@name);select @name;

调用inout模式的参数:set @name=值; call sp1(@name); select @name;

三、查看

show create procedure 存储过程名;

四、删除

drop procedure 存储过程名;

2.函数

一、创建

create function 函数名(参数名 参数类型) returns 返回类型

begin

函数体

end

注意:函数体中肯定需要有return语句

二、调用

select 函数名(实参列表);

三、查看

show create function 函数名;

四、删除

drop function 函数名;

3 .分支结构

特点:

1、if函数

功能:实现简单双分支

语法:

if(条件,值1,值2)

位置:

可以作为表达式放在任何位置

2、case结构

功能:实现多分支

语法1:

case 表达式或字段

when 值1 then 语句1;

when 值2 then 语句2;

else 语句n;

end [case];

语法2:

case

when 条件1 then 语句1;

when 条件2 then 语句2;

else 语句n;

end [case];

位置:

可以放在任何位置,

如果放在begin end 外面,作为表达式结合着其他语句使用

如果放在begin end 里面,一般作为独立的语句使用

3、if结构

功能:实现多分支

语法:

if 条件1 then 语句1;

elseif 条件2 then 语句2;

else 语句n;

end if;

位置:

只能放在begin end中

4.循环结构

位置:

只能放在begin end中

特点:都能实现循环结构

对比:

①这三种循环都可以省略名称,但如果循环中添加了循环控制语句(leave或iterate)则必须添加名称

loop 一般用于实现简单的死循环

while 先判断后执行

repeat 先执行后判断,无条件至少执行一次

1、while

语法:

【名称:】while 循环条件 do

循环体

end while 【名称】;

2、loop

语法:

【名称:】loop

循环体

end loop 【名称】;

3、repeat

语法:

【名称:】repeat

循环体

until 结束条件

end repeat 【名称】;

二、循环控制语句

leave:类似于break,用于跳出所在的循环

iterate:类似于continue,用于结束本次循环,继续下一次


目录
相关文章
|
14天前
|
SQL 索引
在 SQL Server 中使用 STRING_AGG 函数
【8月更文挑战第5天】
157 2
在 SQL Server 中使用 STRING_AGG 函数
|
11天前
|
SQL 数据库
|
14天前
|
SQL 缓存 BI
在 SQL Server 中使用 SPACE 函数
【8月更文挑战第5天】
39 6
在 SQL Server 中使用 SPACE 函数
|
10天前
|
SQL 数据采集 数据处理
如何在 SQL Server 中使用 LEN 函数
【8月更文挑战第9天】
31 1
如何在 SQL Server 中使用 LEN 函数
|
14天前
|
SQL 数据格式
在 SQL Server 中使用 STR 函数
【8月更文挑战第5天】
58 3
在 SQL Server 中使用 STR 函数
|
11天前
|
SQL 监控 索引
如何在 SQL Server 中使用 `PATINDEX` 函数
【8月更文挑战第8天】
80 9
|
11天前
|
SQL 关系型数据库 MySQL
如何在 SQL Server 中使用 `REPLACE` 函数
【8月更文挑战第8天】
99 9
|
11天前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
16 5
|
23天前
|
SQL 数据挖掘 数据处理
SQL中有哪些常用的函数?
【7月更文挑战第27天】SQL中有哪些常用的函数?
14 4
|
26天前
|
SQL 数据挖掘 数据库
SQL分组函数
【7月更文挑战第24天】SQL分组函数
16 1