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

山西科技网站建设厦门网站制作全程服务

山西科技网站建设,厦门网站制作全程服务,搭建网站免费,黑龙江省建设安全监督网站MySQL—存储过程与存储函数的相关概念 存储函数和存储过程的主要区别#xff1a; 存储函数一定会有返回值的存储过程不一定有返回值 存储过程和函数能后将复杂的SQL逻辑封装在一起#xff0c;应用程序无需关注存储过程和函数内部复杂的SQL逻辑#xff0c;而只需要简单地调…MySQL—存储过程与存储函数的相关概念 存储函数和存储过程的主要区别 存储函数一定会有返回值的存储过程不一定有返回值 存储过程和函数能后将复杂的SQL逻辑封装在一起应用程序无需关注存储过程和函数内部复杂的SQL逻辑而只需要简单地调用存储过程和函数即可 存储过程 一组预先编译的SQL语句的封装 执行过程执行过程预先存储在MySQL服务器上需要执行的时候客户端只需要向服务器发出调用存储过程的命令服务器端就可以把预先存储好的这一系列SQL语句全部执行 简化操作提高了SQL语句的重用性减少了开发程序员的压力减少操作过程中的失误提高效率减少网路传输量客户端不需要将所有的SQL语句通过网络发给服务器减少SQL语句暴露在网上的风险提高数据查询的安全性 与视图函数的对比 视图是虚拟表通常不对底层数据表直接操作 存储过程程序化的SQL可以直接操作底层数据表相比于面向集合的操作方式能够实现一些更复杂的数据处理 相较于函数存储过程没有返回值 分类 没有参数无参数无返回仅仅带有IN 类型 有参数无返回仅仅带OUT类型无参数有返回即带IN又带OUT(有参数有返回)带INOUT(有参数有返回) 创建存储过程 DELIMITER $CREATE PROCEDURE 存储过程名 (IN|OUT|INOUT 参数名 参数类型,...) [characteristics] BEGIN 存储过程体 END $DELIMITER ;DELIMITER $ CREATE PROCEDURE select_all_data() BEGINSELECT *FROM employees; END $DELIMITER ;调用存储过程 CALL select_all_data();无参数无返回值 DELIMITER // CREATE PROCEDURE avg_employee_salary() BEGIN SELECT AVG(salary) FROM emp; END // DELIMITER ;CALL avg_employee_salary();无参数有返回值 DELIMITER // CREATE PROCEDURE show_min_salart(OUT ms DOUBLE) BEGIN SELECT MIN(salary) INTO msFROM emp; END // DELIMITER ;CALL show_min_salart(ms);SELECT ms;有参数无返回值 DELIMITER // CREATE PROCEDURE show_someone_salary(IN empname VARCHAR(20)) BEGIN SELECT salaryFROM empWHERE last_nameempname; END // DELIMITER ;CALL show_someone_salary(Abel);SET empnameAbel; CALL show_someone_salary(empname)有参数有返回值 DELIMITER // CREATE PROCEDURE show_someone_salary2(IN empname VARCHAR(20),OUT empsalary DECIMAL(10,2)) BEGIN SELECT salary INTO empsalaryFROM empWHERE last_nameempname; END // DELIMITER ;SET empnameAbel; CALL show_someone_salary2(empname,empsalary);SELECT empsalary;带INOUT DELIMITER // CREATE PROCEDURE show_mgr_name(INOUT empname VARCHAR(25)) BEGIN SELECT last_name FROM emp Where employee_id (SELECT manager_id FROM empWHERE last_nameempname ); END // DELIMITER ;SET empnameAbel; CALL show_mgr_name(empname); SELECT empname;如何调试 通过SELECT语句把程序执行的中间结果查询出来从而调试一个SQL语句的正确性。调试成功之后把SELECT语句后移到下一个SQL语句逐步推进查询下一个 SQL语句 存储函数 MySQL允许用户自定义函数自定义好了之后调用方式与调用MySQL预定义的系统函数一样 创建存储函数 CREATE FUNCTION 函数名参数名 参数类型 RETURUNS 返回值类型 [characteristics] BEGIN 函数体 #函数体中肯定有RETURN语句 END参数类型FUNCTION 中总是默认为IN参数RETURNS type 表示函数返回数据的类型对于函数而言是强制的characteristics 表示创建函数时指定的对函数的约束函数题可以用BEGIN … END表示SQL代码的开始和结束。如果函数体只有一条语句则可以省略BEGIN … END 调用存储函数 SELECT 函数名实参列表练习一 DELIMITER //CREATE FUNCTION email_by_name() RETURNS VARCHAR(25) BEGIN RETURN (SELECT emailFROM empWHERE last_nameAbel ); END // DELIMITER ;SELECT email_by_name();练习2 DELIMITER //CREATE FUNCTION email_by_id(emp_id INT) RETURNS VARCHAR(25) BEGIN RETURN (SELECT emailFROM empWHERE employee_idemp_id ); END // DELIMITER ;SELECT email_by_id(101);SET emp_id102; SELECT email_by_id(emp_id);存储函数与存储过程的对比 存储过程 PEOCEDURE 存储函数 FUNCTION调用语法 CALL 存储过程 SELECT 存储函数存储过程返回值可以有0个或对各 存储函数返回值只有一个存储过程一般用于更新操作 存储函数一般用于查询结果为一个值并返回存储函数可以放在查询语句中使用存储过程则不行存储过程功能更为强大包括能够执行对表的操作创建表删除表和事务操作这些功能是存储函数并不具备的 存储过程和函数的查看、修改、删除 查看 使用SHOW CREATE 语句 查看创建信息 SHOW CREATE PROCEDURE show_mgr_name\G; SHOW CREATE FUNCTION email_by_id\G;使用SHOW STATUS 语句查看存储过程和函数的状态信息 SHOW PROCEDURE STATUS; SHOW PROCEDURE STATUS LIKE show_mgr_name ; SHOW FUNCTION STATUS LIKE email_by_name ;从information_schema.Routines表中查看存储过程和函数的信息 SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_NAMEemail_by_id AND ROUTINE_TYPEFUNCTION;SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_NAMEshow_min_salart AND ROUTINE_TYPEPROCEDURE;修改存储过程与函数 修改存储过程或函数不影响存储过程或函数功能只是修改相关特征使用ALTER语句实现 ALTER PROCEDURE|FUNCTION 存储过程或函数名 [characteristic ...]删除存储过程或函数 DROP PROCEDURE|FUNCTION [IF EXISTS] 存储过程或函数名
http://www.w-s-a.com/news/466889/

相关文章:

  • php投资理财企业网站模板网站呼叫中心 建设工期
  • 查数据的权威网站silverlight 做的网站
  • 网站开发外包网站贵阳网站建设 网站制作
  • 官方微网站西安景观设计公司排行
  • 广州学做网站视频代做网站
  • 沈阳公司建站seo课程培训班
  • 杭州做微信网站软件公司网站建设毕业设计中期进度报告
  • 怎么做谷歌这样的网站如何建立一个网站放视频
  • 园区网站建设调研报告北京朝阳区哪里有网站开发
  • 网站角色权限wordpress 优化版
  • 购物网站ppt怎么做网络公司注册多少钱
  • 学做衣服上什么网站好贴吧高级搜索
  • 贵州 跨境电商网站建设做淘宝店铺有哪些好的网站
  • 广州正规网站制作公司网站搭建公司
  • ui设计零基础好学吗珠海网站建设优化推广
  • 网站开发多少费用火车头采集wordpress发布时间
  • 有没有做皮艺的网站教育培训网站建设ppt
  • 建设外贸商城网站制作如何建设景区旅游网站
  • 网站建设服务的具体条件怎么建设一个响应式网站
  • 做flash的网站wordpress设置前台投稿
  • 商务网站开发文档迅雷资源做下载网站
  • 无极磁铁网站如何把地图放到自己做的网站上
  • 青浦赵巷网站建设公司网站开发需求文档
  • 苏州网站建设的公司哪家好无锡网站制作那些
  • 装饰公司网站模板科技成果鉴定机构
  • 给公司做的东西放到私人网站上十堰为企业做网站的单位
  • 手机网站建设价钱手机自己做网站
  • 网站建设属于哪种公司电子商务查询网站
  • 工程建设标准强制性条文最新版本网站关键词排名优化应该怎么做
  • 网站网页设计内容品牌高端网站建设公司