SQL-基础在深入(二)

SQL-基础在深入

SQL-存储过程_参数

参数类表 = 参数类型+参数名字+参数数据类型

参数类型 :

  1. in / 输入参数 (默认)

  2. out / 输出参数

    定义的参数只能在过程体内部赋值,可以把某个值传递回调用它的参数

    在存储过程外边声明用户变量 ,在将参数放入调用函数的out参数位置

  3. inout / 输入输出类型

    即是输入参数,也是输出参数

 

sql-流程控制

if 条件1 then
    条件1真执行sql语句;
elseif 条件2 then
    条件2真执行sql语句;
else
    其他情况执行sql语句;
end if;

-- -- -- -- -- -- 

case 表达式
    when 表达式结果1 then 条件1真执行sql语句;
    when 表达式结果1 then 条件2真执行sql语句;
    when 表达式结果1 then 条件3真执行sql语句;
    else 其他情况执行sql语句;
end case;

 


 ?

SQL-循环控制

 
-- while语句

    [start_while:]
    while 判断条件 do
        sql语句体;
    end while;
    [end_while;]
    
    
-- repeat语句

    repeat 
        sql语句;
    until 条件 end repeat;
    
    
-- loop语句
    
    test_loop: loop 
    --test_loop 标签名 名字自定义 ,开始标签与结束标签相同
        sql语句;
        -- sql语句中通常包含 LEAVE test_loop / 离开 ;
    end loop test_loop;

 

 

游标-CURSOR

游动的标识符,一般与循环一起使用,游标也是一张虚拟的表。

--声明一个变量来声明 是否还有结果集 / 有 0 ; 无 1
    DECLARE done INT DEFAULT 0;
    --变量声明在游标之前
    
--声明游标变量
    DECLARE cur CURSOR FOR select语句;
    
--声明一个事件处理,来设置是否还有结果集
    DECLARE CONTINUE HANDLER FOR SQLSTATE 02000 SET done = 1;
    -- 在游标声明之后声明
    
-- 打开游标
    OPEN cur;
    
-- 抓取数据
    FETCH cur into 自定义数据;
    --FETCH 后 游标指示位置自动向下移动一位
    -- 配合REPEAT循环语句使用 / 优点 先循环一次

 

 

其他

  1. sql中给变量赋值必须要用 set

  2. SQL随机函数 RAND()

  3. SQL向下取整 FLOOR()

SQL-基础在深入(二)

上一篇:实战:oracle巡检脚本v1


下一篇:MySQL_group by报错 [ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause]