SQL中创建存储过程

目录
  • 创建SQL存储过程需要使用到的语法
  • 无参数
  • 带参
  • 两个参数
  • declare关键字的使用
  • IF语句
  • case语句
  • loop语句
  • repeat
  • while

创建SQL存储过程需要使用到的语法

- 创建存储过程

CREATE 存储过程的名称(参数)
BEGIN
...需要执行的SQL语句
END

- 调用

CALL 存储过程的名称(参数)

个人看法,这就是一个函数...

无参数

CREATE PROCEDURE p_student_select()
BEGIN
SELECT * FROM student;
END

CALL p_student_select()

带参

# out其实就是cpp里的引用变量,in就是值传递
CREATE PROCEDURE p_count(OUT count int)
BEGIN
SELECT COUNT(*) into count FROM student;
END

set @num = 10;	# 定义变量
CALL p_count(@num);		#我的数据有11条
SELECT @num as num;		#这里的num已经是11了

--这个就是一个调用参数的函数
CREATE PROCEDURE p_studnt_selectById(in id int)
BEGIN
SELECT * FROM student WHERE studentNo = id;
END

CALL p_studnt_selectById(4)

两个参数

#两个参数是一样的用法
CREATE PROCEDURE p_result_test(out num int, in id int)
BEGIN
SELECT COUNT(*) INTO num FROM result WHERE studentNo = id;
END

set @num = 0;
CALL p_result_test(@num, 3);
SELECT @num as num

declare关键字的使用

# declare的作用是用来定义变量

CREATE PROCEDURE p5()
BEGIN
DECLARE studentName VARCHAR(10);	#创建了一个变量
set @studentName = 'HELLO';		#给变量赋值
END

CALL p5();
SELECT @studentName
-- 说明了declare定义的变量可以在外部直接调用

IF语句

#if语句没啥说的,代码直接能看懂
CREATE PROCEDURE p6(in id int)
BEGIN
IF(id = 0) THEN
	SELECT * FROM student;
ELSE
	SELECT * FROM teacher;
END IF;
END

case语句

#看代码...
CREATE PROCEDURE p7(in tab VARCHAR(10))
BEGIN
CASE tab
	WHEN 'student' THEN
		SELECT * FROM student;
	WHEN 'teacher' THEN
		SELECT * FROM teacher;
END CASE;
END

loop语句

CREATE PROCEDURE p9(IN id INT)
BEGIN
addloop: LOOP
	set id = id + 1;
	SELECT id;
	IF id > 10 THEN
		LEAVE addloop;
	ELSE
		SELECT * FROM student;
	END IF;
END LOOP addloop;

END

repeat

CREATE PROCEDURE p10(in count int)
BEGIN
REPEAT
	set count = count + 1;
	SELECT count;
UNTIL count > 10 END REPEAT;	#count >10跳出

END

while

CREATE PROCEDURE p11(in num int)
BEGIN
while num < 10 DO
	SELECT num;
	SET  num = num + 1;
END WHILE;
END

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解MySQL中的存储过程和函数

    目录 区别 优点 创建储存函数和过程 储存过程 储存函数 查看储存过程 操作 变量 赋值 变量例子 定义条件和处理过程 条件 处理程序 游标 流程控制语句 储存过程和函数就是数据器将一些处理封装起来,调用 区别 调用储存过程只需要使用CALL,然后指定储存名称和参数,参数可以是IN.OUT和INOUT 调用储存函数只需要使用SELECT,指定名称和参数,储存函数必须有返回值,参数只能是IN 优点 良好的封装性 应用程序和SQL逻辑分离 让SQL也具有处理能力 减少网络交互 能够提高系统性能 降低

  • MySQL函数与存储过程字符串长度限制的解决

    目录 问题描述 原因分析: 解决方案: 问题描述 MySQL函数或者存储过程中使用group_concat()函数导致数据字符过长而报错 CREATE DEFINER=`root`@`%` PROCEDURE `get_pipe_child`(IN `in_pipe2Num` varchar(25),IN `in_sectionNum` varchar(5)) BEGIN  declare ids varchar(1000) default '';   declare tempids varch

  • MYSQL与SQLserver之间存储过程的转换方式

    目录 MYSQL与SQLserver之间存储过程的转换 mysql存储过程 sqlserver存储过程 SQLserver转MYSQL存储过程的经验 1. 存储过程的定义方式存在区别 2. 批处理分隔符存在差异 3. 可直接替换的关键字 4. select语句起别名的方式有区别 5. if语句的结构存在区别 6. cast语句的目标类型存在区别 7. 动态SQL执行语句的书写方式存在区别 8. 调用其它存储过程的方式存在区别 9. 创建临时表的书写方式存在区别 MYSQL与SQLserver之间

  • MySQL存储过程参数的用法及说明

    目录 MySQL存储过程的参数 输入参数 输出参数 输入输出参数(INOUT) MySQL存储过程的参数 MySQL存储过程的参数共有三种: IN OUT INOUT 输入参数 输入参数(IN):在调用存储过程中传递数据给存储过程的参数(在调用的存储过程必须具有实际值的变量 或者 字面值) 细节注意:下面的存储过程创建会报错,他的类型以及类型长度需要和创建表字段的类型和类型长度一致 -- 创建一个存储过程:添加一个员工信息 DELIMITER $$ CREATE PROCEDURE proced

  • MySQL中的存储过程异常处理

    目录 1. condition 2.handler 3.diagnostics area 在使用MySQL存储过程时,其中的代码可能会出现运行错误从而导致异常,此时需要将存储过程中产生的异常捕获并打印出来 需要知道的概念: condition hanlder diagnostics area(诊断区) 1. condition 存储过程中出现的错误事件也就是异常都可以被称为condition. declare condition语法: DECLARE condition_name CONDITI

  • 分享Sql Server 存储过程使用方法

    目录 一.简介 二.使用 三.在存储过程中实现分页 一.简介 简单记录一下存储过程的使用.存储过程是预编译SQL语句集合,也可以包含一些逻辑语句,而且当第一次调用存储过程时,被调用的存储过程会放在缓存中,当再次执行时,则不需要编译可以立马执行,使得其执行速度会非常快. 二.使用 创建格式    create procedure 过程名( 变量名     变量类型 ) as    begin   ........    end create procedure getGroup(@salary i

  • Oracle在PL/SQL中使用存储过程

    目录 一.概述 二.存储过程详解 1.创建过程语法: 2.创建存储过程 3.调用存储过程 4.C# 调用: 三.存储过程返回记录集SYS_REFCURSOR 1.返回单行语法 2.返回多行语法 四.维护存储过程 1.删除过程 2.显示过程代码 3.查看过程状态 4.重新编译过程 五. 过程与函数比较 1.相同点: 2.不同点: 六. 与过程相关数据字典 一.概述 过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储于数据库中. 并通过输入.输出和输入输出参数与其调用者交换信息

  • SQL 中sp_executesql存储过程的使用帮助

    摘自SQL server帮助文档对大家优查询速度有帮助! 建议使用 sp_executesql 而不要使用 EXECUTE 语句执行字符串.支持参数替换不仅使 sp_executesql 比 EXECUTE 更通用,而且还使 sp_executesql 更有效,因为它生成的执行计划更有可能被 SQL Server 重新使用. 自包含批处理 sp_executesql 或 EXECUTE 语句执行字符串时,字符串被作为其自包含批处理执行.SQL Server 将Transact-SQL 语句或字符

  • navicat中创建存储过程、触发器和使用游标的简单实例(图文)

    1.建表 首先先建两张表(users表和number表),具体设计如下图: 2.存储过程 写一个存储过程,往users表中插入数据,创建过程如下: 代码如下 BEGIN #Routine body goes here... declare n bigint; set n = 201121029684; while n <= 201121029694 do insert into users(student_ID) values(n); set n = n + 1; end while; END

  • PL/SQL中编写Oracle数据库分页的存储过程

    其实 Oracle数据库的分页还是比较容易理解的.此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Developer编写一个分页存储过程,要求是:可以输入表名,每页显示记录数,当前页,返回总记录数,总页数和返回的结果集. 由于需要返回查询出来的结果集,需要在PL/SQL中创建一个package,这个包里面定义一个refcursor类型,用于记录sql语句查询出来的结果集.创建包的代码如下: create or replace package pagingPackage

  • MyBatis创建存储过程的实例代码_动力节点Java学院整理

    所需要用到的其他工具或技术: 项目管理工具 : Maven 测试运行工具 : Junit 数据库 : Derby 本节需要用到的有2部分,第一部分是如何在Derby中创建存储过程,第二部分是如何在Mybatis中调用存储过程 一. 在Derby中创建存储过程 在Eclipse中创建一个新的普通Java项目命名为Test_Store_Procedure 在com.bjpowernode.practice包下创建一个Class命名为StoreProcedureOperationClass.class

  • 在SQL Server 2005中创建CLR存储过程的详细介绍

    在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQL Server 2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解释了,这里就直接说明实现方法了. 假设服务器里面有个test数据库,数据库有个架构user,还有一个表test1,然后有个sql登陆用户叫test_user,将这个用户设置成VS2005里面数据库连接的登陆用户. 在VS2005中创建一个项目,类别是SQL Server数据库项目,然后往项目里面添加

  • Sql中存储过程的定义、修改和删除操作

    1.存储过程的分类 系统存储过程 本地存储过程(用户自定义) 临时存储过程(局部[#].全局[##]临时存储过程) 2.创建存储过程 --选出价格区间的商品信息 create procedure sp_goods_price @minprice float ,@maxprice float as select * from goods where price>=@minprice and price <=@maxprice go 执行存储过程: execute sp_goods_price 2

  • 在ASP.NET 2.0中操作数据之六十五:在TableAdapters中创建新的存储过程

    导言: 本教程的Data Access Layer (DAL)使用的是类型化的数据集(Typed DataSets).就像我们在第一章<创建一个数据访问层>里探讨的一样,该类型化的数据集由强类型的DataTable和TableAdapter构成.DataTable描绘的是系统里的逻辑实体而TableAdapter引用相关数据库执行数据访问,包括对DataTable填充数据.执行返回标量数据(scalar data)的请求.添加,更新,删除数据库里的记录等. TableAdapter执行的SQL

  • SQL Server数据库中的存储过程介绍

    什么是存储过程 如果你接触过其他的编程语言,那么就好理解了,存储过程就像是方法一样. 竟然他是方法那么他就有类似的方法名,方法要传递的变量和返回结果,所以存储过程有存储过程名有存储过程参数也有返回值. 存储过程的优点: 存储过程的能力大大增强了SQL语言的功能和灵活性. 1.可保证数据的安全性和完整性. 2.通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全. 3.通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性. 4.在运行存储过程前,数据库已对其

  • 在ASP.NET 2.0中操作数据之七十三:用Managed Code创建存储过程和用户自定义函数(上部分)

    导言: 数据库,比如Microsoft's SQL Server 2005使用Transact-Structured Query Language (T-SQL)来插入.修改.检索数据.绝大多数数据库系统都包含constructs来对一系列的SQL statements进行分组,这些statements可以作为单独的单元来执行.存储过程就是一个例子,另一个例子是用户自定义函数(UDFs), 我们将在第9步进行详细的探讨. SQL是设计来处理一系列数据的. SELECT,UPDATE,和DELET

随机推荐