数据库必知词汇:存储过程

简介: 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。
+关注继续查看

|名词定义|
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。

存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟,它允许控制数据的访问方式。

| 发展历程 |
1989年ANSI SQL标准(1989) 提出存储过程的标准化。
1992年ANSI SQL标准(1992) 提出SQL的商业化标准。
1998年—SQL Server 7.0发布,SQL Server 7.0开始进军企业级数据库市场,存储过程得到很好的使用。
2000年—SQL Server 2000发布。
2005年—SQL Server 2005发布,增强了T-SQL语言,优化了存储过程的使用。
2008年—SQL Server 2008发布。
当前Oracle、Hadoop、Hbase、MySQL等所有主流数据库最新版本都支持存储过程。

| 技术特点 |
使用存储过程的好处:

  • 减少了服务器/客户端网络流量:过程中的命令作为代码的单个批处理执行。 这可以显著减少服务器和客户端之间的网络流量,因为只有对执行过程的调用才会跨网络发送。 如果没有过程提供的代码封装,每个单独的代码行都不得不跨网络发送。
  • 更强的安全性:多个用户和客户端程序可以通过过程对基础数据库对象执行操作,即使用户和程序对这些基础对象没有直接权限。 过程控制执行哪些进程和活动,并且保护基础数据库对象。 这消除在了单独的对象级别授予权限的要求,并且简化了安全层。
  • 代码的重复使用:任何重复的数据库操作的代码都非常适合于在过程中进行封装。这消除了不必要地重复编写相同的代码、降低了代码不一致性,并且允许拥有所需权限的任何用户或应用程序访问和执行代码。
  • 更容易维护:在客户端应用程序调用过程并且将数据库操作保持在数据层中时,对于基础数据库中的任何更改,只有过程是必须更新的。应用程序层保持独立,并且不必知道对数据库布局、关系或进程的任何更改的情况。
  • 改进的性能:默认情况下,在首次执行过程时将编译过程,并且创建一个执行计划,供以后的执行重复使用。因为查询处理器不必创建新计划,所以,它通常用更少的时间来处理过程。如果过程引用的表或数据有显著变化,则预编译的计划可能实际上会导致过程的执行速度减慢。在此情况下,重新编译过程和强制新的执行计划可提高性能。

sql中的存储过程格式如下:
CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]
[(参数#1,…参数#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数
存储过程种类分为:

1、系统存储过程
2、本地存储过程
3、临时存储过程
4、远程存储过程
5、扩展存储过程

| 相关词 |
Stored Procedure – 存储过程
RDBMS – 关系数据据库
IDS -集成数据存储(Integrated Data Store),这是世界上第一个NDBMS(网状数据库管理系统,Network Database Management System),也是第一个数据库管理系统
Access - 是由微软发布的关系数据库管理系统
MariaDB - 数据库管理系统是MySQL的一个分支

| 案例展示 |
Oracle – 是甲骨文公司的一种关系数据库管理系统
SQLServer – 是微软公司的一种关系数据库管理系统
MySQL -原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,2009年甲骨文公司收购Sun公司,MySQL成为Oracle旗下产品
PostgreSQL - 是自由的对象-关系型数据库服务器
DB2 - 是美国IBM公司发展的一套关系型数据库管理系统
Hive - 是一个建立在Hadoop架构之上的数据仓库

|资料来源|
Introduce stored peocedures https://www.w3schools.com/SQL/sql_stored_procedures.asp
存储过程(数据库引擎) https://docs.microsoft.com/zh-cn/sql/relational-databases/stored-procedures/stored-procedures-database-engine?view=sql-server-ver15
MySQL存储过程 https://www.cnblogs.com/mark-chan/p/5384139.html

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 SQL 数据库
数据库视频第九章存储过程(一)
数据库视频第九章存储过程(一)
|
SQL 机器学习/深度学习 算法
数据库必知词汇:MADLib
Apache MADlib是Pivotal与UCBerkeley合作的一个基于SQL的数据库内置的可扩展的开源机器学习库,提供了精确的数据并行实现、统计和机器学习方法对结构化和非结构化数据进行分析。MADlib提供了丰富的分析模型,包括回归分析,决策树,随机森林,贝叶斯分类,向量机,风险模型,KMEAN聚集,文本挖掘,数据校验等。
742 0
|
存储 Oracle 关系型数据库
数据库必知词汇:dblink
dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
586 0
|
存储 SQL Oracle
数据库必知词汇:物化视图
物化视图(Material View)是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照(类似于MSSQL Server中的Snapshot,静态快照)。
2484 0
|
SQL 存储 分布式计算
数据库必知词汇:触发器
触发器(Trigger)是SQL Server、Oracle等数据库管理系统提供给数据库管理员或者开发人员等来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(INSERT、UPDATE 或 DELETE)时就会激活它执行。
431 0
|
SQL 存储 算法
数据库必知词汇:查询优化器
查询优化器是数据库中负责生成 SQL 语句的有效执行计划的数据库引擎组件,具体地说,查询优化器是针对用户的请求进行内部优化,生成(或重用)执行计划并传输给存储引擎来操作数据,最终返回结果给用户的组件。它是关系型数据库管理系统的核心之一,决定对特定的查询使用哪些索引、哪些关联算法、从而使其高效运行,它是优化器中最重要的组件之一。
263 0
|
SQL 数据库
数据库必知词汇:子查询
子查询(Sub Query)是嵌套在主查询中的SELECT查询语句,即当一个查询是另一个查询的条件时,称之为子查询。子查询嵌套在一个 SELECT、SELECT...INTO 语句、INSERT...INTO 语句、DELETE 语句、或 UPDATE 语句或嵌套在另一子查询中。
335 0
|
SQL 存储 数据库
数据库必知词汇:SQL约束
SQL 约束用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
404 0
|
SQL 存储 数据可视化
数据库必知词汇:数据库视图
视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
610 0
|
SQL 存储 Oracle
数据库必知词汇:数据库表
数据库表是关系型数据库中最为重要的组件,数据库表是包含数据库中所有数据的数据库对象。在数据库表中,数据在逻辑上以类似于电子表格的行和列格式进行组织。每行代表唯一的记录,每列代表记录中的一个字段。
744 0
推荐文章
更多