**1. 存储过程与函数的区别:**
1. 一般来说,存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。
2. 当对数据库进行复杂操作时(如对多个表进行Update、Insert、Select、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。存储过程可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
3. 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此函数可以用在查询语句中位于FROM关键字的后面。
4. 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
5. 存储过程可以有多个返回值,可以返回错误原因。但函数只能返回一个特定类型的值或者表对象。
6. 存储过程中的CRUD操作会影响数据库状态,但函数却不能。
7. 函数参数类型默认且只能是`in`类型,而存储过程有 `in`、`out`、`inout`3种类型。
8. 函数必须有`return`语句,而存储过程不能有`renturn`语句。
**2. 函数特点**
1. 可以与Select语句一起使用。
2. 不返回输出参数,但返回表变量。
3. 你可以在函数内调用自定义函数。
4. 无法用于更改服务器配置。
5. 不能与XML FOR子句一起使用。
6. 函数中不能有事务。
**3.存储过程特点**
1. 必须使用EXEC或EXECUTE。
2. 可以返回输出参数。
3. 可以建表,但不能返回表变量。
4. 存储过程内不能调用系统存储过程。
5. 可用于更改服务器配置。
6. 可以与XML FOR子句一起使用。
7. 可以在存储过程内进行事务处理。
- MySQL
- MySQL是什么
- MySQL环境搭建
- centos7-MySQL8
- windows-MySQL8
- 数据库软件
- sqlyog软件安装
- navicat软件安装
- powerDesigner软件安装
- RDBMS术语
- SQL语句组成
- 数据库系统组成
- 数据库操作
- 数据表操作
- 查询语句
- 基本语法
- 子查询
- 表连接
- 查询语句执行顺序
- 事务
- 事务是什么
- 事务的作用
- 事务的4个特性
- 事务隔离级别
- 事务的实现
- 索引
- 索引的作用
- 索引操作
- 存储引擎
- 备份与恢复
- 视图
- 视图是什么
- 视图的作用
- 创建视图
- 查看视图
- 更改视图
- DML操作视图
- 删除视图
- 存储过程与函数
- 过程与函数是什么
- 存储过程操作
- 定义存储过程
- 调用存储过程
- 查看存储过程
- 删除存储过程
- 修改存储过程
- 函数操作
- 过程与函数区别
- 流程控制
- if语句
- case语句
- while循环语句
- repeat循环语句
- loop循环语句
- 变量
- 处理程序
- 光标
- Redis
- 简介
- 下载与安装
- 命令操作redis数据库
- 通用命令
- 数据操作
- 持久化
- Windows上的持久化操作
- 数据库设计
- 数据库设计过程
- ER模型图
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 数据模型
- 安装MongoDB
- MongoDB认证
- Database操作
- Collection操作
- Document操作
- 插入
- 查询
- 更新
- 删除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事务管理
- 写关注
- 读关注