My SQL 高级部分
Posted 佳星辰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了My SQL 高级部分相关的知识,希望对你有一定的参考价值。
一、存储过程
存储过程是存储在数据库目录中的一段声明性sql语句,感觉其功能类似函数。
1.简单的存储过程
我们可以通过create procedure procedure_name 语句创建存储过程,然后通过call procedure_name 语句调用存储过程。
delimiter // create procedure procedure_name( ) begin select * from table_name end // delimiter ;
下面我们来详细的说明上述存储过程:
- 第一个命令delimiter // ,与存储过程语法无关。它是将标准分隔符--逗号(;)改为--双斜杠(//)。因为我们想将存储过程作为整体传给服务器,而不是让mysql依次解释每个语句。关键字end后使用分隔符//来指示存储过程的结束,左后将分隔符该回分号。
- 使用create procedure语句创建存储过程。
- begin 和 end 之间的部分是存储过程的主题,将声明性的sql语句放在主题中以处理业务逻辑。
2.声明变量
要在存储过程中声明一个变量,可使用declare 语句,其基本语法格式如下:
declare variable_name datetype( size ) default default_value;
声明变量后,就可以开始使用变量了。我们可以使用set 语句为其分配值,也可以使用 select into 语句将查询结果分配给一个变量.
例如,假设我们有一个产品表(products),我们声明两个变量 total_count 和 m,将totla_count赋值为10,将products表的数据个数赋值给m:
declare total_count,m int default 0; set total_count = 10; select count(*) into m from products;
注意:变量有自己的范围(作用域),它用来定义它的生命周期。 如果在存储过程中声明一个变量,那么当达到存储过程的END语句时,它将超出范围,因此在其它代码块中无法访问。
3.参数简介
以上是关于My SQL 高级部分的主要内容,如果未能解决你的问题,请参考以下文章