zoukankan      html  css  js  c++  java
  • mysql编写存储过程(1)

    存储过程:其实就是存储在数据库中,有一些逻辑语句与SQL语句组成的函数。由于是已经编译好的语句,所以执行速度快,而且也安全。

    打开mysql的控制台,开始编写存储过程。

    实例1:

    编写存储过程:

    执行存储过程:

    查看执行结果:

     

    语句解释:

    1、delimiter //  ,声明分隔符:DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码(这里如果不懂的话,你可以通过试错的方法来理解)。

    2、编写存储过程的格式:CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])

    例子:

      1)create procedure proc1(out s int)  // 只有输出

      2)create procedure proc2(in p_in bigint)  // 只有输入

      3)create procedure proc15() // 没有输入与输出

      4)create procedure demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出

    3、过程体的开始与结束使用BEGIN与END进行标识。

    4、select count (*) into s from student; // 过程体,一系列的逻辑语句,sql语句

    5、delimiter ; 用完了之后要把分隔符还原。

    实例2:

    实例3、

    结论:输出参数在过程中改变了,会得到保存。但是如果@p_out有预设的值,执行存储过程也不会认预设值,可以从第一个输出为null看出。

    实例4、

     注意:p_in虽然在存储过程中被修改,但并不影响@p_id的值,执行完语句之后,再执行@select @p_in。

    实例5、

    结论:如果输入输出参数,那么在存储过程中,即会认输入的,如果在存储过程中改变了,那么输出也会认。

    实例6:

    这个是一个多个输入,一个输出的例子。

    实例7:

    说明:begin...end 之间是内部变量的作用域,一旦超过这个作用域,其内部声明的变量就结束了,就会变成外部作用域的变量。

  • 相关阅读:
    java纯数字加密解密实例
    C++手稿:std::string
    java裁剪图片
    java打开windows系统的浏览器
    Android手机无线adb
    office-word
    设计模式-享元模式(13)
    设计模式-外观模式(12)
    charles工具过滤腾讯视频播放器广告
    js将json格式的list转换为按某个字段分组的map数组
  • 原文地址:https://www.cnblogs.com/boywwj/p/8046423.html
Copyright © 2011-2022 走看看