精华内容
下载资源
问答
  • 修改存储过程的命令
    千次阅读
    2021-05-02 06:49:30

    Q1:如何在SELECT语句中调用存储过程的结果

    语法

    SELECT [predicate] { *table.*[table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, ...]]}

    FROM tableexpression [, ...] [IN externaldatabase]

    [WHERE... ]

    [GROUP BY... ]

    [HAVING... ]

    [ORDER BY... ]

    [WITH OWNERACCESS OPTION]

    SELECT 语句包含以下部分:

    部分

    说明

    predicate

    这些谓词之一:ALL、DISTINCT、DISTINCTROW 或 TOP。可以使用谓词来限定返回记录的数量。如果没有指定谓词,默认值为 ALL。

    *

    指定选择所指定的表的所有字段。

    table

    表的名称,该表包含了其记录被选择的字段。

    field1,field2、字段名,这些字段包含了要检索的数据。如果包括多个字段,将按它们的排列顺序对其进行检索。

    alias1, alias2、用作列标题的名称,不是 table 中的原始列名。

    tableexpression

    其中包含要检索的数据的表的名称。

    externaldatabase

    如果 tableexpression 中的表不在当前数据库中,则使用该参数指定该数据库名。

    更多相关内容
  • 今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL中存储过程的查看、删除和整改。 一、存储过程查看 二、存储过程修改 三、存储过程删除

    今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL中存储过程的查看、删除和整改。
    阅读本文,您需要对MySQL存储过程有一定的了解,如果您对此还存在困惑,欢迎查阅我博客内的文章,相信您一定会有所收获。相关文章链接:
    MySQL存储过程(一)——存储过程理论基础
    MySQL存储过程(二)——存储过程基本使用
    MySQL存储过程(三)——存储过程分支流控语句
    MySQL存储过程(四)——存储过程循环流控语句

    一、存储过程查看

    在建立好存储过程后,有时我们需要查看我们所创建好的存储过程。要查询当前数据库中存在的所有存储过程,可以执行命令:

    show procedure status\G
    

    执行结果如下:
    在这里插入图片描述
    如果要查看某个具体的存储过程,可以执行命令:

    show create procedure 【存储过程名】\G
    

    执行结果如下:
    在这里插入图片描述

    二、存储过程修改

    尽管MySQL数据库支持对存储过程的修改,但是我们依旧不可以修改存储过程中的内容,也不能修改存储过程的名称。如果想要修改存储过程的内容,只能删除原有的存储过程,然后再重新写一个存储过程;如果想要修改存储过程的名称,只能删除原有的存储过程,然后重新创建一个新的存储过程,并且把原有存储过程的内容写入到新的存储过程名称里面。
    MySQL只支持修改存储过程的一些特性,该修改命令SQL示例如下:

    alter procedure 【存储过程名】 【存储过程特性】;
    

    可以写入的存储过程特性主要有以下6种:
    1、contains sql。 表示子程序包含SQL语句,但是不包含读或者写的SQL语句。
    2、no sql。 表示子程序不包含SQL语句。
    3、reads sql data。 表示子程序中包含读数据的SQL语句。
    4、modifies sql data。 表示子程序中包含写数据的SQL语句。
    5、sql security define或sql security invoke。 如果是define,则表示该存储过程只有定义者自身才可以执行,如果是invoke,则表示调用者可以执行。
    6、comment 【注释信息】。 表示向该存储过程添加注释信息。

    三、存储过程删除

    存储过程的删除可以使用以下命令:

    drop procedure 【存储过程名】;
    

    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

    展开全文
  • 今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL存储过程的基本使用。 一、存储过程定义和调用 (一)存储过程定义 (二)存储过程调用 (三)存储过程定义和调用示例 二、存储过程参数和变量 (一)存储过程...

    今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL存储过程的基本使用。

    一、存储过程定义和调用

    (一)存储过程定义

    存储过程定义格式为:

    create procedure 【存储过程名】(参数1,参数2……)
    beginSQL命令】
    end
    

    存储过程定义的格式非常简单,但是,要定义和使用存储过程,就是要向存储过程内写入SQL命令,然而,我们知道SQL命令必须以分号结尾,如果我们直接按照上述命令进行键入,那么当输入到SQL命令的分号时,MySQL数据库会认为整个命令已经写完,这时就会终止我们的键入。为了解决上述问题,我们必须先修改MySQL数据库的命令结束符。执行命令:

    delimiter //
    

    可以把MySQL数据库的命令结束符换成双斜杠,这样,当我们在写存储过程中写SQL命令结尾的分号时,MySQL数据库就不会认为我们的该条命令已经写完,而当我们写完end后,就可以键入双斜杠来结束存储过程的编辑。

    (二)存储过程调用

    在定义了一个存储过程后,我们可以使用call命令来调用存储过程,存储过程调用格式如下^

    call 【存储过程名】 (参数1,参数2……)
    

    (三)存储过程定义和调用示例

    下面,以一个具体的例子来展示存储过程的定义和调用:
    相关SQL命令如下:

    delimiter //
    create procedure exp()
        -> begin
        -> select * from student;
        -> end //
    call exp()//
    

    结果如下:
    在这里插入图片描述
    上述示例是MySQL最简单的示例,当然,其本身只包含一个淡出的SQL命令,因此并没有什么意义,随着我们深入的学习,我们就可以写出更加灵活、有用的MySQL存储过程了。

    二、存储过程参数和变量

    (一)存储过程参数

    MySQL存储过程支持参数的调用,这给存储过程的编写提供了很大的灵活性。MySQL存在三种类型的参数,IN、OUT和INOUT。IN类型的参数主要是在调用存储过程时由外部输入存储过程参与并影响代码执行的,OUT类型的参数是存储过程执行后输出的,INOUT类型的参数兼具这两种参数的功能,主要是用于传入存储过程并进行修改的。存储过程参数的调用时,需要指明参数的类型。
    关于参数的存储过程定义和调用示例如下:

    delimiter //
    create procedure name_to_grade(in name_in varchar(30), out grade_out int)
    begin
    select score from student join grade on student.id=grade.Sid where name=name_in;
    end // 
    call name_to_grade('Bob',@Y)//
    select @Y//
    

    在上述命令中,select into表示将select查询的结果写入该变量中,上述命令执行结果如下:
    在这里插入图片描述

    (二)存储过程变量

    MySQL存储过程除了支持参数的传递之外,还支持变量的使用。MySQL中的变量使用declare关键字进行声明,在声明时必须指定变量的类型。变量可以使用set关键字进行赋值,使用set命令可以在declare声明变量后进行赋值,也可以在未声明变量前进行赋值,此时set在赋值的同时也定义了该变量。
    注意,MySQL在select语句中和declare语句中,变量名不需要加“@”符号,但是在set命令和数字运算命令中需要加“@”符号。
    MySQL存储过程定义和使用示例如下:

    create procedure exp()
    begin
    declare sum_xy int;
    set @x=1;
    set @y=2;
    set sum_xy=@x+@y;
    select sum_xy;
    end //
    call exp()//
    

    上述命令执行结果如下:
    在这里插入图片描述

    三、存储过程注释

    MySQL允许在存储过程中添加注释,注释包括单行注释和多行注释,单行注释即在一行前面添加“–”,多行注释即采用“/**/”的形式将注释括起来。
    在MySQL存储过程中使用注释示例如下:

    create procedure zs()
    begin
    -- This is single expanatory note
    /*
    This is multi expanatory note
    */
    

    执行结果如下:
    在这里插入图片描述
    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

    展开全文
  • -- ORACLE如何使用存储过程实现添加、修改、删除、查询?--现在我以scott用户中的EMP表给大家详细讲解。SELECT * FROM EMP;------------------------------------- * 添加 *--------------------------------------- ...

    -- ORACLE如何使用存储过程实现添加、修改、删除、查询?

    --现在我以scott用户中的EMP表给大家详细讲解。

    SELECT * FROM EMP;

    -----------------------------------

    -- * 添加 *--

    -----------------------------------

    -- 创建

    CREATE OR REPLACE PROCEDURE P_EMP_INSERT

    (V_ID NUMBER,V_NAME IN VARCHAR2) -- 定义输入变量

    IS

    BEGIN

    INSERT INTO EMP(EMPNO,ENAME) VALUES(V_ID,V_NAME);

    COMMIT;

    END;

    -- 执行

    BEGIN

    P_EMP_INSERT(8000,'CC');

    END;

    -----------------------------------

    -- * 修改 *--

    -----------------------------------

    -- 创建

    CREATE OR REPLACE PROCEDURE P_EMP_UPDATE

    (V_ID IN NUMBER,V_NAME IN VARCHAR2) -- 定义输入变量

    IS

    BEGIN

    UPDATE EMP SET ENAME=V_NAME WHERE EMPNO=V_ID;

    COMMIT;

    END;

    -- 执行

    BEGIN

    P_EMP_UPDATE(8000,'AA');

    END;

    -----------------------------------

    -- * 删除 *--

    -----------------------------------

    -- 创建

    CREATE OR REPLACE PROCEDURE P_EMP_DELETE

    (V_ID IN NUMBER) -- 定义输入变量

    IS

    BEGIN

    DELETE FROM EMP WHERE EMPNO=V_ID;

    COMMIT;

    END;

    -- 执行

    BEGIN

    P_EMP_DELETE(8000);

    END;

    -----------------------------------

    -- * 查询 *--

    -----------------------------------

    -- 条件查询 只返回一条数据

    CREATE OR REPLACE PROCEDURE P_EMP_GETOBJBYID

    (V_ID IN NUMBER, -- 定义输入变量

    V_NAME OUT VARCHAR2) -- 定义输出变量

    IS

    BEGIN

    SELECT ENAME INTO V_NAME FROM EMP WHERE EMPNO=V_ID;

    END;

    -- 执行条件查询 只返回一条数据

    DECLARE

    P_NAME VARCHAR2(10):='';

    BEGIN

    P_EMP_GETOBJBYID(7788,P_NAME);

    dbms_output.put_line('PNAME:' || P_NAME);

    END;

    -- 模糊查询 返回多条数据

    CREATE OR REPLACE PROCEDURE P_EMP_SELECT

    (RESULTLIST OUT SYS_REFCURSOR,V_ID IN NUMBER,V_NAME IN VARCHAR2)

    IS

    SQL_STR VARCHAR2(500);

    BEGIN

    SQL_STR:='SELECT * FROM EMP WHERE 1=1 ';

    DBMS_OUTPUT.put_line('V_ID='||V_ID || ' V_NAME='||V_NAME);

    IF(V_ID<>0) THEN

    BEGIN

    SQL_STR:=SQL_STR || ' AND EMPNO>= ' || V_ID;

    END;

    END IF;

    IF(V_NAME IS NOT NULL) THEN -- 判断字符串是否为空

    BEGIN

    SQL_STR:=SQL_STR || ' AND ENAME LIKE '''|| V_NAME ||'%'' '; -- 字符串是四个单引号 ''A%''

    END;

    END IF;

    DBMS_OUTPUT.put_line(' SQL_STR:'||SQL_STR);-- 输出SQL语句

    OPEN RESULTLIST FOR SQL_STR;

    END;

    -- 执行模糊查询 返回多条数据

    DECLARE

    MYCRS SYS_REFCURSOR;-- 注意这里用分号;

    V_EMP EMP%ROWTYPE;

    BEGIN

    -- 调用过程,返回的是已经打开的CURSOR

    P_EMP_SELECT(MYCRS,7900,'M');

    LOOP

    FETCH MYCRS INTO V_EMP;

    EXIT WHEN MYCRS%NOTFOUND;

    DBMS_OUTPUT.put_line(V_EMP.EMPNO||' '||V_EMP.ENAME);

    END LOOP;

    CLOSE MYCRS;

    END;

    展开全文
  • mysql使用命令行执行存储过程

    千次阅读 2021-01-19 00:54:41
    编写存储过程sql以给brand表添加phone字段为例:DROP PROCEDURE IF EXISTS UpdateColum;CREATE PROCEDURE UpdateColum()BEGINSELECT database() INTO @dbName;SET @tablename = 'brand';SET @column_name = 'phone';...
  • 问题: mysql用命令行创建存储过程时,如语句中遇到;则创建过程结束,提示 ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondsto yourMySQLserverversionfortherightsyntaxtousenear''...
  • mysql call 存储过程

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

    千次阅读 2021-05-02 06:50:05
    昨天使用exp可以导出oracle数据库表,今天说下怎么导出存储过程。首先看下使用pl/sql怎么导出存储过程。导出步骤:tools-->Export User Objects...-->选择存储过程(Procedure,Function,Trigger,Type,Type Body...
  • Mysql存储过程调用

    千次阅读 2021-01-19 00:34:07
    1.1create procedure (创建)create procedure存储过程名 (参数列表)beginsql...要指定为其它参数,可在参数名之前使用关键词 out或inout在mysql客户端定义存储过程的时候使用delimiter命令来把语句定界符从;变为//。...
  • if (exists (select * from sys.objects where name = 'student3')) drop proc student3 --//判断存储过程student3是否存在,存在则删除然后重建。 go create proc student3 --//创建存储过程 student3 @Id int, --...
  • oracle中执行存储过程

    2021-05-08 14:35:44
    oracle中执行存储过程创建了...运行一下存储过程试试吧,查数据库书,执行存储过程命令是:call procedure 过程名;执行一下命令,不对?再从网上查吧,一查,oracle中执行存储过程的命令是:exec 过程名,试一下,...
  • 执行与修改存储过程

    万次阅读 2018-06-22 17:39:51
    1.执行存储过程 要运行某个存储过程,只要简单地通过名字就可以引用它。如果对存储过程的调用不是批处理中的第一条语句,则需要使用EXECUTE关键字。下面是执行存储过程的语法格式。[[EXEC[UTE]]] {[@return_status...
  • 存储过程-数据库习题

    千次阅读 2021-11-29 22:26:41
    创建存储过程命令是( )。(多选) A....修改用户自定义存储过程命令是( )。 A. alter table B. alter proc C. alter function D. alter view 正确答案: B 创建create,修改alter,删除dro
  • MySQL查看存储过程

    千次阅读 2022-04-22 08:11:11
    MySQL存储了,存储过程的状态信息 可以使用SHOW STATUS语句,或SHOW CREATE语句来查看,也可以直接从系统的information_schema数据库中查询 SHOW STATUS语句 SHOW STATUS语句,查看存储过程的状态 语法格式 SHOW {...
  • SQLServer数据库之存储过程和触发器

    千次阅读 2022-03-24 21:29:56
    存储过程1.1 存储过程的分类1.2 创建存储过程1.3 查看存储过程1.4 删除存储过程2. 触发器2.1 概述2.2 创建触发器2.2.1 创建 DML 触发器的语法格式如下:2.2.2 创建 DDL 触发器的语法格式如下:2.3 查询触发器2.4 ...
  • mysql存储过程教程(1)

    千次阅读 2021-02-07 17:30:12
    MySQL存储过程1.1 CREATE PROCEDURE (创建)CREATE PROCEDURE存储过程名(参数列表)BEGINSQL语句代码块END注意:由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数...
  • MySQL不支持将整个数据库(db schema)重命名,我们可以通过自己写一个存储过程来实现。实现思路:1)创建目标数据库。2)执行命令:rename table 原库.表 to 目标库.表,将表重命名。3)删除原库。-- 说明:出于安全考虑...
  • mysql 存储过程

    千次阅读 2021-01-18 21:29:44
    存储过程1.什么是存储过程一组可编程函数,是为了满足特定功能的SQL语句集存储过程就是具有名字的一段代码,用来完成个特定的功能创建的存储过程保存在数据库的数据字典中​2.为什么要用存储过程将重复性很高的操作...
  • Oracle如何执行存储过程

    千次阅读 2021-05-04 06:37:07
    示例:有如下创建索引的存储过程--procedure create_indexcreate or replace procedure create_index(indexName in varchar2, tableName in varchar2, columnName in varchar2)istmp_name VARCHAR2(50);TMP_SQL ...
  • 图解MySql命令行创建存储过程

    千次阅读 2018-03-29 16:15:29
    创建第一个存储过程;事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码;调用一下,成功了;创建一个带输出参数的存储过程,返回book表的记录数;创建成功;如下的调用...
  • 这里我用的是Plsql dev客户端,然后修改存储过程编译就卡死,我一直以为是客户端的问题,其实并不然,是因为sessionid什么玩意的被占用了。只需要执行几行命令就可以了。原因的话就是可能有人在执行存储过程,所以你...
  • 1、存储过程的概念 存储过程是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次调用编译后,再次调用不需要编译。用户通过指定存储过程的名字并给出参数 (如果该存储过程带有参数) 来执行它 , 存储...
  • 存储过程之新增或者修改字段

    千次阅读 2019-08-17 11:54:00
    功能方面:存储过程,功能强大,可以执行包括修改表等一系列数据库操作;函数功能简单。 返回数值:函数返回值有且只有一个;而存储过程可以返回多个或者没有返回值。存储过程的参数可以有IN,OUT,INOUT三种类型,而...
  • 如何在MySQL中使用存储过程

    千次阅读 2022-03-27 15:29:04
    MySQL存储过程及MySQL循环语句的基本使用
  • 存储过程 文章目录存储过程实际操作一遍(这里不赘述,自己写) --SqlServer存储过程 -- 【1】创建存储过程 if (OBJECT_ID('proc_get_syudent','p') is not null) --如果这个存储过程已经存在(则删掉它) drop proc...
  • 存储过程,可以这样认为,将我们需要特殊处理的sql语句封装成函数,当需要的时候我们只需调用这个函数就可以实现我们想要的操作,这个过程我们可以称之为存储过程。当然了,真正存储过程的定义不是这样的。但是我们...
  • 一、执行常规SQL语句 SqlConnection conn = new SqlConnection("连接字符串"); conn.Open(); //建立连接,并执行sql语句命令 ...想执行储存过程命令,需要设置SqlCommand的CommandType类型,CommandType类
  • 学习mysql中call语句的用法,调用一个带参数的存储过程的例子。代码:mysql> delimiter $$mysql> CREATE PROCEDURE myProc(id int) //创建mysql存储过程 带参数-> BEGIN->-> SELECT 'in proc'+ id;-&...
  • PLSQL如何调试存储过程

    万次阅读 2021-11-09 13:30:44
    1:找到想要调试的存储过程,右键单击该存过,从弹出菜单中选择“Test”项 2:单击“Test”后,PL\SQL会打开调试界面,左上角有开始调试的按钮,在调试之前要填写存过的参数,下面是填写参数的地方,如果有多个参数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 540,505
精华内容 216,202
热门标签
关键字:

修改存储过程的命令