精华内容
下载资源
问答
  • 删除存储函数
    2016-06-19 16:49:32

    删除存储过程和函数


    DROP {PROCEDURE | FUNCTION } sp_name ;


    eg:


    DROP PROCEDURE pro_user3;

    DROP PROCEDURE pro_user10;

    更多相关内容
  • 数据库管理与应用 8.3.4 使用DROP FUNCTION语句删除存储函数.pdf 学习资料 复习资料 教学资源
  • 上一节我们说了这个存储过程,这一节我们说一下这个存储函数,看清楚了啊,是函数!!! 存储函数 我们先来认识一下存储函数 很好啊,百科也不行了,我来说吧 这个存储函数和这个存储过程很类似,有那些类似的...

    上一节我们说了这个存储过程,这一节我们说一下这个存储函数,看清楚了啊,是函数!!!

    存储函数

    我们先来认识一下存储函数

    很好啊,百科也不行了,我来说吧

    这个存储函数和这个存储过程很类似,有那些类似的地方呢?不要急,下文我会去介绍这俩的区别的。

    存储函数,说白了就是一个函数,好比我们Java中的一个类中的方法,有传入参数,有输出参数等等。

    大概知道一下存储函数,我们接下来说说如何去使用。

    存储函数的创建

    存储过程的创建也和这个存储过程类似,但是用的关键字不一样,存储过程用的是 PROCEDURE ,存储函数是用的 FUNCTION,然后我给出创建存储函数的命令

    CREATE FUNCTION 存储函数的名字(参数1, 参数2...)
        RETURNS 数据类型
        特性
        执行的SQL...
        执行的SQL...
        RETURN xxx
    

    嗯,就这么多,我们可以看到啊,这里多了一个这个 RETURNS 这么个关键词,这个是指返回值类型

    再来说这个特性,这个特性和这个存储过程的特性一样哦,不知道的可以看我存储过程:胖子胖子大胖子_存储过程

    除去这个RETURNS ,传入的参数也结构不一样了,没有存储过程的那个 IN、OUT、INOUT了,因为我们已经有RETURNS了,所以不需要这些东西了。

    知道了创建的方法,我们来使用一下

    是不是,一个很简单的存储函数就写好了,然后我们再来说说如何调用

    存储函数的调用

    这个存储函数的调用就和我们的存储过程的调用就不一样了,存储过程调用,我们使用的是关键字 CALL,而我们存储函数的调用是使用的 SELECT,然后后面跟上这个存储函数的名字,具体方法如下

    SELECT 存储函数的名字(参数1, 参数2...);

    很好啊,知道了以后,我们来调用一下这个存储函数

    是不是很OK,同样也可以使用别名哦~

    存储函数的删除

    删除的话是真的和这个存储过程差不多,命令如下

    DROP FUNCTION 存储函数的名字

    就是把 PROCEDURE 换成了 FUNCTION 而已,我们使用一下

     

    存储过程和存储函数的区别

    最后我们来说说区别,算了,这个扔到下一讲。

     

    大家好好练习一下,有问题可以直接加我QQ : 2100363119

     

    展开全文
  • MySQL存储函数

    千次阅读 2021-06-09 11:25:16
    MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。 1、创建存储函数

    MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。

    1、创建存储函数

    在MySQL中,创建存储函数使用CREATE FUNCTION关键字,其基本形式如下:

    CREATE FUNCTION func_name ([param_name type[,...]])
    RETURNS type
    [characteristic ...] 
    BEGIN
    	routine_body
    END;
    

    参数说明:

    (1)func_name :存储函数的名称。

    (2)param_name type:可选项,指定存储函数的参数。type参数用于指定存储函数的参数类型,该类型可以是MySQL数据库中所有支持的类型。

    (3)RETURNS type:指定返回值的类型。

    (4)characteristic:可选项,指定存储函数的特性。

    (5)routine_body:SQL代码内容。

    2、调用存储函数

    在MySQL中,存储函数的使用方法与MySQL内部函数的使用方法基本相同。用户自定义的存储函数与MySQL内部函数性质相同。区别在于,存储函数是用户自定义的。而内部函数由MySQL自带。其语法结构如下:

    SELECT func_name([parameter[,…]]);
    

    示例:创建存储函数,实现根据用户编号,获取用户姓名功能。

    (1)先创建tb_user(用户信息表),并添加数据。

    -- 创建用户信息表
    CREATE TABLE IF NOT EXISTS tb_user
    (
    	id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',
    	name VARCHAR(50) NOT NULL COMMENT '用户姓名'
    ) COMMENT = '用户信息表';
     
    -- 添加数据
    INSERT INTO tb_user(name) VALUES('jenrey`s csdn');
    INSERT INTO tb_user(name) VALUES('jenrey');
    INSERT INTO tb_user(name) VALUES('zhangsan');
    INSERT INTO tb_user(name) VALUES('lisi');
    INSERT INTO tb_user(name) VALUES('wangwu');
    INSERT INTO tb_user(name) VALUES('maliu');
    INSERT INTO tb_user(name) VALUES('https://blog.csdn.net/jenrey');
    

    查询数据结果:

    (2)创建存储函数

    -- 创建存储函数
    DROP FUNCTION IF EXISTS func_user;
    CREATE FUNCTION func_user(in_id INT)
    RETURNS VARCHAR(50)
    BEGIN
    	DECLARE out_name VARCHAR(50);
     
    	SELECT name INTO out_name FROM tb_user
    	WHERE id = in_id;
     
    	RETURN out_name;
    END;
    

    (3)调用存储函数

    -- 调用存储函数
    SELECT func_user(1);
    SELECT func_user(2);
    SELECT func_user(3);
    SELECT func_user(4);
    SELECT func_user(5);
    SELECT func_user(6);
    SELECT func_user(7);
    

    执行结果:

    3、修改存储函数

    MySQL中,通过ALTER FUNCTION 语句来修改存储函数,其语法格式如下:

    ALTER FUNCTION func_name [characteristic ...]
    characteristic:
        COMMENT 'string'
      | LANGUAGE SQL
      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
      | SQL SECURITY { DEFINER | INVOKER }
    

    上面这个语法结构是MySQL官方给出的,修改的内容可以包含SQL语句也可以不包含,既可以是读数据的SQL也可以是修改数据的SQL还有权限。此外在修改function的时候还需要注意你不能使用这个语句来修改函数的参数以及函数体,如果你想改变这些的话你就需要删除掉这个函数然后重新创建。

    4、删除存储函数

    MySQL中使用DROP FUNCTION语句来删除存储函数。

    示例:删除存储函数。

    DROP FUNCTION IF EXISTS func_user;
    

    其它补充:

    如果你在创建存储函数时提示以下错误:

    [Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is
    enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

    这是我们开启了bin-log, 我们就必须指定我们的函数是否是
    1 DETERMINISTIC 不确定的
    2 NO SQL 没有SQl语句,当然也不会修改数据
    3 READS SQL DATA 只是读取数据,当然也不会修改数据
    4 MODIFIES SQL DATA 要修改数据
    5 CONTAINS SQL 包含了SQL语句

    其中在function里面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我们开启了 bin-log, 我们就必须为我们的function指定一个参数。

    解决方法:

    解决办法也有两种, 第一种是在创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个, 例如: CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`()     DETERMINISTIC BEGIN #Routine body goes here... END;;

    第二种是信任子程序的创建者,禁止创建、修改子程序时对SUPER权限的要求,设置log_bin_trust_routine_creators全局系统变量为1。

    设置方法有三种:

    (1)在客户端上执行 SET GLOBAL log_bin_trust_function_creators = 1。

    (2)MySQL启动时,加上--log-bin-trust-function-creators选贤,参数设置为1。

    (3)在MySQL配置文件my.ini或my.cnf中的[mysqld]段上加

    vi /etc/my.cnf

    log-bin-trust-function-creators=1

    再执行查看binlog参数的命令:show global variables like "%log_bin%"

    关于上面的配置解释可以参考:

    MySQL参数log_bin_trust_function_creators介绍

     

     

     

     

     

     

     

    展开全文
  • 数据库编程 存储函数的调用、举例 课程目标 掌握 ——存储函数的调用方法; 掌握—— 存储函数的使用方法; 存储函数的查看、调用 ...【例】 创建一个存储函数删除Sell表中有但Book表中不存在的记录。 DELIMITER
  • MySQL修改、删除存储过程和函数

    千次阅读 2019-09-02 16:49:04
    一、修改 ...其中,sp_name参数表示存储过程或函数的名称,characteristic参数指定存储函数的特性,可能取的取值有: contains SQL 表示子程序包含SQL语句,但不包含读写数据的语句。 no SQL 表示子...

    一、修改

    使用alter语句可以修改存储过程或函数的特性。

    alter {procedure | function } sp_name {characteristic ...}
    

    其中,sp_name参数表示存储过程或函数的名称,characteristic参数指定存储函数的特性,可能取的取值有:

    • contains SQL 表示子程序包含SQL语句,但不包含读写数据的语句。
    • no SQL 表示子程序中不包含SQL语句。
    • READS SQL DATA 表示子程序中包含读数据的语句。
    • MODIFIES SQL DATA 表示子程序中包含写数据的语句。
    • SQL security {definer | invoker } 指明谁有权限来执行。
    • DEFINER 表名只有定义者自己才能够执行。
    • INVOKER 表示调用者可以执行。
    • COMMENT ‘string’ 表示注释信息。

    修改存储过程使用alter procedure语句。修改存储函数使用alter function语句,但是,这两个语句的结构是一样的,语句中的所有参数也是一样的。而且,它们与创建存储过程或存储函数的语句中的参数也是基本一样的。

    【例1】修改存储过程CountProc的定义。将读写权限改为MODIFUES SQL DATA,并且指明调用者可以执行,代码如下:

    mysql> alter procedure CountProc
        -> modifies sql data
        -> sql security invoker;
    Query OK, 0 rows affected (0.01 sec)
    

    查询修改后的CountProc表的信息

    select specific_name,sql_data_access,security_type
    from information_schema.Routines
    where routine_name='CountProc' and routine_type = 'procedure';
    Empty set (0.00 sec)
    

    在这里是一张空表,如果是正常修改就可以看到数据的权限改变了,安全类型也改变了。

    【例2】修改村粗函数NameByZip的定义,将读写权限改为reads sql data,并加上注释信息"find name",SQL语句如下:

    mysql> alter function NameByZip
        -> reads sql data
        -> comment 'find name' ;
    Query OK, 0 rows affected (0.06 sec)
    
    mysql> select specific_name,sql_data_access,routine_comment
        -> from information_schema.Routines
        -> where routine_name='NameByZip' and routine_type = 'function';
    Empty set (0.00 sec)
    

    如果表不为空,就会看到访问数据的权限改编为reads sql data,函数注释变成find name。

    二、删除

    删除存储过程和函数,使用drop函数,语法形式如下:

    drop {procedure | function} [ if exists] sp_name
    

    这个语句被用来移除一个存储过程或函数,sp_name为要移除的存储过程或函数的名称。
    if exists 子句是一个MySQL的扩展,如果程序或函数不存储,那么它可以防止发生错误,产生一个用show warnings查看的警告。

    【例3】删除存储过程和存储函数,SQL语句如下:

    drop procedure CountProc;
    drop function ContProc;
    

    语句的执行结果如下:

    mysql> drop procedure CountProc;
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> drop function NameByZip;
    Query OK, 0 rows affected (0.05 sec)
    

    上述语句的作用就是删除存储过程CountProc和存储函数NameByZip

    展开全文
  • SQL存储过程、存储函数

    千次阅读 2021-11-25 11:03:15
    存储过程和函数存储过程和函数是事先经过编译并存储在数据库中的一SQL语句的集合 存储过程和函数的好处: 存储过程和函数可以重复使用,减轻开发人员的工作量。类似于java中方法可以多次调用 减少网络流量,...
  • 存储过程和存储函数的简单介绍

    千次阅读 2020-04-21 21:07:35
    存储过程和存储函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的工作,减少数据在数据库和应用服务器之间的传输,能够提高数据库的处理效率。存储过程在高并发...
  • 五、存储函数的调用与删除 六、存储过程与函数的比较 一、概述 存储在数据库中的被命名的PLSQL块,供所有用户程序调用,完成特定功能的子程序。 存储过程与存储函数的区别:是否用return返回值。 存储过程:类似于...
  • 开始之前 首先创建如下两张表,并初始化一些数据。 创建存储过程(CREATE PROCEDURE) ...基本语法格式如下: ...CREATE PROCEDURE sp_name (parameters) ...sp_name为存储过程的名称(唯一性,没有所谓的重...
  • oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL...
  • MySQL存储函数,值得一看

    千次阅读 多人点赞 2021-12-18 16:18:39
    前面讲过了存储过程,这篇让卷心菜讲讲存储函数。 参数列表: FUNCTION中总是默认为IN参数。 RETURNS 后的语句表示函数返回数据的类型; RETURNS子句只能对FUNCTION做指定,对函数而言这是强制的。它用来指定函数...
  • 存储过程(Stored Procedure)和存储函数(Stored Function)是在数据库中定义的一些完成特定功能的SQL语句集合,其经编译后存储在数据库中。存储过程和存储函数中可包含流程控制语句及各种SQL语句。它们可以接受参数、...
  • 删除PROCEDURE/FUNCTION的权限问题在Oracle11g中,删除存储过程或者函数的权限是同一权限,都是DROP ANY PROCEDURE/DROP PROCEDURE。 当使用DROP PROCEDURE权限时,无需系统管理员授予,若系统管理员使用如下语句会...
  • 存储函数 存储过程 VS 存储函数 JDBC 调用存储过程/函数 存储过程 1、存储过程是自定义的且封装在数据库服务器上的 PLSQL 代码片段,它已经编译好了,可以像调用数据库函数一样来调用存储过程,可以给它传递参数...
  • 存储过程的调用与删除;例子:--调用无参的存储过程 begin first_proc; end;--调用带有输出参数的存储过程 DECLARE v_avgsalary NUMBER; v_count NUMBER; BEGIN PROC2(10,v_avgsalary,v_count); DBMS_OUTPUT.put...
  • -删除数据库中所有存储过程和函数的sql语句 USE [TmpDb] SELECT IDENTITY( INT,1,1 ) flag ,  [name] NAMES,xtype INTO #tmp FROM sysobjects WHERE xtype = 'tf'  OR xtype = 'fn'  OR xtype =
  • mysql存储过程和存储函数练习题

    千次阅读 2020-05-28 09:12:28
    课 序 授课日期 授课班次 授课教师 批准人 5 ...4. 掌握使用SQL语句DROP PROCEDURE删除存储过程的方法。 5. 掌握使用CREATE FUNCTION创建存储函数的方法。 6. 掌握使用SQL语句ALTER FUNCTION修
  • mysql 存储函数

    千次阅读 2018-06-13 23:41:17
    #定义函数 delimiter $$ create function getGameName(gameid int) returns VARCHAR(45) DETERMINISTIC begin declare name VARCHAR(45); set name=(select gamename from cy_game where id=gameid); return (n.....
  • 数据库实验5---存储过程和存储函数

    千次阅读 2022-05-03 22:47:48
    存储过程和存储函数实验内容实验步骤及处理结果思考体会参考资料 实验内容 输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名的学生的各科成绩。 DELIMITER @@ CREATE PROCEDURE stu_info...
  • Oracle 删除所有表,视图,序列,函数存储过程等SQL语句文档。
  • 存储程序分为存储过程和函数 可以使用CALL来调用存储过程,只能输出变量返回值。存储过程可以调用其他存储过程 函数可以从语句外调用,也能返回标量值 什么是存储过程? 简单的说,就是一组SQL语句集,功能...
  • 存储过程、存储函数和触发器基本使用

    万次阅读 多人点赞 2018-07-31 23:38:23
    当前数据库中有一张acount表,如下: 一、存储过程的创建: (1)语法:mysql> CREATE PROCEDURE 创建的存储过程名字(OUT|IN|INOUT 参数名 数据类型,...,.....删除:drop procedure 要删除存储过程的...
  • 本博文源于mysql基础,主要对自定义函数存储过程进行学习与练习。涉及自定义函数的创建使用与存储过程的创建使用。
  • 存储过程的查看和删除 --**查看数据据库中所有的存储过程** select *from mysql.proc where db="数据库名称" --**删除存储过程** drop producedure [if exists] 存储过程名称; 例: --查看db6数据库中所有的存储...
  • 练习7:创建存储过程和函数

    千次阅读 2019-09-02 17:49:24
    创建的存储函数名称为count_sch,通过select count_sch()查看函数执行的情况,这个表中只有两条记录,得到的结果也是两条记录,说明函数成功执行。 第三步:创建一个存储过程,通过调用存储函数的方法来获取表sch...
  • 面向考试数据库—数据库编程(Ⅱ)存储函数与触发器的入门使用
  • MySQL删除存储过程和函数

    万次阅读 2015-06-24 13:39:29
    使用DROP FUNCTION语句来删除存储函数。 基本的语法格式如下: DROP {PROCEDURE|FUNCTION} sp_name; 其中,sp_name参数表示存储过程或函数的名称。 1. 删除存储过程test。SQL代码如下: drop ...
  • MySQL入门之存储过程与存储函数

    千次阅读 2017-07-22 00:03:25
    MySQL入门之存储过程与存储函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 804,230
精华内容 321,692
关键字:

删除存储函数