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入门之备份与恢复

MySQL入门之备份与恢复

MySQL入门之数据库介绍及MySQL介绍

MySQL入门之数据库介绍及MySQL介绍

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

MySQL入门之PHP的MySQL数据库编程

MySQL入门之PHP的MySQL数据库编程

MySQL入门之创建、修改、删除、查看数据库

MySQL入门之创建数据库和表

MySQL入门之索引

MySQL入门之索引

MySQL入门之事件

MySQL入门之事件

MySQL入门之扩展匹配符、order by、limit、union、group by、having子句

MySQL入门扩展匹配符、order by、limit、union、group by、having子句

MySQL入门之大纲

MySQL入门之大纲

MySQL入门之视图

MySQL入门之视图

MySQL入门之访问控制与安全

MySQL入门之访问控制与安全
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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