-
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#创建存储过程代码.doc
2010-05-12 11:02:29c#用command代码创建存储过程代码。 -
MyBatis创建存储过程的实例代码_动力节点Java学院整理
2020-08-29 13:17:56本节需要用到的有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_INSERT 为 ON 时,才能为表'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条记录
创建一个查看student表的存储过程
参数说明
DELIMITER //
作用,将MySQL的结束符设置为//,因为,MySQL默认的语句结束符号为分号;,为了避免与存储过程中,SQL语句结束符相冲突,需要使用DELIMTER改变存储过程的结束符,并且,以END //结束存储过程
存储过程,定义完毕之后,再使用DELIMITER,恢复默认结束符 DELIMITER,可以指定其他符号作为结束符 注意,DELIMITER与设置的结束符之间,一定要有一个空格,否则设置无效
-
mysql 创建存储过程
2021-01-19 07:27:581. 首先呢,我这里给出存储过程的定义,到底什么是存储过程。存储过程是指,在大型数据库系统中,为了提高...2. 接下来怎么创建存储过程呢?这里有一张表 grade,里面有几行数据。创建存储过程语法create procedure...1. 首先呢,我这里给出存储过程的定义,到底什么是存储过程。
存储过程是指,在大型数据库系统中,为了提高数据库操作的效率和SQL代码的封装,完成特定功能的SQL语句集,
存储在数据库中,经过第一次编译后,再次调用不需要再次编译,用户只需指定存储过程名字并给定参数就可以执行完成任务。
2. 接下来怎么创建存储过程呢?
这里有一张表 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 ;
3.创建带参数的存储过程格式,传入学生的id,返回学生的分数
create procedure show_grade_by_sid(in id int,out score out) //前面的in可以省略,省略默认是in类型
begin
end#
4.用同一个变量名作为inout参数,如下:
意思就是存储过程的创建啦。
要删除存储过程用 drop命令
drop procedure pro_inout_test
-
mysql中怎么创建存储过程?
2021-05-26 17:31:23文章目录mysql中怎么创建存储过程?存储过程的参数列表通过mysql服务器创建存储过程通过SQLyog客户端创建存储过程 mysql中怎么创建存储过程? 创建存储过程有两种方式,一种是通过mysql服务器端创建,另外一种是通过... -
navicat怎么创建存储过程
2021-01-18 21:08:43navicat怎么创建存储过程?下面就为大家详细介绍一下其中涉及到的操作。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:261、创建存储过程。 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:151、定义 所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 ...2、创建存储过程并调用 2.1 首先在plsql创建一个test window。 2.2 附上代码 create or r... -
在mysql中创建存储过程与函数
2018-12-21 17:14:141、创建存储过程和函数 存储过程是一条或者多条SQL语句的集合,相当于批处理文件,但是作用不仅仅限于批处理。使用存储过程将简化操作,减少冗余的步骤,同时还可减少操作过程的失误,提高效率。 (1)创建存储... -
图解MySql命令行创建存储过程
2018-03-29 16:15:29使用source命令,从命令行执行sql脚本,创建表;创建第一个存储过程;...当做存储过程中的代码;调用一下,成功了;创建一个带输出参数的存储过程,返回book表的记录数;创建成功;如下的调用语句... -
PostgreSQL的存储过程简单入门
2017-09-07 17:32:59PostgreSQL 存储过程定义格式如下:■结构 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:291. 存储过程 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... -
MySQL存储过程的创建与管理(实验七)
2019-12-05 09:58:181、创建存储过程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 ... -
Oracle 创建存储过程以及PlSql 调用 存储过程
2016-03-09 16:55:06存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在大型数据库系统中,... -
SQL Server 数据库----存储过程的创建及使用
2021-11-25 18:52:47一、存储过程 1、存储过程 存储过程(Stored Procedure) 是一组为了完成特定功能的SQL 语句集,经编译后存储在服务器端数据库中,用户通过指定存储过程的名字并... (2)用户自定义存储过程:由用户根据需要创建... -
【最新】Navicat for MySQL创建存储过程(带参数IN)【项目实例】
2019-12-15 13:14:01在学生表(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代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预...