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 高级部分的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis高级特性

My Sql 1067错误兼编码问题解决

JavaScript笔试题(js高级代码片段)

推荐学java——MyBatis高级

推荐学java——MyBatis高级

推荐学java——MyBatis高级