精华内容
下载资源
问答
  • 匿名用户1级2016-09-21 回答mysql存储过程的基本用法有哪些在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在了 ...

    匿名用户

    1级

    2016-09-21 回答

    mysql存储过程的基本用法有哪些

    在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。

    特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高。

    一、MySQL 创建存储过程

    "pr_add" 是个简单的 MySQL 存储过程,这个MySQL 存储过程有两个 int 类型的输入参数 "a"、"b",返回这两个参数的和。

    复制代码 代码如下:

    drop procedure if exists pr_add;

    计算两个数之和

    复制代码 代码如下:

    create procedure pr_add

    (

    a int,

    b int

    )

    begin

    declare c int;

    if a is null then

    set a = 0;

    end if;

    if b is null then

    set b = 0;

    end if;

    set c = a + b;

    select c as sum;

    /*

    return c;

    不能在 MySQL 存储过程中使用。return 只能出现在函数中。

    */

    end;

    二、调用 MySQL 存储过程

    复制代码 代码如下:

    call pr_add(10, 20);

    执行 MySQL 存储过程,存储过程参数为 MySQL 用户变量。

    复制代码 代码如下:

    set @a = 10;

    set @b = 20;

    call pr_add(@a, @b);

    三、MySQL 存储过程特点

    创建 MySQL 存储过程的简单语法为:

    复制代码 代码如下:

    create procedure 存储过程名字()

    (

    [in|out|inout] 参数 datatype

    )

    begin

    MySQL 语句;

    end;

    MySQL 存储过程参数如果不显式指定"in"、"out"、"inout",则默认为"in"。习惯上,对于是"in" 的参数,我们都不会显式指定。

    1. MySQL 存储过程名字后面的"()"是必须的,即使没有一个参数,也需要"()"

    2. MySQL 存储过程参数,不能在参数名称前加"@",如:"@a int"。下面的创建存储过程语法在 MySQL 中是错误的(在 SQL Server 中是正确的)。 MySQL 存储过程中的变量,不需要在变量名字前加"@",虽然 MySQL 客户端用户变量要加个"@"。

    复制代码 代码如下:

    create procedure pr_add

    (

    @a int, -- 错误

    b int -- 正确

    )

    3. MySQL 存储过程的参数不能指定默认值。

    4. MySQL 存储过程不需要在 procedure body 前面加 "as"。而 SQL Server 存储过程必须加 "as" 关键字。

    复制代码 代码如下:

    create procedure pr_add

    (

    a int,

    b int

    )

    as -- 错误,MySQL 不需要 "as"

    begin

    mysql statement ...;

    end;

    5. 如果 MySQL 存储过程中包含多条 MySQL 语句,则需要 begin end 关键字。

    复制代码 代码如下:

    create procedure pr_add

    (

    a int,

    b int

    )

    begin

    mysql statement 1 ...;

    mysql statement 2 ...;

    end;

    6. MySQL 存储过程中的每条语句的末尾,都要加上分号 ";"

    复制代码 代码如下:

    ...

    declare c int;

    if a is null then

    set a = 0;

    end if;

    ...

    end;

    7. MySQL 存储过程中的注释。

    复制代码 代码如下:

    /*

    这是个

    多行 MySQL 注释。

    */

    declare c int; -- 这是单行 MySQL 注释 (注意 -- 后至少要有一个空格)

    if a is null then # 这也是个单行 MySQL 注释

    set a = 0;

    end if;

    展开全文
  • CREATE PROCEDUREp2 ()LANGUAGE SQLNOTDETERMINISTICSQL SECURITY DEFINERCOMMENT'A Procedure'SELECT CURRENT_DATE, RAND() FROM t //以上括号之后,主体之前的内容是反映存储过程特性的子句,下面分别介绍各自的作用...

    CREATE PROCEDUREp2 ()

    LANGUAGE SQLNOTDETERMINISTIC

    SQL SECURITY DEFINER

    COMMENT'A Procedure'

    SELECT CURRENT_DATE, RAND() FROM t //

    以上括号之后,主体之前的内容是反映存储过程特性的子句,下面分别介绍各自的作用:

    1. LANGUAGE SQL:

    这个子句是没有功能作用的,仅仅是说明下面过程体中所使用的是SQL语言编写.这也是系统默认的.默认不代表完全可省略,因为某些DBMS需要它,如果要考虑IBM的DB2的兼容性可以写上,此外,今后可能会出现SQL外的其他语言支持的存储过程.

    2. NOT DETERMINISTIC:

    传递给系统的信息,即不确定的.如果一个存储过程每次调用只要参数一样,输出也一样,即为确定的.本例中的主体语句为SELECT语句,则返回值肯定是未知的,因此,此处为NOT DETERMINISTIC.MySQL内置的优化程序不会注意这些,至少现在不注意.

    3. SQL SECURITY DEFINER:

    指定权限控制,指定在调用时如何认定调用方的权限:DEFINER表示不管调用方是谁,都拥有定义者的权限,INVOKER表示仅按调用方本身的权限调用.

    4. COMMENT 'a procedure...':

    存储过程的注释说明文本.默认值为空('').

    以上列出的子句都是默认设置,所以如果所有子句省略则相当于:(RAND()返回随机数)

    CREATE PROCEDUREp2 ()SELECT CURRENT_DATE, RAND() FROM t //#相当于:CREATE PROCEDUREp2 ()

    LANGUAGE SQLNOTDETERMINISTIC

    SQL SECURITY DEFINER

    COMMENT''

    SELECT CURRENT_DATE, RAND() FROM t //

    5. 补充说明:

    不会改变的sql_mode,先看以下代码段:

    mysql> set sql_mode='ansi' //mysql> create procedure p3()select'a'||'b'//mysql> set sql_mode=''//mysql> call p3()//

    MySQL在过程创建时会自动保持当时的运行环境,如上例,如果需要用||来连接字符串,但这只能在sql_mode为ansi时才有效,可以在创建过程之前更改sql_mode,过程创建完成后就算更改的sql_mode,也不会影响以后调用该过程.

    展开全文
  • mysql 存储过程

    2021-02-02 07:53:14
    什么是存储过程简单的说,就是一组SQL语句集,功能强大,可以实现...有哪些特性输入输出参数,可以声明变量,if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;函数的普遍特性:模块...

    什么是存储过程

    简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;

    ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;

    有哪些特性

    有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;

    函数的普遍特性:模块化,封装,代码复用;

    速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤;

    创建存储过程

    语法

    CREATE PROCEDURE sp_name ([proc_parameter ]) [characteristics..] routine_body

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

    [IN|OUT|INOUT] param_name type

    其中in表示输入参数,out表示输出参数,inout表示既可以输入也可以输出;param_name表示参数名称;type表示参数的类型

    该类型可以是MYSQL数据库中的任意类型

    有以下取值:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    characteristic:

    LANGUAGE SQL

    | [NOT]DETERMINISTIC

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

    | SQL SECURITY { DEFINER |INVOKER }

    | COMMENT 'string'routine_body:

    Valid SQL procedure statement or statements

    48304ba5e6f9fe08f3fa1abda7d326ab.png

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

    [NOT] DETERMINISTIC :指明存储过程执行的结果是否正确。DETERMINISTIC 表示结果是确定的。每次执行存储过程时,相同的输入会得到

    相同的输出。

    [NOT] 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代码的开始和结束。

    下面的语句创建一个查询t1表全部数据的存储过程

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    DROP PROCEDURE IF EXISTS Proc;

    DELIMITER //

    CREATE PROCEDURE Proc()

    BEGIN

    SELECT * FROMt3;

    END//DELIMITER ;

    CALL Proc();

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    5544b91b5eda394a3f67b4856c38e126.png

    t3表是我们上一节创建的表

    这里的逻辑是

    1、先判断是否有Proc() 这个存储过程,有就drop掉

    2、创建Proc() 存储过程

    3、执行Proc() 存储过程

    注意:“DELIMITER //”语句的作用是将MYSQL的结束符设置为//,因为MYSQL默认的语句结束符为分号;,为了避免与存储过程

    中SQL语句结束符相冲突,需要使用DELIMITER 改变存储过程的结束符,并以“END//”结束存储过程。

    存储过程定义完毕之后再使用DELIMITER ;恢复默认结束符。DELIMITER 也可以指定其他符号为结束符!!!!!!!!!!!

    创建一个简单的存储过程

    存储过程proc_adder功能很简单,两个整型输入参数a和b,一个整型输出参数sum,功能就是计算输入参数a和b的结果,赋值给输出参数sum;

    几点说明:

    DELIMITER ;;:之前说过了,把默认的输入的结束符;替换成;;。

    DEFINER:创建者;

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    --------------------------------Procedure structure for `proc_adder`------------------------------

    DROP PROCEDURE IF EXISTS`proc_adder`;

    DELIMITER ;;

    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)

    BEGIN#Routine body goes here...

    DECLARE c int;

    if a is null then set a = 0;

    end if;

    if b is null then set b = 0;

    end if;

    set sum = a +b;

    END;;

    DELIMITER ;

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    执行以上存储结果,验证是否正确,如下图,结果OK:

    set @b=5;

    call proc_adder(2,@b,@s);

    select @s as sum;

    92203a7c1b99cf0f7457a88e99c2c41a.png

    存储过程中的控制语句

    IF语句:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    --------------------------------Procedure structure for `proc_if`------------------------------

    DROP PROCEDURE IF EXISTS`proc_if`;

    DELIMITER ;;

    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_if`(IN type int)

    BEGIN#Routine body goes here...

    DECLARE c varchar(500);

    IF type = 0 THEN

    set c = 'param is 0';

    ELSEIF type = 1 THEN

    set c = 'param is 1';

    ELSE

    set c = 'param is others, not 0 or 1';

    END IF;

    selectc;

    END;;

    DELIMITER ;

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    ca6f1e25982fff534a1e44bdc584ae21.png

    CASE语句:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    --------------------------------Procedure structure for `proc_case`------------------------------

    DROP PROCEDURE IF EXISTS`proc_case`;

    DELIMITER ;;

    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_case`(IN type int)

    BEGIN#Routine body goes here...

    DECLARE c varchar(500);

    CASEtype

    WHEN 0 THEN

    set c = 'param is 0';

    WHEN 1 THEN

    set c = 'param is 1';

    ELSE

    set c = 'param is others, not 0 or 1';

    END CASE;

    selectc;

    END;;

    DELIMITER ;

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    7b3c4ee05e2001193dfea0b2569ef1f9.png

    循环while语句:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    --------------------------------Procedure structure for `proc_while`------------------------------

    DROP PROCEDURE IF EXISTS`proc_while`;

    DELIMITER ;;

    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_while`(IN n int)

    BEGIN#Routine body goes here...

    DECLARE i int;

    DECLARE s int;

    SET i = 0;

    SET s = 0;

    WHILE i <=n DO

    set s = s +i;

    set i = i + 1;

    END WHILE;

    SELECTs;

    END;;

    DELIMITER ;

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    cb8f6d73ce8af7868f514f5a10165ada.png

    其它:略~

    DROP PROCEDURE IF EXISTS`useCursor`;

    DELIMITER ;;CREATE PROCEDURE`useCursor`()BEGIN

    /*局部变量的定义 declare*/

    DECLARE userid VARCHAR(50);DECLARE rolename VARCHAR(50);DECLARE STOP INT DEFAULT 0;DECLARE cur CURSOR FOR (SELECT a.userid AS userid,a.rolename AS rolename FROMrole a);DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET STOP = NULL;/*开游标*/

    OPENcur;/*游标向下走一步,将查询出来的两个值付给定义的两个变量*/

    FETCH cur INTOuserid,rolename;/*循环体 这很明显 把游标查询出的 name 都加起并用 ; 号隔开*/

    WHILE ( STOP IS NOT NULL) DOUPDATE USER SET user.`bumen`=rolename WHERE id =userid ;/*游标向下走一步*/

    FETCH cur INTOuserid,rolename;END WHILE;CLOSEcur;END;;

    DELIMITER ;

    DROP PROCEDURE IF EXISTS`keyCursor`;

    DELIMITER ;;CREATE PROCEDURE`keyCursor`()BEGIN

    /*局部变量的定义 declare*/

    DECLARE createid VARCHAR(50);DECLARE deno VARCHAR(50);DECLARE STOP INT DEFAULT 0;DECLARE cur CURSOR FOR (SELECT a.`createid` AScreateid,

    SUBSTRING_INDEX(SUBSTRING_INDEX(b.`ELEMENT_ALLPARENT_ID`,',',3),',',-1) ASdenoFROM `jso_annual_key_work` a LEFT JOIN`structure` bON a.`createid` =b.`ELEMENT_ID`

    );DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET STOP = NULL;/*开游标*/

    OPENcur;/*游标向下走一步,将查询出来的两个值付给定义的两个变量*/

    FETCH cur INTOcreateid,deno;/*循环体 这很明显 把游标查询出的 name 都加起并用 ; 号隔开*/

    WHILE ( STOP IS NOT NULL) DOUPDATE jso_annual_key_work SET `deptno` = deno WHERE `createid` =createid ;/*游标向下走一步*/

    FETCH cur INTOcreateid,deno;END WHILE;CLOSEcur;END;;

    DELIMITER ;

    存储过程弊端

    不同数据库,语法差别很大,移植困难,换了数据库,需要重新编写;

    不好管理,把过多业务逻辑写在存储过程不好维护,不利于分层管理,容易混乱,一般存储过程适用于个别对性能要求较高的业务,其它的必要性不是很大;

    修改存储过程和函数,只能修改他们的权限,目前MYSQL还不提供对已存在的存储过程和函数代码的修改

    如果要修改,只能通过先DROP掉,然后重新建立新的存储过程和函数来实现

    展开全文
  • 存储设备有哪些

    千次阅读 2021-06-30 02:59:39
    描述数据存储设备有哪些1、移动硬盘移动硬盘是以硬盘为存储介质,与计算机之间交换大容量数据、强调便携性的存储产品。多采用USB、IEEE1394等传输速度较快的接口,可以以较高的速度与系统进行数据传输。2、U盘U盘,...

    描述

    数据存储设备有哪些

    1、移动硬盘

    移动硬盘是以硬盘为存储介质,与计算机之间交换大容量数据、强调便携性的存储产品。多采用USB、IEEE1394等传输速度较快的接口,可以以较高的速度与系统进行数据传输。

    2、U盘

    U盘,全称USB闪存盘,它是一种使用USB接口的无需物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接,实现即插即用。具有小巧便携、存储容量大、价格便宜等特点。

    3、存储卡

    存储卡,是用于手机、数码相机、便携式电脑、MP3和其他数码产品上的独立存储介质,一般是卡片的形态,主要有四种:TF(手机)卡、SD(相机)卡、CF(单反)卡、XQD卡/记忆棒。

    6aedb089e972e5b187d9f914cf3d98d0.png

    4、光盘

    光盘是以光信息做为存储物的载体,用来存储数据的一种物品。主要分为两种:一种是不可擦写光盘,如CD-ROM、DVD-ROM等;另一种是可擦写光盘,如CD-RW、DVD-RAM等。

    块存储设备有哪些

    1、机械硬盘

    机械硬盘(英文缩写:HDD),即是传统的普通硬盘,主要由“盘片、磁头、盘片转轴及控制电机、磁头控制器、数据转换器、接口、缓存”等部分组成。

    磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。信息通过离磁性表面很近的磁头,由电磁流来改变极性的方式,被电磁流写到磁盘上,信息可以通过相反的方式读取。

    当需要从硬盘上读取一个文件时,首先会要求磁头定位到这个文件的“起始扇区”。这个定位过程。包括两个步骤:一、是“磁头”定位到对应的“磁道”;二、是等待“主轴马达”带动“盘片”转动到正确的位置。这个过程所花费的时间,被称为“寻址时间”。

    也就是说,寻址时间,实际上包含了两部分:“磁头”定位到“磁道”的时间为“寻道时间”;等待“盘片”转动到正确位置的时间,称为“旋转等待时间”。

    2、固态硬盘

    固态硬盘(英文缩写:SSD),是用“固态电子存储芯片阵列”而组成的硬盘。

    固态硬盘由“控制单元”和“存储单元”(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • mysql存储过程 delimiter

    2021-01-20 20:31:46
    mysql数据库存储过程存储过程简介存储过程可以简单理解为一条或者多条sql语句的集合,存储过程用来实现将一组关于表的操作的sql语句当作一个整体来执行,存储过程在实际应用中最主要的特点的事提高执行效率以及sql...
  • mysql存储过程

    2021-04-28 08:53:44
    SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程参数)来调用执行它。存储过程是可...
  • MySQL存储过程

    2021-01-18 23:56:08
    MySQL存储过程的删除 DROP PROCEDURE [过程1[,过程2…]] 从MySQL的表格中删除一个或多个存储过程。 MySQL存储过程的控制语句 变量作用域 内部变量在其作用域范围内享有更高的优先权,当执行到end时,内部变量消失,...
  • mysql call 存储过程

    2021-01-18 22:27:53
    PHP调用MYSQL存储过程实例PHP调用MYSQL存储过程实例标签:mysql存储phpsqlquerycmd2010-09-26 11:1011552人阅读评论(3)收藏举报实例一:无参的...文章thinkyoung2016-01-20544浏览量存储过程实例存储过程:是为了...
  • mysql存储过程 repeat

    2021-01-19 02:47:57
    MySQL利用存储过程清除所有表中的所有记录MySQL利用存储过程清除所有表中的所有记录在使用MySQL过程中,难免会出现一些测试数据,然而这些测试数据在真正部署运行的时候,通常要被清楚掉,并且自增长的字段要回复...
  • MySql中创建存储过程

    2021-02-02 05:47:12
    存储过程的优点一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的SQL ...
  • mysql 存储过程 执行

    2021-01-21 08:46:19
    mysql存储过程mysql存储过程存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程参数)来执行它...
  • 一、MYSQL储存过程简介:储存过程是一个可编程的函数,它在中创建并保存。它可以SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。中...
  • Mysql5存储过程教程

    2021-01-27 10:37:18
    [From] ...简单的来说是介绍了“存储过程、触发器、视图、信息架构视图”,我打算每天一部分,来连载这个教程.如果你想看一次看完PDF版本的教程,请到down.phpv.net下载.在此感谢译者陈朋奕...
  • MySQL存储过程(一)

    2021-01-18 19:32:37
    1.1CREATE PROCEDURE(创建)CREATEPROCEDURE存储过程名 (参数列表)BEGINSQL语句代码块END注意:由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它...
  • mysql的存储过程

    2021-01-19 15:13:00
    MySQL存储过程的删除 DROP PROCEDURE [过程1[,过程2…]] 从MySQL的表格中删除一个或多个存储过程。 MySQL存储过程的控制语句 变量作用域 内部变量在其作用域范围内享有更高的优先权,当执行到end时,内部变量消失,...
  • Mysql存储过程调用

    2021-01-19 00:34:07
    1.1create procedure (创建)create procedure存储过程名 (参数列表)beginsql语句代码块end注意:由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个in参数。要指定为其它...
  • MYSQL中存储过程的创建,调用及语法

    千次阅读 2021-01-18 21:23:50
    存储过程的优点一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如PHP),要组织很多SQL语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和...
  • MySQL为其表提供了各种存储引擎,它们分别如下所示:MyISAMInnoDBMERGEMEMORY(HEAP)ARCHIVECSVFEDERATED每个存储引擎都自己的优点和缺点。了解每个存储引擎功能至关重要,并为表选择最合适的功能,以最大限度地提....
  • mysql存储过程select into

    2021-01-18 20:52:21
    mysql数据库存储过程存储过程简介存储过程可以简单理解为一条或者多条sql语句的集合,存储过程用来实现将一组关于表的操作的sql语句当作一个整体来执行,存储过程在实际应用中最主要的特点的事提高执行效率以及sql...
  • MySQL查看存储过程

    2021-03-04 04:13:55
    MySQL存储了,存储过程的状态信息可以使用SHOW STATUS语句,或SHOW CREATE语句来查看,也可以直接从系统的information_schema数据库中查询SHOW STATUS语句SHOW STATUS语句,查看存储过程的状态语法格式SHOW {...
  • Mysql存储过程

    2021-03-03 21:34:36
    是在数据库系统中,一组为了完成特定功能SQL语句集,经编译后存储在数据库中,用户通过制定存储过程的名字并给出参数(如果该存储过程参数)来执行它。存储过程是经过编译的SQL语句集。编译后节省很多性能。二、为...
  • 我们大家都知道MySQL存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,...现在了 MySQL 存储过程,业务...
  • Mysql高级之存储过程原文:Mysql高级之存储过程概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现.在封装的语句体里面,可以用if/else,case,while等控制结构.可以进行sql...
  • mysql 存储过程 调试

    2021-01-27 21:30:00
    mysql存储过程之游标遍历数据表原文:mysql存储过程之游标遍历数据表今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才...
  • 第一》怎么是Mysql存储过程存储过程是一组为了完成特定功能的 SQL 语句集合。MySQL 5.0 终于开始已经支持存储过程,它...2.存储过程通常如下优点:1) 封装性存储过程被创建后,可以在程序中被多次调用,而不必重...
  • Oracle存储过程

    2021-05-20 09:45:46
    一、存储过程的概念存储过程(stored procedure)是Oracle数据库中为了完成某功能的PL/SQL代码集,就像没有返回值的自定义函数。二、存储过程的创建、调用和权限1、创建存储过程create or replace procedure 存储过程...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 695,887
精华内容 278,354
关键字:

存储过程的特点有哪些