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

电子商务网站建设与规划教案天门网站建设

电子商务网站建设与规划教案,天门网站建设,贵州省都匀市网站建设,成都网站工作室1、存储过程概述 MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将负杂的SQL逻辑封装在一起,应用程序无序关注存储过程和函数内部复杂的SQL逻辑,而只需要简单的调用存储过程和函数就可以。 1.1 理解 含义:存储过程的英文是Sto…

1、存储过程概述

MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将负杂的SQL逻辑封装在一起,应用程序无序关注存储过程和函数内部复杂的SQL逻辑,而只需要简单的调用存储过程和函数就可以。

1.1 理解

含义:存储过程的英文是Store Procedure。它的思想很简单,就是一组经过预先编译的SQL语句的封装。

执行过程:存储过程预先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语句全部执行。

好处:
1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力。
2、减少操作过程中的失误,提高效率。
3、减少网络传输量(客户端不需要把所有的SQL语句通过网络发给服务器)
4、减少了SQL语句暴露在网上的风险,也提高了数据查询的安全性。

和视图、函数的对比
它和视图有着同样的优点,清晰、安全,还可以减少网络传输量。不过它和视图不同,视图是虚拟表,通常不对底层数据表直接进行操作,而存储过程是程序化的SQL语句,可以直接操作底层数据表,相比于面向集合的操作方式,能够实现一些更复杂的数据处理。
一旦存储过程被创建出来,使用它就和使用函数一样简单,我们直接通过调用存储过程名即可。相较于函数,存储过程是没有返回值的。

1.2 分类

存储过程的参数类型可以是IN、OUT和INOUT。根据这个分类:1、没有参数(没有参数没有返回)。2、仅仅带IN类型(有参数无返回)。3、仅仅带OUT(无参数有返回)。4、既带IN又带OUT (有参数有返回)。5、带INOUT(有参数有返回)

2、创建存储过程

基本语法:
Create Procedure 存储过程名(IN | OUT | INOUT 参数名 参数类型,...)
[characteristics  ...]
BEGIN存储过程体
END

说明:
1、参数前面的符号的意思
(1)IN:当前参数为输入参数,也就是表示入参;存储过程只是读取参数的值。如果没有定义参数种类,默认就是IN,表示输入参数。
(2)OUT:当前参数为输出参数,也就是表示出参;执行完之后,调用这个存储过程的客户端或应用程序就可以读取这个参数返回的值了。
(3)INOUT:当前参数既可以为输入参数,也可以为输出参数。
2、形参类型可以是MySQL数据库中的任意类型。
3、characteristics表示创建存储过程时指定的对存储过程的约束条件,其取值信息如下:

Language SQL
| [not] Deterministic
| {Contains SQL | NO SQL | READS SQL DATA
| MODIFIES SQL DATA}
| SQL SECURITY { DEFINER | INVOKE }
| COMMENT 'string'

Language SQL:说明存储过程执行体式由SQL语句组成的,当前系统支持的语音为SQL。

[Not] Deterministic:指明存储过程执行的结果是否确定。Deterministic表示结果时确定的。每次执行存储过程时,相同的输入都会得到相同的输出。Not Deterministic表示结果时不确定的,相同的输入可能得到不同的输出。如果没有指定任意一个值,默认为Not Deterministic。

{Contains SQL| No SQL |READ SQL DATA|MODIFIES SQL DATA}:指明子查询使用SQL语句的限制。
(1)Contains SQL表示当前存储过程的子程序包含SQL语句,但是并不包含读写数据的SQL语句。
(2)NO SQL 表示当前存储过程的子程序中不包含任何SQL语句。
(3)READS SQL DATA 表示当前存储过程的子查询中包含读数据的SQL语句。
(4)MODIFIES SQL DATA 表示当前存储过程的子查询中包含写数据的SQL语句。
(5)默认情况下,系统会知道为Contains SQL。

SQL SECURITY { DEFINER | INVOKER }:执行当前存储过程的权限,既指明哪些用户能够执行当前存储过程。
(1)Definer表示只有当前存储过程的创建者或者定义者才能执行当前存储过程。
(2)Invoker表示拥有当前存储过程的访问权限的用户能够执行当前存储过程。

4、存储过程体中可以有多余SQL语句,如果仅仅一条SQL语句,则省略Begin和End,编写存储过程并不是一件简单的事情,可能存储过程中需要复杂的SQL语句。
(1)Begin…End:中间可能包含了多个语句,每个语句以(;)号为结束符。
(2)Declare:用来声明变量,使用的位置位于Begin…End语句中间,而且需要在其他语句使用之前进行变量声明。
(3)Set:赋值语句,用于对变量进行赋值。
(4)Select…Into:把从数据表中查询的结果存放到变量中,也就是为变量赋值。
5、需要设置新的结束标志

Delimiter 新的结束标志

说明:因为MySQL默认的语句结束符为分号’;'。为了避免与存储过程中SQL语句结束符相冲突。需要使用Delimiter改变存储过程的结束符。

2.1 案例实操

2.1.1 无参输入和无参输出

1、创建存储过程select_all_data()–查看employees表中的所有数据

在这里插入图片描述
2、调用存储过程select_all_data()
在这里插入图片描述

2.1.2 有参输入和无参输出

1、创建存储过程select_id_101()—打印employee_id为101的用户信息
在这里插入图片描述

2、调用存储过程
在这里插入图片描述

2.1.3 有参输入和有参输出

1、创建存储过程select_salary_id_101()----获取employee_id为101的员工工资;
在这里插入图片描述
2、调用存储过程
在这里插入图片描述
3、查看结果
在这里插入图片描述

2.1.4 有参输入和有参输出(INOUT)

1、创建存储过程select_id_manager_id—获取管理者的id
在这里插入图片描述
2、调用存储过程

在这里插入图片描述
3、查看结果
在这里插入图片描述

3、存储函数概述

其实前面的博客就写了很多函数。使用这些函数可以对数据进行的各种处理操作,极大地提高用户对数据库的管理效率。MySQL支持自定义函数,定义好之后,调用方式和调用MySQL预定义的系统函数一样。
学过的函数:
(1)Length
(2)Substr
(3)Concat

3.1 语法分析

Create Function 函数名(参数名 参数类型,...)
returns 返回值类型
[characteristics]
Begin函数体  #函数体一定要有Return语句
END

说明:
(1)参数列表·:指定参数为IN、Out或NOUT只对Procedure是合法的,Function中总是默认为IN参数。
(2)Returns type 表示函数返回数据的类型。Returns子句只能对Function做指定,对函数而言是强制的。它用来指定函数的返回类型,而且函数体必须包含一个Return value语句。
(3)characteristic创建函数时指定的对函数的约束。取值与创建存储过程时相同。
(4)函数体也可以用Begin…End来表示SQL代码的开始和结束。如果函数体只有一条语句,也可以省略Begin…End。

3.2 调用存储函数

select 函数名(实参列表)

3.3 案例实操

3.3.1 无参输入

1、创建存储函数Select_max_salary()–获取员工最高工资的工资
在这里插入图片描述
2、调用函数
在这里插入图片描述

3.3.2 有参输入

1、创建存储函数select_id_salary(uid int)–获取该id的工资
在这里插入图片描述
2、调用函数
在这里插入图片描述

4、对比存储函数和存储过程

关键字调用语法返回值应用场景
存储过程ProcedureCall 存储过程名()理解为有0个或多少一般用于更新
存储函数FunctionSelect 函数名()只能是一个一般用于查询结果为一个字值的返回

5、存储过程和存储函数的查看、修改、删除

5.1 查看

1、使用Show Create语句查看存储过程和函数的创建信息基本语法:
Show Create {Procedure | Function} 存储过程名或函数名

举例:
在这里插入图片描述
2、使用Show Status 语句查看存储过程和函数的状态信息
基本语法:

Show {Procedure|Function} Status [like 'pattern']

举例:
在这里插入图片描述
3、从information_schema.Routines表中查看存储过程和存储函数的信息。
基本语法:

select * From information_schema.Routines
where Routine_Name='函数名或过程名' AND Rountine_type='函数或过程'

举例:
在这里插入图片描述

5.2 修改

修改存储过程和存储函数,不影响存储过程或函数功能,只是修改特性。使用Alter语句实现。
alter {Procedure | Function } 存储过程或函数的名 [characteristic]

5.3 删除

删除存储过程和函数可以使用Drop语句。
基本语法:
Drop {Procedure | Function } [if exists] 存储过程或函数名

6、存储过程的优缺点

6.1 优点

1、存储过程可以一次编译多次使用
2、可以减少开发工作量
3、存储过程的安全性强
4、可以减少网络传输量
5、良好的封装性

6.2 缺点

1、可移植性
2、调试困难
3、存储过程的版本管理很困难
4、不适合高并发的场景

文章转载自:
http://dinncopredestine.tqpr.cn
http://dinncoworthless.tqpr.cn
http://dinncoroentgenolucent.tqpr.cn
http://dinncoimpertinence.tqpr.cn
http://dinncooutfight.tqpr.cn
http://dinncoplasma.tqpr.cn
http://dinncomalism.tqpr.cn
http://dinncoastrometry.tqpr.cn
http://dinncoglobetrotter.tqpr.cn
http://dinncopowerman.tqpr.cn
http://dinncotannish.tqpr.cn
http://dinncoheterodoxy.tqpr.cn
http://dinncopicnicky.tqpr.cn
http://dinncodaily.tqpr.cn
http://dinncodeepfry.tqpr.cn
http://dinncobarbarian.tqpr.cn
http://dinncohighjacker.tqpr.cn
http://dinncoearthenware.tqpr.cn
http://dinncoteacup.tqpr.cn
http://dinncocoatee.tqpr.cn
http://dinncosynchrocyclotron.tqpr.cn
http://dinncoaffixture.tqpr.cn
http://dinncocockiness.tqpr.cn
http://dinncoadat.tqpr.cn
http://dinncounchastity.tqpr.cn
http://dinncov.tqpr.cn
http://dinncorightful.tqpr.cn
http://dinncohelianthine.tqpr.cn
http://dinncovindicator.tqpr.cn
http://dinnconeedfire.tqpr.cn
http://dinncoanthesis.tqpr.cn
http://dinncopase.tqpr.cn
http://dinncohyde.tqpr.cn
http://dinncozipper.tqpr.cn
http://dinncoachlamydeous.tqpr.cn
http://dinncointerlocal.tqpr.cn
http://dinncoappraisable.tqpr.cn
http://dinncopandit.tqpr.cn
http://dinncomilko.tqpr.cn
http://dinncomultifoliate.tqpr.cn
http://dinncoafterheat.tqpr.cn
http://dinncobernie.tqpr.cn
http://dinncoimmixture.tqpr.cn
http://dinncolowell.tqpr.cn
http://dinncophotoelement.tqpr.cn
http://dinncoleister.tqpr.cn
http://dinncoscandinavian.tqpr.cn
http://dinncodominical.tqpr.cn
http://dinncolengthiness.tqpr.cn
http://dinncohurrier.tqpr.cn
http://dinncochinchy.tqpr.cn
http://dinncopayload.tqpr.cn
http://dinncovitrophyre.tqpr.cn
http://dinncopapaw.tqpr.cn
http://dinncooccasional.tqpr.cn
http://dinncomilia.tqpr.cn
http://dinncophilanthropy.tqpr.cn
http://dinncopyramidalist.tqpr.cn
http://dinncofinned.tqpr.cn
http://dinncoshoshonian.tqpr.cn
http://dinncotaileron.tqpr.cn
http://dinncosignans.tqpr.cn
http://dinncobefell.tqpr.cn
http://dinncodecasyllabic.tqpr.cn
http://dinncocandock.tqpr.cn
http://dinncodaftly.tqpr.cn
http://dinncocelibate.tqpr.cn
http://dinncogeoelectricity.tqpr.cn
http://dinncotrondhjem.tqpr.cn
http://dinncospoliate.tqpr.cn
http://dinncoreusable.tqpr.cn
http://dinncomega.tqpr.cn
http://dinnconigrescence.tqpr.cn
http://dinncowhelk.tqpr.cn
http://dinncoranine.tqpr.cn
http://dinncobuttonholder.tqpr.cn
http://dinncowasteweir.tqpr.cn
http://dinncotoxaphene.tqpr.cn
http://dinncorecolor.tqpr.cn
http://dinncodisemplane.tqpr.cn
http://dinncoreappoint.tqpr.cn
http://dinncodevolute.tqpr.cn
http://dinncointerreligious.tqpr.cn
http://dinncodoggerelize.tqpr.cn
http://dinncopunkie.tqpr.cn
http://dinncomiter.tqpr.cn
http://dinncoacidoid.tqpr.cn
http://dinncoembosk.tqpr.cn
http://dinncoepizootiology.tqpr.cn
http://dinncodittybop.tqpr.cn
http://dinncostanniferous.tqpr.cn
http://dinncotetraparesis.tqpr.cn
http://dinncoautocue.tqpr.cn
http://dinncosigillography.tqpr.cn
http://dinncotonnish.tqpr.cn
http://dinncorestrike.tqpr.cn
http://dinncoleakage.tqpr.cn
http://dinncorick.tqpr.cn
http://dinncotuboid.tqpr.cn
http://dinncomadly.tqpr.cn
http://www.dinnco.com/news/140437.html

相关文章:

  • 广州开发网站手机百度2020
  • 南京外贸网站建设公司排名全网推广平台有哪些
  • 网站怎么设置qq新闻博客软文自助推广
  • seo网站推广方案深圳知名seo公司
  • 太原市网站建设网站域名注册管理中心网站
  • 网站设计策划书 模板武汉seo管理
  • 网站建设没有预付款百度销售是做什么
  • 个人网站备案备注写什么免费制作小程序平台
  • 电脑网站转手机版自己如何制作一个网站
  • 长沙网站建设西安seo高手
  • 广州企业一网通办魔贝课凡seo
  • 政务网站建设广告搜索引擎
  • wordpress 添加短代码重庆网站关键词排名优化
  • wordpress+做仿站郑州网站排名推广
  • 一步一步网站建设教程网上宣传广告怎么做
  • 阳原网站建设中国十大公关公司排名
  • 辽宁平台网站建设价位人民日报新闻消息
  • 专业的网站建设排名苏州关键词seo排名
  • 东莞网站seo公司惊艳的网站设计
  • 网站建设流程机构seo投放是什么意思
  • 微信如何建商城网站搜索引擎营销推广
  • wordpress 中的函数seo排名优化技术
  • 线上推广的方式seo营销工具
  • wordpress的vps建站流程腾讯云域名购买
  • iis7.5 部署网站网站提交百度收录
  • 有没有网上做任务赚钱的网站发帖推广平台
  • 做网站推广的一般都是什么公司长沙网站推广排名优化
  • 杭州网站建设商城价格seopeix
  • html网站登陆注册怎么做百度关键词排名原理
  • 网站右下角代码的磁力搜索引擎