zoukankan      html  css  js  c++  java
  • my sql存储过程 基本使用

    --------------创建不带参数的存储过程-----------------
    DELIMITER;;
    drop PROCEDURE if EXISTS selectStudent;
    
    create PROCEDURE 'selectStudent'()
    BEGIN
    select*from student;
    end;;
    DELIMITER;
    
    
    --------------带参数的存储过程--------------------
    drop PROCEDURE if EXISTS selectCity;
    
    create PROCEDURE 'selectCity'(
    in _cityID varchar(10)--输入参数--
    )
    BEGIN
    select *from student where cityID=_cityID;
    end;
    
    
    --------------带有输出参数的存储过程--------------------
    drop PROCEDURE if EXISTS selectCity_Name;
    CREATE PROCEDURE 'selectCity_Name'(
      in _CityID varchar(10)--输入参数,
      out _City varchar(10) --输出参数,
      inout _CityIDName varchar(10) --输入输出参数
    )
    BEGIN
    select*from student where cityID=_CityID and CityName=_CityName INTO _City;
    end;
    
    set @_CityID='1';
    set @_CityIDName='郑州';
    call selectCity_Name(@_CityID,@_City,@_CityIDName);
    select @_CityIDName as ID,@_City;
    
    
    
    -----------带有通配符的存储过程------------
    drop PROCEDURE if EXISTS selectCityLike;
    create PROCEDURE 'selectCityLike'(
    in _CityName varchar(10)
    )
    BEGIN 
    
    set @exec_sql =CONCAT("select *from student where name like '%",_CityName,"%'");
    PREPARE stmt from @exec_sql ;  --定义
    EXECUTE stmt;--执行预处理语句
    DEALLOCATE PREPARE stmt;--删除定义
    
    end
    
    
    
    -------循环语句:操作前检查结果----------
    create PROCEDURE proc4()
    BEGIN
    
    declare var int;
    set var=0;
    
    WHILE var<6 DO
    insert into t VALUES(var);
    set var=var+1;
    end while;
    
    end
    
    
    ----------循环语句:操作后检查结果------------
    create PROCEDURE proc5()
    BEGIN
    
    DECLARE v int;
    set v=0;
    
    REPEAT
    insert into t VALUES(v);
    set v=v+1;
    UNTIL v>=5
    end repeat;
    
    end
    
    
    
    ----------循环语句:loop..endloop------------
    create PROCEDURE proc6()
    BEGIN
    
    declare v int;
    set v=0;
    
    loop_lable:LOOP
    insert into values(v);
    
    set v=v+1;
    if v>=5 THEN
    LEAVE loop_lable;
    end if;
    
    end loop;
    
    end
    
    
    ----------循环语句:loop..endloop-------------
    create PROCEDURE proc7()
    BEGIN
    DECLARE v int;
    set v=0;
    
    loop_lable:LOOP
    
    if v=3 THEN
    set v=v+1;
      ITERATE loop_lable;--继续循环
    end if;
    
    insert into t values(v);
    set v=v+1;
      if v>=5 THEN
        leave loop_lable;--跳出循环
      end if;
    
    end loop;
    
    end;
  • 相关阅读:
    vSphere vCenter的个人理解及问题
    服务器账号过期处理
    虚拟化初探引入
    win10虚拟机跨网段迁移
    win7远程执行win10的抓取代码
    Jenkins+Sonar质量门禁【实践篇pipeline版】
    ELK7.10 license过期处理
    php 0108
    php 0110
    php 0111
  • 原文地址:https://www.cnblogs.com/ly77461/p/8462698.html
Copyright © 2011-2022 走看看