MySql简单入门

    技术2022-07-11  85

    2、存储过程:为以后的使用而保存的一条或多条MySql语句的集合

    存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

    2.1 使用存储过程的原因

    通过把处理封装在容易使用的单元中,简化复杂的操作(正如前面例子所述)。由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果所有开发人员和应用程序都使用同一(试验和测试)存储过程,则所使用的代码都是相同的。这一点的延伸就是防止错误。需要执行的步骤越多,出错的可能性就越大。防止错误保证了数据的一致性。简化对变动的管理。如果表名、列名或业务逻辑(或别的内容)有变化,只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。提高性能。因为使用存储过程比使用单独的SQL语句要快.存在一些只能用在单个请求中的MySQL元素和特性,存储过程可以使用它们来编写功能更强更灵活的代码(在下一章的例子中可以看到。)

    2.2 存储过程的缺点【将sql代码转为存储过程前,必须要了解的缺点】

    一般来说,存储过程的编写比基本SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。你可能没有创建存储过程的安全访问权限。许多数据库管理员限制存储过程的创建权限,允许用户使用存储过程,但不允许他们创建存储过程。

    3.3 创建存储过程

    DELIMITER $$ 或 DELIMITER //       #声明语句结束符【告诉命令行实用程序使用$$或// 作为新的语句结束分隔符】

    CREATE PROCEDURE  存储过程名(IN p_in int)       #声明存储过程

    BEGIN                            # 存储过程开始符号

            SELECT  语句             #存储过程体内的;仍然保持不动,并且正确地传递给数据库引擎

    END$$ 或 //                          # 存储过程结束符号

    DELIMITER ;          # 为恢复为原来的语句分隔符

    注意:添加 delimiter;  # 将语句的结束符号恢复为分号

    2.4  检查存储过程   SHOW CREATE PROCEDURE  存储过程名

    2.5 执行存储过程(又称调用)

    mysql执行存储过程的语句为CALL。CALL 存储过程名称(传递参数)

    2.6 删除存储过程

    2.7 查询所有存储过程  show procedure status where db="数据库名";

    Processed: 0.008, SQL: 9