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

lazadaq群排名优化软件

lazada,q群排名优化软件,docker 搭建wordpress,哪个网站做网销更好1、什么是存储过程 存储过程就是一组为完成某项特定功能的sql语句集。按我的理解,就是一个封装好的方法,可以被访问。 2、为什么要用存储过程 这里就应该讲到存储过程的高性能。存储过程执行一次后,其执行规划就驻留在高速缓冲存储器中&am…

1、什么是存储过程

存储过程就是一组为完成某项特定功能的sql语句集。按我的理解,就是一个封装好的方法,可以被访问。

2、为什么要用存储过程

这里就应该讲到存储过程的高性能。存储过程执行一次后,其执行规划就驻留在高速缓冲存储器中,在以后的操作,会直接从高速缓存中调用已经编译好的二进制代码,提高效率。

3、存储过程的创建

以下通过一个小例子说明,将逐行解释。

Delimiter @@                                                
create proceduce test_proceduce(out rows int)               
begin                                                       declare cid int;                                          declare isFound tinyint default 1;                        declare cur_cid cursor for select cust_id from customers; declare continue handler for not found                    set isFound = 0;                                        set rows = 0;                                             open cur_cid;                                             fetch cur_cid into cid;                                   while isFound = 1 do                                      set rows = rows + 1;                                    fetch cur_cid into cid;                                 end while;                                                close cur_cid;                                           
end @@                                                      
Delimiter ;                                                 

1、第一行,Delimiter @@
delimiter:修改mysq的语句结束标识。首先我们都知道mysql默认语句结束标识是 ;(分号),但一个存储过程体,可能包含多条sql语句,以分号结尾,可能mysql 不会去执行后面的语句,会有很多不可预知的问题。所以,我们首先将mysql默认结束标识改为 @@ ,到存储过程结束后,再改回 ; (分号)
2、第二行,create proceduce …
mysql使用 create proceduce语句创建存储过程 语法为:

create proceduce sp_name(proc_parameter[,...])
routime_body
  • sp_name 是存储过程名称
  • proc_parameter是用于指定存储过程的参数列表 语法格式:

    [in|out|inout] param_name type

    a)in out inout 是mysql存储过程的三种类型参数,即 输入参数,输出参数 和 输入\输出参数
    b)param_name 是参数名称
    c)type 是参数类型 可以是任何有效的mysql数据类型

  • routime_body 存储过程的主体部分 基本格式为:

    begin
    ...
    end

    存储过程体只有一条sql的时候,begin end 可以省略,begin end 复合语句可以嵌套使用。

正如上面代码所示,我们创建了一个名为test_proceduce的存储过程,输出名字为rows,类型为int的参数。
3、第四行,第五行,declare cid int;declare isFound …
declare:声明局部变量,同时可以为局部变量赋初始值 其语法格式:

 declare var_name[,..] type [default value]
  • var_name 变量名称
  • type 变量类型 可以是任何mysql有效的类型
  • value 变量的默认值
    第四行,我们创建了一个名称为cid,类型为int的变量
    第五行,我们创建了一个名称为isFound,类型为tinyint 并且默认值为1的变量

4、第六行、第十行、第十一行、第十六行 declare cur_cid cursor for…
这几行涉及到一个游标的概念
cursor(游标): 游标是一个被select语句检索出来的结果集。可以理解成一个数据集合
a)声明游标

declare cursor_name cursor for select_statement

cursor_name 游标名称
select_statement 指定一个sql语句

正如第六行,我们声明了一个叫做cur_cid的游标,他的内容是
select cust_id from customers 返回的结果

b)打开游标
游标只有打开了,才能用

open cursor_name

第十行,我们打开了游标

c)读取游标内容

fetch cursor_name into

十一行,我们读取了游标的第一个内容,并赋给了cid

d)关闭游标
游标使用结束,必须关闭游标

close cursor_name

十六行,我们关闭了游标

5、先看第九行 set rows = 0;
set: 使用set语句为局部变量赋值,语法格式:

set var_name = expr[, var_name=expr] ...

第九行,我们设置rows 等于0

6、第七行、第八行 declare continue handler
declare handler 声明一个异常处理,语法格式如下:

DECLARE
{EXIT | CONTINUE}
HANDLER FOR
{error-number | SQLSTATE error-string | condition}
SQL statement

a)continue 表示捕获了异常,继续执行下面的代码
b)exit 表示捕获了异常,退出当前所在的复合语句 当然set isFound=0还是会执行
c){error-number | SQLSTATE error-string | condition} 包括
1、MYSQL错误代码
2、ANSI-standard SQLSTATE code
3、命名条件。可使用系统内置的SQLEXCEPTION,SQLWARNING和NOT FOUND

正如第七行,第八行,我们声明了一个异常处理,当程序块出现not found 异常的时候,执行 set isFound = 0; 这个概念类似于我们Java的try … catch一样。我们try的范围是整个代码块,catch了 not found exception finally 执行set isFound = 0;

7、第十二行、第十五行 while ..do ..
mysql 支持条件判断语句和循环语句这两类用于控制语句流程的过程式sql语句,这里明显是一个循环语句.
mysql三种标准循环语句格式:

WHILE……DO……END WHILE
REPEAT……UNTIL END REPEAT
LOOP……END LOOP

这里的循环其实跟高级程序设计语言的思想相同,所以就解释了。
8、第十三行、十四行 set… ; fetch .. into..
mysql中,使用set 给变量赋值
mysql中,使用fetch xxx into xx 取游标的值
9、第十六行 close cur_cid
关闭游标 (游标open后,都需要关闭)



declare handler 部分摘自
https://www.cnblogs.com/datoubaba/archive/2012/06/20/2556428.html

http://www.lbrq.cn/news/2403649.html

相关文章:

  • 360安全浏览器seo引擎优化培训
  • 南昌网站做全面落实疫情防控优化措施
  • 营销型网站有哪些类店铺运营方案策划
  • 怎么在服务器中安装WordPress网站seo优化包括哪些方面
  • 网站建设seo视频微信推广软件哪个好
  • 网站仿站工具seo具体优化流程
  • 网站开发人员工作内容提高关键词排名的软文案例
  • 多新闻怎么做扁平网站百度软件安装
  • wordpress计费查询山东seo
  • 昆明网站设计代写文章兼职
  • 做网站什么职业百度搜索数据统计
  • 网站设计管理方向seo优化推广工程师
  • 哪里有网站建设服务全国疫情高中低风险区一览表
  • 南宁小程序建设seo排名培训学校
  • 北京市住房和城乡建设委官方网站2022年明星百度指数排行
  • 高端品牌名字大全深圳百度seo整站
  • 昌网站建设网站检测工具
  • 网站建设的基本流程包括营销网站优化推广
  • 网站搭建软件国际大新闻最新消息
  • 舞钢市做网站开发的公司seo咨询
  • 上海网站工作室如何查询网站收录情况
  • 塘沽做网站近三天发生的重要新闻
  • 郑州做网站价格山东搜索引擎优化
  • app网站制作软件免费b站网站推广
  • 用dw制作一个网站百度推广代理赚钱
  • 菠菜网站的代理怎么做网站推广广告
  • 网络公关在哪些方面能发挥作用seo关键词是什么
  • 网站组件google推广方式和手段有哪些
  • 新疆生产建设兵团水利局网站看啥网一个没有人工干预的网
  • 学习做网站只学过cseo推广人员
  • 从磁记录到数据中心:磁盘原理与服务器架构的完整技术链路
  • 【RK3576】【Android14】显示屏MIPI开发调试
  • 【Web APIs】JavaScript 自定义属性操作 ② ( H5 自定义属性 )
  • #Datawhale组队学习#7月-强化学习Task2
  • 博图SCL语言中常用运算符使用详解及实战案例(下)
  • 发明专利怎么写,与学术文章异同点与注意事项