我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库存储过程如何写

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库存储过程如何写

小编给大家分享一下数据库存储过程如何写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

存储过程简介

SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟,它允许控制数据的访问方式。

存储过程的优点:

(1).增强SQL语言的功能和灵活性:存储过程可以用控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

(2).标准组件式编程:存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。

(3).较快的执行速度:如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。

(4).减少网络流量:针对同一个数据库对象的操作(如查询、修改),如果这一操作所涉及的Transaction-SQL语句被组织进存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是该调用语句,从而大大减少网络流量并降低了网络负载。

(5).作为一种安全机制来充分利用:通过对执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。

MySQL的存储过程

存储过程是数据库的一个重要的功能,MySQL 5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0开始支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。

MySQL存储过程的创建

语法

CREATE PROCEDURE  过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体
DELIMITER //  
  CREATE PROCEDURE myproc(OUT s int)    
    BEGIN     
     SELECT COUNT(*) INTO s FROM students;    
    END    
    //
DELIMITER ;

分隔符

MySQL默认以";"为分隔符,如果没有声明分割符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“DELIMITER //”声明当前段分隔符,让编译器把两个"//"之间的内容当做存储过程的代码,不会执行这些代码;“DELIMITER ;”的意为把分隔符还原。

参数

存储过程根据需要可能会有输入、输出、输入输出参数,如果有多个参数用","分割开。MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT:

IN参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值OUT:该值可在存储过程内部被改变,并可返回INOUT:调用时指定,并且可被改变和返回

过程体

过程体的开始与结束使用BEGIN与END进行标识。

总结

本次主要是掌握了对于存储过程的使用,总的来说,存储过程实际上类似于C++中的函数,而在C++中我们是需要在创建这一过程的文件中去调用这一函数,但是对于存储过程来说,相当于是将这一操作过程存储在数据库中,可以使用call与对其进行调用,并输入或者输出一些参数和结果。

印象最深的是类似“in n int”和“out sum int”这样的对于输入输出的定义,通过查看相关博客,可以总结如下对于输入输出定义的使用规律:

MySQL存储过程的参数用在存储过程的定义,共有三种参数类型

IN,OUT,INOUT
格式为:Create procedure|function([[IN |OUT |INOUT ] 参数名 数据类形...])

IN 输入参数
表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值

OUT 输出参数
该值可在存储过程内部被改变,并可返回

INOUT 输入输出参数
调用时指定,并且可被改变和返回

IN 和 OUT在实验中已有体会,主要是对INOUT的理解,这里引用一个例子:

参数inout的使用实例(既能输入一个值又能传出来一个值)
语句功能:传一个年龄,自动让年龄增长10岁
create procedure p3(inout age int)
begin
set age:=age+10;
end
其中:调用的时候,inout型的参数值既是输入类型又是输出类型,给它一个值,值不是变量,因此我们需要先设置一个变量并初始化这个值,调用的时候直接传这个变量即可。
set @currentAge=8$
call p3(@currentAge)$
select @currentAge$
创建并执行完存储过程,运行结果如下:

       数据库存储过程如何写

以上是数据库存储过程如何写的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库存储过程如何写

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据库存储过程

原文:https://www.cnblogs.com/gfutcan/p/13946765.html
数据库存储过程
2015-11-12

oracle数据库如何查看存储过程

可以通过以下步骤查看 oracle 数据库中的存储过程:1. 连接到数据库;2. 获取存储过程列表;3. 查看存储过程代码;4. 查看存储过程文档。如何查看 Oracle 数据库中的存储过程要查看 Oracle 数据库中的存储过程,可以采
oracle数据库如何查看存储过程
2024-04-19

mysql存储过程如何写

mysql 存储过程是一种预编译 sql 语句,用于执行多个操作:创建过程:使用 create procedure 语句创建存储过程。指定参数:使用输入和输出参数传递数据。声明变量:使用 declare 语句声明局部变量。编写语句块:包含要
mysql存储过程如何写
2024-06-15

mysql数据库存储过程教程

mysql 存储过程是预编译的 sql 语句集合,可作为单个单元执行,提供提高性能、代码重用、安全性、数据完整性等优势。创建存储过程需要确定功能、编写代码、使用 create procedure 语句创建、使用 call 语句测试。例如,获
mysql数据库存储过程教程
2024-08-01

Oracle存储过程编写:判断数据库表是否存在

在Oracle数据库中,存储过程是一种可以保存并重复使用的一组SQL语句的集合,可以实现一定的逻辑功能。在编写Oracle存储过程的过程中常常会涉及到判断数据库表是否存在的需求,以便在后续处理中根据表的存在与否做出相应的操作。下面我们将介绍
Oracle存储过程编写:判断数据库表是否存在
2024-03-08

Oracle数据库存储过程的调试过程

目录oracle存储过程调试方法Oracle 存储过程的调试总结oracle存储过编程客栈程调试方法PL/SQL中为我们提供了【调试存储过程】的功能,可以帮助你完成存储过程的预编编程客栈译与测试。点击要调试的存储过程,右键选择TEST如
2022-07-05

MySQL数据库之存储过程 procedure

目录1、存储过程与函数的区别1.1、相同点1.2、不同点2、存储过程的操作2.1、创建过程2.2、查看过程2.3、调用过程2.4、删除过程3、存储过程的形参类型前言:stored procedure 完成特定功能的SQL语句集,存储在数据
2022-06-15

使用Golang编写高性能的数据库存储过程

标题:利用Golang创建高效的存储过程在软件开发过程中,存储过程是一种保存在数据库中的一组SQL语句集合,可以被客户端程序随时调用执行。存储过程可以提高数据库访问效率、减少网络传输开销,并且可以实现业务逻辑的封装,保证数据操作的一致性和
使用Golang编写高性能的数据库存储过程
2024-02-24

Oracle中如何编写存储过程

在Oracle中编写存储过程可以使用PL/SQL语言。以下是一个在Oracle中编写存储过程的示例:```sqlCREATE OR REPLACE PROCEDURE get_employee_details (employee_id IN
2023-08-22

clickhouse存储过程如何导入数据

在ClickHouse中,存储过程是通过使用SQL语句和函数来实现的。要导入数据到ClickHouse中,可以使用以下方法:使用INSERT语句逐行插入数据:可以使用INSERT语句将数据逐行插入到ClickHouse表中。例如:INSER
2023-10-23

Oracle数据库开发:编写存储过程判断表是否存在

在Oracle数据库开发中,编写存储过程来判断表是否存在是一项常见的任务。在数据库开发中,存储过程是一段预先编译的代码块,用于实现特定的功能或逻辑。通过编写存储过程来判断表是否存在,可以方便地对数据库进行管理和操作。本文将介绍如何在Orac
Oracle数据库开发:编写存储过程判断表是否存在
2024-03-09

编程热搜

目录