数据存取
用的某台电脑,同理或在广域网上用的,比如
游戏运营
公司的服务器,数据库也一样,通常都指的是
数据库软件
,比如,SQL
SERVER、ACCESS等等,一般作为服务器的电脑上根据实际的需求会选择安装不同数据库软件或者不安装,装了数据库软件后正常都会有与之配套的应用软件来操作数据库,而数据库就是用来存储相应的数据的!
一个存储过程既是一个系统的标准组件,也是一个可编程的函数,它在数据库中创建并保存,总体来说关系数据库系统中存在如下几大类型存储过程。
1.系统存储过程系统存储过程以sp_开头,用来进行系统的各项设定,取得系统的各项信息,管理系统的各项相关工作。
2.本地存储过程本地存储过程由用户创建,是为了完成某一特定功能的SQL语句集。事实上,一般所说的存储过程就是指本地存储过程。
3.临时存储过程临时存储过程分为本地临时存储过程、全局临时存储过程两种。
((1)本地临时存储过程。以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它。
(2)全局临时存储过程。以两个井字号(##)开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程。全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
4.远程存储过程在特定数据库中,远程存储过程是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
5.扩展存储过程扩展存储过程是用户使用外部程序语言编写的存储过程,扩展存储过程的名称通常以xp_开头。
存储过程是数据库存储的一个重要功能,但是MySQL在5.0版本以前并不支持存储过程,这使得MySQL在应用上大打折扣。MySQL5.0版本开始支持存储过程,这样既可以有效提高数据库的处理速度,同时也可以提高数据库编程的灵活性。存储过程的创建数据库中的存储过程可以看作是对数据库编程中面向对象方法的模拟,存储过程的开发语法也与面向对象类似,简单且容易掌握。
创建语法格式及相关案例
3.案例语句解释(1)存储过程的功能把user_id为2,4,6,8,10记录的score字段值修改为传入的参数值。
2)第1条语句“DELIMITER//”的含义((1)表示把MySQL分隔符修改为“//”,MySQL默认以分号“;”为分隔符。
(2)如果没有声明分隔符,编译器会把存储过程中的分号“;”当成SQL语句结束分隔符进行处理,则存储过程的编译过程会报错。
(3)要事先用DELIMITER关键字声明当前分隔符为“//”,这样MySQL才会将分号“;”当作存储过程中的代码,而不是语句MySQL中语句的结束分隔符。
3)第7条语句“DELIMITER;”的含义表示程序的最后把分隔符还原为分号“;”。
4)存储过程的参数((1)存储过程根据需要可能会有输入、输出、输入输出参数。
(2)本案例中有一个输入参数s,类型是int型。
(3)如果有多个参数,用逗号“,”分隔开。
5存储过程参数的开始与结束标识((1)开始使用BEGIN进行标识。
(2)结束使用END进行标识。存储过程在数据库中运算时自动生成各种执行方式,大大提高了对其运行时的执行速度。
用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。1.调用格式CALL+存储过程名+参数例如,CALLfirst_proc(100)存储过程first_proc在数据库服务器上的创建过程如图3−1所示。在调用执行存储过程first_proc前,需用第2章的user.sql脚本进行初始建表;建表成功后,则可执行调用存储过程first_proc,如图3−2所示。执行完毕后可以看到,user表中user_id为2、4、6、8、10记录的score字段值均变为100,如图
存储过程的创建
存储过程的调用
存储过程执行完后的数据表
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)