当前位置: 首页 > news >正文

MySQL实验7存储过程_存储过程 · MySQL5.7文档 · 看云

# 存储过程

简单来说,存储过程就是一条或多条SQL语句集,可视化为批文件,但是其作用不限于批处理.

## 创建存储过程

```sql

create procedure 名称 ([参数列表])

[存储特性...] SQL内容

```

### 参数列表

参数列表形式如下:

```sql

[ in|out|inout ] 参数

```

|类型|说明|

|-|-|

|in|表示输入参数|

|out|表示输出参数|

|inout|表示既可以输入也可以输出|

### 存储特性

存储特性有以下取值:

+ language sql 说明(SQL内容)部分是由sql语句组成

+ [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 表明包含写sql语句

+ sql security{definer|invoker} 指明谁有权限执行

+ definer 表示定义者才能执行

+ invoker 表示调用者才能执行

+ comment 'string' 注释信息

### PHP调用存储过程

```sql

$conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");

mysql_select_db('test',$conn);

$sql = "

create procedure myproce()

begin

INSERT INTO user (id, username, sex) VALUES (NULL, 's', '0');

end;

";

mysql_query($sql);//创建一个myproce的存储过程

$sql = "call test.myproce();";

mysql_query($sql);//调用myproce的存储过程,则数据库中将增加一条新记录。

```

## 调用存储过程

```sql

call 存储过程名称([参数[,参数]...]);

```

## 查看存储过程

```sql

show procedure status [like '值'];

```

## 修改存储过程

可以修改存储过程的特性,如果要修改过程,必须删除后重写代码

```sql

alter procedure 存储过程名称 [存储特性...];

```

## 删除存储过程

```sql

drop procedure [if exists] 存储过程名称;

```

相关文章:

  • php mysql insert 默认_PHP MySQL Insert Into
  • 称重机 java_Java实现称重3次找到假球
  • triangle java_LeetCode Triangle Java版本
  • python用户重复输入_在Python中从用户输入中查找重复值
  • java类与类之间的类图_UML类图(Class Diagram)中类与类之间的关系及表示方式(转)
  • java按时间范围过滤_Java列表按日期过滤
  • java员工表代码_基于java+ssh员工考勤管理系统源代码
  • java返回指定json格式_java返回json格式数据
  • java字符型数据的长度_Java字符串创建和长度
  • java正则表达式笔记_java正则表达式笔记
  • java打印两个字符串_Java 按字母顺序中打印两个字符串的公共字符
  • mysql 不显示警告信息_关闭mysql不安全语句警告
  • java 加载luasocket库_使用Lua的扩展库LuaSocket用例
  • mysql5.7.13 zip win7_mysql5.7.13.zip安装教程(windows)
  • 南京三只松鼠java_又出新模式?三只松鼠南京首家品牌集合店开业
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [nginx文档翻译系列] 控制nginx
  • Android 控件背景颜色处理
  • CSS居中完全指南——构建CSS居中决策树
  • docker-consul
  • k8s如何管理Pod
  • Median of Two Sorted Arrays
  • spring security oauth2 password授权模式
  • XML已死 ?
  • Zepto.js源码学习之二
  • 分享一份非常强势的Android面试题
  • 关于Flux,Vuex,Redux的思考
  • 回顾 Swift 多平台移植进度 #2
  • 基于HAProxy的高性能缓存服务器nuster
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 设计模式走一遍---观察者模式
  • 数据可视化之 Sankey 桑基图的实现
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • Prometheus VS InfluxDB
  • 容器镜像
  • #100天计划# 2013年9月29日
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $.ajax()方法详解
  • $.ajax,axios,fetch三种ajax请求的区别
  • (6)STL算法之转换
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (一)插入排序
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转载)从 Java 代码到 Java 堆
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Micro Framework初体验
  • .NET 常见的偏门问题
  • .net 调用php,php 调用.net com组件 --
  • .NET 反射 Reflect
  • .NET 解决重复提交问题
  • .net 流——流的类型体系简单介绍