MySQL入门之存储过程与存储函数

原创 2017年07月22日 00:03:25

-------------------------------------------------------------------------------------------------------------

教程大纲:

http://blog.csdn.net/qq78442761/article/details/76018310

-------------------------------------------------------------------------------------------------------------


存储过程

存储过程的特点:

1.可增强SQL语言的功能和灵活性

2.良好的封装性

3.高性能

4.可减少网络流量

5.存储过程可以作为一种安全机制来确保数据库的安全性和数据的完整性

创建存储过程

将mysql结束符修改为两个叹号再修改回来



给test_1中创建一个存储过程,用于实现给定表customers中一个cust_id 即可修改表中该客户的性别为一个指定的性别


注意:创建存储过程必须具有create routine权限

查看数据库中存在哪些存储过程



查看某个存储过程的具体信息



存储过程体

1.局部变量

a) 声明局部变量用于存储存储过程中的临时结果

b) 使用declare

c) 只存在于begin end 中

d) 必须在存储过程体的开头处声明

e) 用户变量要用@,用户变量存在于整个会话中

下面演示申请局部变量



Set语句

在存储变量中使用set语句为局部变量赋值,如下操作


Select  into 语句

把选定列的值直接存储到局部变量中

语法如下

Select col_name into var_name table_expr

1.col_name:指定列名

2.Var_name:用于指定要赋值的变量名

3.Table_expr:表示select语句中的from子句

4.返回结果只有一行数据

 

流程控制语句

1.条件判断语句 

if search_condition then statement_list

[elseif search_condition then statement_list]

[else statement_list]

End if

1.search_condition:用于指定判断的条件

2.Statement_list:用于包含了一条或多条的SQL语句

Case语句

Case case_value

When when_value then statement_list

[when when_value then statement_list]

[else statement_list]

End case

或者

Case

When search_condition then statement_list

[when search_condition then statement_list]

[else statement_list]

End else

一般使用第二种方法

 

循环语句

常用的循环语句有 while,repeat(复述),loop(环-跳转)

下面先介绍while语句

[begin_label:]while search_condition DO

Statement_list

End while[end_label]

1.首先判断search_condition是否为真 为真则循环

2.Begin_label和end_label是whlie语句的标注,名字必须相同并且成对出现

 

Repeat语句

[begin_label:]repeat

Statement_list

Until search_condition

End repeat[end_label]

1.repeat语句首先执行statement_list语句

2.Search_condition是否为真

3.可以使用begin_label和end_label进行标注

4.Repeat类似于do循环,先执行再判断

Loop语句

[begin_label:]loop

Statement_list

End loop[end_label]

1.可用begin_label和end_label进行标注

2.使用leave语句循环才退出

 

游标

1.游标是一个被select语句检索出来的集合

2.5.0之后的版本才会有

3.只用于存储过程

4.游标是结果,不是语句

下面说明语法

游标声明

1.declare cursor_name cursor for select_statement

2.Select_statement:指定一个select语句,其会返回多行数据,记住不能有into

打开游标

1.在5.5以后的版本中才有

2.Open cursor_name

读取游标

1. mysql5.5以后的版本才会有

2. Fetch cursor_name into var_name

3. Var_name:用于存放指定数据的变量名

关闭游标

1.在5.5之后的版本才有

2.Close cursor_name

3.如果没有明确关闭游标,mysql在end的时候会自动关闭

下面举一个例子

在test_1中创建一个存储过程,用于计算表customers1中的数据行的行数



调用存储过程sp_sumofrow进行调用再查看存储过程sp_sumofrow后的结果



调用存储过程

我们先创建一个存储过程



下面我们先查看一下customers1表




现在来调用并查看存储过程



修改存储过程

用alter procedure修改部分,但一般是先删除在创建

 

删除存储过程 





存储函数

1.与存储过程十分相似

2.不能拥有输出函数

3.可以直接调用,不需要call语句

4.必须包含一个return语句

下面来创建一个存储函数,给出id返回性别,无id的返回”没有改客户“



下面来调用存储函数和删除存储函数






版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MySQL入门很简单-学习笔记 - 第14章 存储过程和函数

避免编写重复的语句 安全性可控 执行效率高   14.1、创建存储过程和函数 14.1.1、创建存储过程 CREATE PROCEDUREsp_name ([proc_parameter[,...]]...
  • KimSoft
  • KimSoft
  • 2011年09月09日 15:38
  • 5714

Mysql存储过程和函数

  • 2012年03月26日 17:24
  • 176KB
  • 下载

MYSQL存储过程和存储函数入门

一、MYSQL储存过程简介: 储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过...

Mysql手册20-存储过程和函数

  • 2016年04月07日 07:19
  • 491KB
  • 下载

MySQL数据库新特性之存储过程入门教程

在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力。在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用户入门。   存储过程介绍   存储过...
  • ty_soft
  • ty_soft
  • 2012年02月15日 10:43
  • 224

Mysql 存储过程入门

Mysql 存储过程入门

MYSQL存储过程入门1、语法以及in,out区别

1.什么是存储过程? 其实存储过程就是预编译了的SQL语句。 2.优点: (1)提速: 只需要经过一次预编译,以后就可以直接调用该存储过程。如若有数百次的SQL语句执行,存储过程更快速,因为其经...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL入门之存储过程与存储函数
举报原因:
原因补充:

(最多只允许输入30个字)