zoukankan      html  css  js  c++  java
  • mysql 存储过程简单入门

    1、存储过程介绍

    ​ 迄今为止,我们学过的大多数SQL语句都是针对一个或多个表的单条语句。但是并不是所有的操作都是可以用一条语句来完成的,经常有一些操作是需要多条语句配合才能完成。我们引入的存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

    2、存储过程创建、调用、修改、删除

    ① 创建

    语法:
    DELIMITER $$ //更改mysql默认的分符号
    CREATE PROCEDURE 名称()
    BEGIN
    	select * from user;
    END
    $$	//结束存储过程分割符
    DELIMITER ;	//还原存储过程分隔符
    
    示例
    DELIMITER $$	
    CREATE PROCEDURE proc_name_demo()
    BEGIN
    	select * from user;
    END
    $$
    DELIMITER;
    

    ②调用

    语法:call 名称()
    示例:call proc_name_demo()
    

    ③修改

    ALTER PROCEDURE  名称 [characterustic...]
    - {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}:指定子程序使用存储过程的限制。
        CONTAINS SQL:说明子程序包含SQL语句,但是不包含写数据语句
        NO SQL:说明子程序不包含SQL语句
        READS SQL DATA:说明子程序包含读数据读数据语句
        MODIFIES SQL DATA:说明子程序包含写数据语句
    
    - SQL SECURITY {DEFINER | INVOKER}:指明谁有权限执行,默认值:DEFINER
        DEFINER:只有定义者才能执行
        INVOKER:拥有权限的调用者才可以执行
    
    - COMMNET:注释信息
    
    ps:
    目前,MySQL还不提供对已存在的存储过程的代码修改
    如果,一定要修改存储过程的内容,必须,先将存储过程删除之后,再重新编写代码,或者创建一个新的存储过程
    

    ④删除

    语法:DROP PROCEDURE 名称;
    示例:DROP PROCEDURE proc_namedemo;
    示例2:DROP PROCEDURE if exists proc_namedemo;	//删除存在的存储过程
    
  • 相关阅读:
    异常[PersistenceUnit: default] Unable to build Hibernate SessionFactory
    关于本地模块安装入maven仓库出现的异常
    dwd面试记录与最近面试的一些感想。
    java编程思想第九章接口
    java编程思想第八章多态
    微服务调用本地测试与外部测试的差异
    Java编程思想第七章复用类
    Gson的学习与使用
    为什么会有这个分类?
    Spark 2.1.1 源码编译
  • 原文地址:https://www.cnblogs.com/linhuaming/p/12497800.html
Copyright © 2011-2022 走看看