精华内容
下载资源
问答
  • 2018-08-02 10:55:53

    1.存储过程简介

    存储过程(Stored Procedure)是数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。

     2.创建存储过程的基本代码结构

    CREATE PROCEDURE Procedure_Name  
     
    --Procedure_Name为存储过程名(不能以阿拉伯数字开头),在一个数据库中触发器名是唯一的。名字的长度不能超过个字。PROCEDURE可以简写为PROC。
    	 
    @Param1 Datatype,@Param2 Datatype 
    	
    --@Param1和@Param2为存储过程的参数,Datatype为参数类型,多个参数用逗号隔开,最多允许个参数。
    	
    AS --存储过程要执行的操作 
     
    BEGIN
    	
    --BEGIN跟END组成一个代码块,可以写也可以不写,如果存储过程中执行的SQL语句比较复杂,用BEGIN和END会让代码更加整齐,更容易理解。
     
        
    END
    GO --GO就代表结操作完毕  
     
     
    exec Procedure_Name [参数名] --调用存储过程Procedure_Name。
     
    drop procedure Procedure_Name --删除存储过程Procedure_Name,不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
     
    show procedure status --显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
     
    show create procedure Procedure_Name --显示存储过程Procedure_Name的详细信息
     
    exec sp_helptext Procedure_Name --显示你这个Procedure_Name这个对象创建文本
    

     

    更多相关内容
  • c#用command代码创建存储过程代码
  • 本节需要用到的有2部分,第一部分是如何在Derby中创建存储过程,第二部分是如何在Mybatis中调用存储过程,具体实例代码大家参考下本文吧
  • 一、C#创建存储过程并调用

    千次阅读 热门讨论 2018-10-31 18:23:55
    一、存储过程 1、表的结构 在这里插入代码片 2、无参数存储过程 create procedure GetStuCou as begin select * from Student s left join Course c on s.C_S_Id=c.C_Id end ...

    一、存储过程

    1、表的结构

    create Database StudentInfo
    use StudentInfo
    
    Create table Student(
    Id int PRIMARY key IDENTITY(1,1),
    StuNo Nvarchar(50) unique,
    Name VARCHAR(200),
    )
    INSERT INTO Student VALUES('001','张三')INSERT INTO Student VALUES('002','李四');
    INSERT INTO Student VALUES('003','桃五');
    INSERT INTO Student VALUES('004','王六');
    
    Create table Course(
    Id int PRIMARY key IDENTITY(1,1),
    _Id int,
    Score VARCHAR(200),
    )
    INSERT INTO Course VALUES(2,'60');
    INSERT INTO Course VALUES(3,'70');
    INSERT INTO Course VALUES(4,'80');
    
    
    [SQL]INSERT INTO Student VALUES('','001','张三')
    [Err] 23000 - [SQL Server]仅当使用了列列表并且 IDENTITY_INSERTON 时,才能为表'Student'中的标识列指定显式值。
    
    则去掉给主键的值则应为:
    INSERT INTO Student VALUES('001','张三')
    

    2、无参数存储过程

    --创建名为 GetStuCou 的无参数存储过程
    create procedure GetStuCou
    as
    begin
        select * 
        from Student s
        left join Course c on s.Id=c._Id
    end
    --执行名为 GetStuCou 的无参数存储过程
    execute GetStuCou
    

    3、有返回值的存储过程(插入数据用的数据库是变得才行 这个例子是固定的执行的时候意义不大)

    --创建名为 GetStuCou_Re 的有返回值的存储过程
    create procedure GetStuCou_Re
    as
    begin
    	INSERT INTO Course VALUES(1,'80');
        return SCOPE_IDENTITY();        -- 返回为当前表插入数据最后生成的标识值。
    end
    
    --执行名为 GetStuCou 的有返回值的存储过程
    execute GetStuCou_Re
    

    4、有输入、输出参数的存储过程:

    --创建名为 GetStuCou_In 的有输入参数的存储过程
    create procedure GetStuCou_In
    @StuNo    nvarchar(64)='001'        --设置默认值
    as
    begin
        select * from Student where StuNo=@StuNo
    end
    
    --执行名为 GetStuCou_In 的有输入参数的存储过程(不传参数,即使用默认值)
    execute GetStuCou_In
    
    --执行名为 GetStuCou_In 的有输入参数的存储过程(传入参数)
    execute GetStuCou_In '004'
    

    5、C#调用存储过程

    string strsql = "Data Source=localhost;Initial Catalog=StudentInfo;Integrated Security=True";//数据库链接字符串  
    string sql = "GetStuCou_In";//要调用的存储过程名  
    SqlConnection conStr = new SqlConnection(strsql);//SQL数据库连接对象,以数据库链接字符串为参数  
    SqlCommand comStr = new SqlCommand(sql, conStr);//SQL语句执行对象,第一个参数是要执行的语句,第二个是数据库连接对象  
    comStr.CommandType = CommandType.StoredProcedure;//因为要使用的是存储过程,所以设置执行类型为存储过程  
    //依次设定存储过程的参数  
    comStr.Parameters.Add("@StuNo", SqlDbType.Text).Value = "004";//这里的@StuNo要和定义的参数名字一致
    conStr.Open();//打开数据库连接  
    //MessageBox.Show(comStr.ExecuteNonQuery().ToString());//执行存储过程  返回影响函数 -1
    SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(comStr);
    DataTable DT = new DataTable();
    SqlDataAdapter1.Fill(DT);
    MessageBox.Show(DT.Rows[0][0].ToString());
    conStr.Close();//关闭连接  
    
    展开全文
  • MySQL创建存储过程

    千次阅读 2021-02-03 07:36:36
    在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程...大大减少数据库开发人员的工作量创建存储过程使用CREATE PROCEDURE语句CREATE PROCEDURE sp_name([proc_parameter])[characteri...

    在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程

    存储过程

    就是一条或多条SQL语句的集合,当对数据库进行一系列复杂操作时,存储过程可以将这些复杂操纵,封装成一个代码块,以便重复使用,大大减少数据库开发人员的工作量

    创建存储过程

    使用CREATE PROCEDURE语句

    CREATE PROCEDURE sp_name([proc_parameter])

    [characteristics……]routine_body

    参数说明

    CREATE PROCEDURE,创建存储过程的关键字

    Sp_name,为存储过程的名称

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

    [IN|OUT|INOUT]param_name type

    参数列表说明

    IN,表示输入参数

    OUT,表示输出参数

    INOUT,表示既可以输入,也可以输出

    Param_name,表示参数名称

    type,表示参数的类型,可以是MySQL数据库中的任意类型

    在创建存储过程的语法格式中,characteristics用于指定存储过程的特性,取值如下

    LANGUAGE SQL

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

    [NOT] DETERMINISTIC

    指明存储过程执行的结果是否正确,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代码的开始和结束

    首先,在数据库chapter06中,创建表student

    创建student表之后,插入4条记录

    0818b9ca8b590ca3270a3433284dd417.png

    创建一个查看student表的存储过程

    0818b9ca8b590ca3270a3433284dd417.png

    参数说明

    DELIMITER //

    作用,将MySQL的结束符设置为//,因为,MySQL默认的语句结束符号为分号;,为了避免与存储过程中,SQL语句结束符相冲突,需要使用DELIMTER改变存储过程的结束符,并且,以END //结束存储过程

    存储过程,定义完毕之后,再使用DELIMITER,恢复默认结束符 DELIMITER,可以指定其他符号作为结束符 注意,DELIMITER与设置的结束符之间,一定要有一个空格,否则设置无效

    展开全文
  • mysql 创建存储过程

    千次阅读 2021-01-19 07:27:58
    1. 首先呢,我这里给出存储过程的定义,到底什么是存储过程。存储过程是指,在大型数据库系统中,为了提高...2. 接下来怎么创建存储过程呢?这里有一张表 grade,里面有几行数据。创建存储过程语法create procedure...

    1. 首先呢,我这里给出存储过程的定义,到底什么是存储过程。

    存储过程是指,在大型数据库系统中,为了提高数据库操作的效率和SQL代码的封装,完成特定功能的SQL语句集,

    存储在数据库中,经过第一次编译后,再次调用不需要再次编译,用户只需指定存储过程名字并给定参数就可以执行完成任务。

    2. 接下来怎么创建存储过程呢?

    a01474e68ab260d8f4eb2ffeb551501f.png

    这里有一张表 grade,里面有几行数据。创建存储过程语法

    create procedure 存储过程名(参数) //这里参数有三种,in 要输入的参数,out 输出的参数 ,inout 输入输出的参数

    begin

    sql语句集   //因为sql语句集中需要使用  ;分号结尾,那么我把整个存储过程结尾符号改成#

    end

    使用 dilimiter $在当前窗口就改好了

    例如我创建下面的不带参数的存储过程

    delimiter #

    create procedure show_grade()

    begin

    select * from grade;

    select * from grade order by score desc;

    end$

    delimiter ;

    357ac3637bed99521701037e2d7bcb26.png

    3.创建带参数的存储过程格式,传入学生的id,返回学生的分数

    create procedure show_grade_by_sid(in id int,out score out)   //前面的in可以省略,省略默认是in类型

    begin

    end#

    13763b7acd370adac1ebcdcc9c3d2009.png

    4.用同一个变量名作为inout参数,如下:

    50356b6004a929664aadc9b77cd92b96.png

    意思就是存储过程的创建啦。

    要删除存储过程用 drop命令

    drop procedure pro_inout_test

    e74d3e1b3c1ffc0f81f4498331b7b61d.png

    展开全文
  • mysql中怎么创建存储过程

    千次阅读 多人点赞 2021-05-26 17:31:23
    文章目录mysql中怎么创建存储过程?存储过程的参数列表通过mysql服务器创建存储过程通过SQLyog客户端创建存储过程 mysql中怎么创建存储过程创建存储过程有两种方式,一种是通过mysql服务器端创建,另外一种是通过...
  • navicat怎么创建存储过程

    千次阅读 2021-01-18 21:08:43
    navicat怎么创建存储过程?下面就为大家详细介绍一下其中涉及到的操作。1、使用Navicat Premium打开创建函数向导,操作:连接名——数据库——函数——新建函数2、选择过程——输入存储过程参数——完成(这一步可以...
  • sql server 创建存储过程

    万次阅读 多人点赞 2018-03-01 13:52:52
    右键单击“存储过程”,再单击“新建存储过程”将会创建存储过程模板:让我困惑的 <Procedure_Name, sysname, ProcedureName> 有什么用?搜遍全网 也没答案。。。。上图其实是一个存储过程...
  • MYSQL中存储过程创建,调用及语法

    千次阅读 2021-01-18 21:23:50
    特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如PHP),要组织很多SQL语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在PHP代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务...
  • DB2创建存储过程

    千次阅读 2020-04-26 17:55:47
    声明一个存储过程:CREATE PROCEDURE 存储过程名(IN 输入变量名 输入变量类型,OUT 输出变量名 输出变量类型) 存储过程名后面是存储过程属性列表,常用的有:LANGUAGE SQL、MODIFIES SQL DATA、RESULT SETS 1(返回结果...
  • Oracle之创建存储过程SQL语句

    千次阅读 2020-05-19 17:23:26
    1、创建存储过程。 create or replace procedure myprocedure(sid in number) as exam number; begin select * from score where sid=score.userid; dbms_output.put_line(exam); if exam>60 then dbms_o
  • Oracle创建存储过程(带详细说明)

    千次阅读 2019-08-12 09:41:15
    1、定义 所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 ...2、创建存储过程并调用 2.1 首先在plsql创建一个test window。 2.2 附上代码 create or r...
  • 在mysql中创建存储过程与函数

    千次阅读 2018-12-21 17:14:14
    1、创建存储过程和函数  存储过程是一条或者多条SQL语句的集合,相当于批处理文件,但是作用不仅仅限于批处理。使用存储过程将简化操作,减少冗余的步骤,同时还可减少操作过程的失误,提高效率。 (1)创建存储...
  • 图解MySql命令行创建存储过程

    千次阅读 2018-03-29 16:15:29
    使用source命令,从命令行执行sql脚本,创建表;创建第一个存储过程;...当做存储过程中的代码;调用一下,成功了;创建一个带输出参数的存储过程,返回book表的记录数;创建成功;如下的调用语句...
  • PostgreSQL的存储过程简单入门

    千次阅读 2017-09-07 17:32:59
    PostgreSQL 存储过程定义格式如下:■结构 PL/pgSQL是一种块结构的语言,比较方便的是用pgAdmin III新建Function,填入一些参数就可以了。基本上是这样的:CREATE OR REPLACE FUNCTION 函数名(参数1,[整型 int4, ...
  • SQLServer之创建存储过程

    千次阅读 2018-11-01 04:31:06
    创建存储过程注意事项 在 SQL Server、 Azure SQL Database、Azure SQL 数据仓库和并行数据库中创建 Transact-SQL 或公共语言运行时 (CLR) 存储过程,存储过程与其他编程语言中的过程类似。 可以在当前数据库中创建...
  • 练习7:创建存储过程和函数

    千次阅读 2019-09-02 17:49:24
    案例:创建一个名称为sch的数据表,表结构如表1所示,将表2中的数据插入sch表中。 字段名 数据类型 主键 外键 非空 唯一 自增 id int(10) 是 否 是 是 否 name varchar(50) 否 否 是 否 否 glass ...
  • 在SQLyog上使用SQL语句创建存储过程

    千次阅读 2018-11-29 13:46:23
    首先来写一条简单的创建存储过程的语句,将教师表中中符合条件的教师数量进行统计返回到num中,代码如下: CREATE PROCEDURE teacherSum(IN sex varchar(4), IN depart varchar(10), OUT num INT) BEGIN SELECT ...
  • mysql 创建存储过程及函数

    千次阅读 2020-04-18 20:29:29
    1. 存储过程 1.1. 基本语法 create procedure name ([params]) UNSIGNED [characteristics] routine_body params : in|out|inout 指定参数列表 代表输入与输出 routine_body: SQL代码内容,以begin ..........
  • 数据库创建存储过程

    千次阅读 2017-12-18 22:35:00
    创建存储过程的原因:一般在数据库中SQL编辑器只能写sql语句,创建存储过程后可在对象编辑器中加入除了sql语句之外的语句(例如:if,else语句)。创建存储过程类似于python中创建函数,可传参。 一.在Mysql-front...
  • 1、创建存储过程p_AvgGrade1,查询出每门课程的平均成绩。 代码: delimiter $$ create procedure p_AvgGrade1() reads sql data begin select course.CourseName,avg(grade.Grade) from course left join grade on ...
  • linux中mysql如何创建存储过程

    千次阅读 2017-07-20 11:16:29
    创建存储过程的完整命令: CREATE PROCEDURE pro1() begin  declare b int default 0; end; MySQL中运行存储过程创建语句错误结果: root@db1>CREATE PROCEDUREpro1()  -> begin  -> declare b int ...
  • 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在大型数据库系统中,...
  • 一、存储过程 1、存储过程 存储过程(Stored Procedure) 是一组为了完成特定功能的SQL 语句集,经编译后存储在服务器端数据库中,用户通过指定存储过程的名字并... (2)用户自定义存储过程:由用户根据需要创建...
  • 在学生表(Student)中创建一个存储过程selectStudentsByClassName,该存储过程可以根据班级名称查询该班级所有学生的信息。 请在Hibernate中调用该存储过程,要求将调用代码封装在DAO中,并编写客户端代码进行测试。...
  • MySQL——创建存储过程和函数

    万次阅读 2018-05-22 09:34:00
    简单地说,存储过程就是一条或多条 SQL 语句的集合,可视为批文件,但是其作用不仅限于批处理。...1. 创建存储过程 语法格式: CREATE PROCEDURE SP_name ( [ proc_parameter ] ) [ characteristi...
  • mysql创建存储过程

    万次阅读 多人点赞 2016-08-15 22:22:46
    当SQL语句有变动时,可以只修改数据库中的存储过程而不必修改代码存储过程能实现较快的执行速度。如果某一操作包含大量的SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,006,851
精华内容 402,740
关键字:

创建存储过程代码