精华内容
下载资源
问答
  • DROP PROCEDURE if EXISTS getData; CREATE PROCEDURE getData() BEGIN DECLARE str VARCHAR(50); SET str = 'AX_1415';...set @sqlstr=concat('select 1234 ',str,' from jc_yg_82600 WHERE JCD_id=100000002 AN

    DROP PROCEDURE if EXISTS getData;
    CREATE PROCEDURE getData()
    BEGIN
    DECLARE str VARCHAR(50);
    SET str = 'AX_1415';
    set @sqlstr=concat('select 1234 ',str,' from jc_yg_82600 WHERE JCD_id=100000002 AND DataDate = ''20170713''');
    -- 相当于select 123 AX_1415 from jc_yg_82600 WHERE JCD_id=100000002 AND DataDate = '20170713'    ' 转译字符
      PREPARE cmd from @sqlstr;
    EXECUTE cmd;  

    END

    展开全文
  • 在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程...大大减少数据库开发人员的工作量创建存储过程使用CREATE PROCEDURE语句CREATE PROCEDURE sp_name([proc_parameter])[characteri...

    在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程

    存储过程

    就是一条或多条SQL语句的集合,当对数据库进行一系列复杂操作时,存储过程可以将这些复杂操纵,封装成一个代码块,以便重复使用,大大减少数据库开发人员的工作量

    创建存储过程

    使用CREATE PROCEDURE语句

    CREATE PROCEDURE sp_name([proc_parameter])

    [characteristics……]routine_body

    参数说明

    CREATE PROCEDURE,创建存储过程的关键字

    Sp_name,为存储过程的名称

    Proc_parameter,为指定存储过程的参数列表,参数列表的形式,如下

    [IN|OUT|INOUT]param_name type

    参数列表说明

    IN,表示输入参数

    OUT,表示输出参数

    INOUT,表示既可以输入,也可以输出

    Param_name,表示参数名称

    type,表示参数的类型,可以是MySQL数据库中的任意类型

    在创建存储过程的语法格式中,characteristics用于指定存储过程的特性,取值如下

    LANGUAGE SQL

    说明,routine_doby部分,是由SQL语句组成的,当前系统支持的语言为SQL,SQL是LANGUAGE的唯一值

    [NOT] DETERMINISTIC

    指明存储过程执行的结果是否正确,DETERMINISTIC表示结果是正确的,每次执行存储过程时,相同的输入可能得到不同的输出,如果没有指定任意一个值,默认为NOT DETERMINISTIC

    {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}

    指明子程序使用SQL语句的限制

    CONTAINS SQL,表示子程序包含SQL语句,但是,不包含读写数据的语句

    NO SQL,表示子程序不包含SQL语句

    READS SQL DATA,说明子程序,包含读写数据的语句

    MODIFIES SQL DATA,表示子程序包含写数据的语句

    默认情况下,系统会指定为CONTAINS SQL

    SQL SECURITY{DEFINER | INVOKER}

    指明,谁有权限来执行

    DEFINER,表示只有定义者才能执行

    INVOKER,表示拥有权限的调用者可以执行

    默认情况下,系统指定为DEFINER

    COMMENT’string’

    注释信息,用来表示存储过程

    Routine_body,是SQL代码的内容,可以用BEGIN……END来表示SQL代码的开始和结束

    首先,在数据库chapter06中,创建表student

    创建student表之后,插入4条记录

    4861ceb0d636ca37cb204ed3f67ec760.png

    创建一个查看student表的存储过程

    7c86259c9f02589ec07e2632a0c1ae1c.png

    参数说明

    DELIMITER //

    作用,将MySQL的结束符设置为//,因为,MySQL默认的语句结束符号为分号;,为了避免与存储过程中,SQL语句结束符相冲突,需要使用DELIMTER改变存储过程的结束符,并且,以END //结束存储过程

    存储过程,定义完毕之后,再使用DELIMITER,恢复默认结束符

    DELIMITER,可以指定其他符号作为结束符

    注意,DELIMITER与设置的结束符之间,一定要有一个空格,否则设置无效

    展开全文
  • 在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程...大大减少数据库开发人员的工作量创建存储过程使用CREATE PROCEDURE语句CREATE PROCEDURE sp_name([proc_parameter])[characteri...

    在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程

    存储过程

    就是一条或多条SQL语句的集合,当对数据库进行一系列复杂操作时,存储过程可以将这些复杂操纵,封装成一个代码块,以便重复使用,大大减少数据库开发人员的工作量

    创建存储过程

    使用CREATE PROCEDURE语句

    CREATE PROCEDURE sp_name([proc_parameter])

    [characteristics……]routine_body

    参数说明

    CREATE PROCEDURE,创建存储过程的关键字

    Sp_name,为存储过程的名称

    Proc_parameter,为指定存储过程的参数列表,参数列表的形式,如下

    [IN|OUT|INOUT]param_name type

    参数列表说明

    IN,表示输入参数

    OUT,表示输出参数

    INOUT,表示既可以输入,也可以输出

    Param_name,表示参数名称

    type,表示参数的类型,可以是MySQL数据库中的任意类型

    在创建存储过程的语法格式中,characteristics用于指定存储过程的特性,取值如下

    LANGUAGE SQL

    说明,routine_doby部分,是由SQL语句组成的,当前系统支持的语言为SQL,SQL是LANGUAGE的唯一值

    [NOT] DETERMINISTIC

    指明存储过程执行的结果是否正确,DETERMINISTIC表示结果是正确的,每次执行存储过程时,相同的输入可能得到不同的输出,如果没有指定任意一个值,默认为NOT DETERMINISTIC

    {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}

    指明子程序使用SQL语句的限制

    CONTAINS SQL,表示子程序包含SQL语句,但是,不包含读写数据的语句

    NO SQL,表示子程序不包含SQL语句

    READS SQL DATA,说明子程序,包含读写数据的语句

    MODIFIES SQL DATA,表示子程序包含写数据的语句

    默认情况下,系统会指定为CONTAINS SQL

    SQL SECURITY{DEFINER | INVOKER}

    指明,谁有权限来执行

    DEFINER,表示只有定义者才能执行

    INVOKER,表示拥有权限的调用者可以执行

    默认情况下,系统指定为DEFINER

    COMMENT’string’

    注释信息,用来表示存储过程

    Routine_body,是SQL代码的内容,可以用BEGIN……END来表示SQL代码的开始和结束

    首先,在数据库chapter06中,创建表student

    创建student表之后,插入4条记录

    0818b9ca8b590ca3270a3433284dd417.png

    创建一个查看student表的存储过程

    0818b9ca8b590ca3270a3433284dd417.png

    参数说明

    DELIMITER //

    作用,将MySQL的结束符设置为//,因为,MySQL默认的语句结束符号为分号;,为了避免与存储过程中,SQL语句结束符相冲突,需要使用DELIMTER改变存储过程的结束符,并且,以END //结束存储过程

    存储过程,定义完毕之后,再使用DELIMITER,恢复默认结束符 DELIMITER,可以指定其他符号作为结束符 注意,DELIMITER与设置的结束符之间,一定要有一个空格,否则设置无效

    展开全文
  • 一、什么是MySQL存储过程?   在大型项目中,有时候需要重复执行能够完成特定功能的SQL语句集,而MySQL为我们提供了存储过程的概念,存储过程是...三、Navicat创建一个存储过程   (1):先选择某个数据库中的函
  • 创建存储过程 ...在MySQL中创建存储过程使用的语句CREATE PROCEDURE。其语法形式如下: CREATE PROCEDURE procedure_name([proc_param[,…]]) routine_body 在上述语句中,参数procedure_name表示所

    创建存储过程

    创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。存储程序可以分为存储过程和函数。在MySQL中创建存储过程使用的语句CREATE PROCEDURE。其语法形式如下:

    CREATE PROCEDURE procedure_name([proc_param[,…]])    
    routine_body                                     
    

    在上述语句中,参数procedure_name表示所要创建的存储过程名字,参数proc_param表示存储过程的参数,参数routine_body表示存储过程的SQL语句代码,可以用BEGIN…END来标志SQL语句的开始和结束。

    提示: 在具体创建存储过程时,存储过程名不能与已经存在的存储过程名重名,实战中推荐存储过程名命名为procedure_xxx或者proc_xxx。
    proc_param中每个参数的语法形式如下:

    [IN|OUT|INOUT] param_name type
    

    在上述语句中,每个参数由三部分组成,分别为输入/输出类型、参数名和参数类型。其中,输入/输出类型有三种类型,分别为IN(表示输入类型)、OUT(表示输出类型)、INOUT(表示输入/输出类型)。param_name表示参数名;type表示参数类型,可以是MySQL软件所支持的任意一个数据类型。

    示例11-1

    mysql>  use school;   #选择数据库school                                             
    mysql> DELIMITER $$                                                                                
    mysql> create PROCEDURE  proc_delete_student (IN sid int )                                   
            BEGIN 
             declare cid  int ;   #定义变量cid                            
             Select class_id into cid from student where id = sid;    #通过查询语句设置变量                                                                       
             delete from grade where id = sid;  #删除成绩表中的记录  
             delete from student where id = sid;   #删除学生表中的记录                                                    
             update class set count=count-1 where id = cid; #更新班级表中的记录   
            END;                                                                        
            $$
            DELIMITER ;                                                                 
    mysql>  call proc_delete_student(2);    #调用存储过程    
    

    具体操作

    在这里插入图片描述
    这样就比较麻烦, 就要用到存储过程
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    这说明这段代码有问题, (逻辑问题)

    结语:

    时间: 2020-07-13

    展开全文
  • 存储过程在数据库开发的过程中使用比较频繁,它也有着普通sql语句不可替代的作用,可以有效的提程序的执行效率。存储过程可以简单的理解为在数据库中执行的某种带特定功能的程序,其中包含一条或多条sql语句,它的...
  • MySQL创建存储过程

    2018-10-07 19:19:13
    在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程 存储过程 就是一条或多条SQL语句的集合...创建存储过程 使用CREATE PROCEDURE语句 CREATE PROCEDURE sp_name([proc_parameter]) [ch...
  • postgresql使用创建存储过程

    千次阅读 2019-10-21 17:20:56
    postgresql创建存储过程 create function pr_update_goods_map_code() returns integer language plpgsql as $$ declare recd RECORD; kdId varchar(64); outint_cnt Integer; begin outint_cnt = 0; ...
  • 创建存储过程

    千次阅读 2018-06-22 15:45:54
    1.使用SQL Server管理平台创建存储过程在SQL Server管理平台中,创建存储过程的步骤如下:(1)打开SQL Server管理平台,展开结点“对象资源管理器”→“数据库服务器”→“可编程性”→“存储过程”,在窗口的右侧...
  • 创建存储过程: 1 --第一个存储过程,打印Hello World 2 create or replace procedure sayhelloworld 3 as 4 --说明部分 5 begin 6 dbms_output.put_line('Hello World'); 7 end; 8 / 使用存储过程: ...
  • -- 创建一个存储过程模板DROP PROCEDURE IF EXISTS Proc_...作为结束符-- 创建存储过程,参数分IN/OUT/INOUT三类-- IN是输入参数,可以有多个-- OUT是输出参数,可以输出给调用该存储过程的应用进行参数引用,使用方...
  • 存储过程(stored ...速度快:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2.当对数据库进行复杂操作时(...
  • 参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/stored-routines.htmlMySQL支持存储的例程(过程和函数)。 存储例程是一组可以存储在服务器中... 此表是在MySQL安装过程创建的。 如果要从早期版本升级到...
  • 使用存储过程使用存储过程需要知道如何执行(运行)它们。存储过程的执行远比其定义更经常遇到,因此,我们将从执行存储过程开始介绍。然后再介绍创建和使用存储过程。执行存储过程MySQL称存储过程的执行为调用,因此...
  • 使用DELIMITER创建存储过程的用法

    千次阅读 2016-09-16 11:28:14
    使用DELIMITER创建存储过程的用法在mysql下使用delimiter创建存储过程时,由于格式问题,数据库一直报错,错误如下: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that ...
  • 使用Navicat for MySQL创建存储过程

    万次阅读 2017-03-17 10:45:26
    方法一: 1. 利用工具栏打开【查询】--【新建查询】...2.执行sql创建存储过程,然后直接写SQL调用存储过程(CALL XXOO('财务部')) 方式二: 1.打开navicat选择要创建存储过程的数据库. 利用工具栏打开【函数】--
  • 使用plsql developer创建存储过程以及调试:https://my.oschina.net/u/3872757/blog/1848658
  • 创建使用存储过程

    千次阅读 2017-10-15 18:46:25
    创建使用存储过程 用CREATE PROCEDURE命令建立存储过程和存储函数。语法: create [or replace] PROCEDURE 过程名(参数列表) AS PLSQL子程序体;*/ –第一个存储过程:打印Hello World /* 调用存储过程1....
  • 便捷创建存储过程

    热门讨论 2018-08-25 20:57:39
    存储过程的使用是一个非常方便的存在,涉及到的SQL语句虽说只有增删改查四种,但因条件的不同而进行着不断的变化,那么如何在创建存储过程中让自己的SQL语句规范又标准呢,这就涉及到了下面为大家介绍的在创建存储...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,065
精华内容 4,826
关键字:

创建存储过程使用