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

网站首页有哪些内容企业手机网站建设定制

网站首页有哪些内容,企业手机网站建设定制,滨海做网站的价格,重庆赛区竞赛网站建设一、概述 存储过程可以理解为一段 SQL 语句的集合#xff08;相当于 PHP 中的一个函数方法#xff0c;去实现业务逻辑#xff09;#xff0c;它们被事先编译好并且存储在数据库中。 调用存储过程与直接执行 SQL 语句的效果是相同的#xff0c;但是存储过程的一个好处是处理…一、概述 存储过程可以理解为一段 SQL 语句的集合相当于 PHP 中的一个函数方法去实现业务逻辑它们被事先编译好并且存储在数据库中。 调用存储过程与直接执行 SQL 语句的效果是相同的但是存储过程的一个好处是处理逻辑都封装在数据库端。 当我们调用存储过程的时候我们不需要了解其中的处理逻辑一旦处理逻辑发生变化只需要修改存储过程即可对调用它的程 序完全无影响。 调用存储过程和函数可以简化应用开发人员的很多工作减少数据在数据库和应用服务器之间的传输减少了和脚本语言的交互以及带宽可以提高数据处理的效率。 二、存储过程结构 create procedure 【存储过程名(参数列表)】 begin【存储过程体】 end call 存储过程名(参数列表) 三、使用示例 实例1、新建一张数据表并向这张数据表中添加 100 万条记录。 1新建数据表 CREATE TABLE test_table (id int(10) unsigned NOT NULL AUTO_INCREMENT,loop int(10) unsigned NOT NULL DEFAULT 0,name varchar(256) NOT NULL DEFAULT ,pen_name varchar(256) NOT NULL DEFAULT ,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;2新建存储过程 DROP PROCEDURE IF EXISTS insert_many_rows;CREATE PROCEDURE insert_many_rows (IN loopTime INT) BEGINDECLARE executedTime INT ;SET executedTime loopTime;while executedTime 0 DOINSERT INTO test_table(NULL, 0, sss, kkk);SET executedTime executedTime - 1;END WHILE; END;3呼叫存储过程 CALL insert_many_rows(1000000); 结果应该是新建的数据表中已经有了 100 万条记录。 实例2通过存储过程创建10个数据表分别为test_table_0 ~ test_table_9 1创建存储过程 DROP PROCEDURE IF EXISTS create_test_tables; CREATE PROCEDURE create_test_tables() BEGINDECLARE i INT;DECLARE tableName VARCHAR(30);DECLARE sqlText text;SET i 0;WHILE i 10 DOSET tableName CONCAT(test_table_ , i);SET sqlText CONCAT(CREATE TABLE , tableName , (id int(10) unsigned NOT NULL AUTO_INCREMENT,loop int(10) unsigned NOT NULL DEFAULT 0,name varchar(256) NOT NULL DEFAULT ,pen_name varchar(256) NOT NULL DEFAULT ,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT2001001 DEFAULT CHARSETutf8;);SET sqlText sqlText;PREPARE stmtFROMsqlText;EXECUTE stmt;DEALLOCATE PREPARE stmt;SET i i 1;END WHILE; END 2呼叫存储过程 CALL create_test_tables(); 四、分析 1、存储过程的参数类型 1IN 表示只是用来输入。 2OUT 表示只是用来输出。 3INOUT 可以用来输入也可以用作输出。 2、存储过程中的变量声明 通过 DECLARE 来声明一个局部变量该变量的作用域只是 begin....end 块中。 变量的声明可以添加默认值比如 DECLARE executedTime INT DEFAULT 0; 3、流程控制语句语法 if 的语法格式为 if 条件表达式 then 语句[elseif 条件表达式 then 语句] ....[else 语句] end ifcase 的语法格式 首先是第一种写法 case 表达式when 值 then 语句when 值 then 语句...[else 语句] end case 然后是第二种写法 casewhen 表达式 then 语句when 表达式 then 语句....[else 语句] end caseloop 循环 语法格式为 [标号:] loop循环语句 end loop [标号]while 语法 while a100 do循环语句 End whileRepeat        //游标SQL语句1UNTIL 条件表达式 END Repeat;LoopSQL语句所有的条件判断和跳出需要自己实现 End loopleave 语句用来从标注的流程构造中退出它通常和 begin...end 或循环一起使用 leave 标号;声明语句结束符可以自定义: DELIMITER [符合] delimiter $$4、存储过程中的数据类型 数值类型Int、float、double、decimal 日期类型timestamp、date、year 字符串char、varchar、text 五、存储过程优缺点 1、优点 1执行速度快。因为我们的每个 SQL 语句都需要经过编译然后再运行。但是存储过程都是直接编译好了之后直接运行即可。 2减少网络流量我们传输一个存储过程比我们传输大量的 SQL 语句的开销要小得多。 3提高系统安全性因为存储过程可以使用权限控制而且参数化的存储过程可以有效地防止 SQL 注入攻击。保证了其安全性。 4耦合性降低。当我们的表结构发生了调整或变动之后我们可以修改相应的存储过程我们的应用程序在一定程度上需要改动的地方就较小了。 5重用性强因为我们写好一个存储过程之后再次调用它只需要一个名称即可也就是”一次编写随处调用”,而且使用存储过程也可以让程序的模块化加强。 2、缺点 1可移植性差。因为存储过程是和数据库绑定的如果我们要更换数据库之类的操作可能很多地方都需要改动。 2修改不方便。因为对于存储过程而言我们并不能特别有效的调试它的一些 bug 可能发现的更晚一些增加了应用的危险性。 3优势不明显和赘余功能。对于小型 web 应用来说如果我们使用语句缓存发现编译 SQL 的开销并不大但是使用存储过程却需要检查权限一类的开销这些赘余功能也会在一定程度上拖累性能。 六、PHP 中使用存储过程 PHP 中也是可以使用存储过程的存储过程的使用也很简单。只要将存储过程的创建语句和call语句分别执行就可以了。 这里使用最简单的 pdo 调用方式如果在框架中为了保持代码的美观请使用框架自带的查询执行语句。   ?php declare(strict_types 1);// 注意创建存储过程和call存储过程要分开执行创建存储过程之后将创建存储过程部分注释掉然后打开call存储过程代码执行// 连接 pdo $dsn mysql:dbnametest;host127.0.0.1; $pdo new PDO($dsn,root,123456);# ------------------------------- 创建存储过程 -------------------------- // 创建存储过程语句赋值到变量 $sql DROP PROCEDURE IF EXISTS insert_many_rows_2; CREATE PROCEDURE insert_many_rows_2 (IN loopTime INT) BEGINDECLARE executedTime INT ;SET executedTime loopTime;while executedTime 0 DOINSERT INTO test_table(NULL, 0, \sss\, \kkk\);SET executedTime executedTime - 1;END WHILE; END;;// 执行 $stmt $pdo-query($sql); var_dump($stmt-fetchAll(2));#---------------------- call 存储过程 --------------------------/*$callSql CALL insert_many_rows(1000000);; $stmt $pdo-query($callSql); var_dump($stmt-fetchAll(2));*/ 七、总结 存储过程只做了解即可事实上很多公司都是禁止使用存储过程的主要是因为一旦使用存储过程新人接手将会非常困难并且难以调试和扩展而且没有可移植性。 何况存储过程能够解决的问题一般程序代码也是可以解决的因此在非必要情况下还是使用代码去实现而不是考虑去用存储过程。 原文链接https://www.haveyb.com/article/61
http://www.huolong8.cn/news/26060/

相关文章:

  • 企业建立一个网站步骤电脑公司网站设计
  • 开发网站的技术风险做网站麻烦么
  • 网站建设的作用免费 支付宝购物网站模版
  • 郑州 做网站网页的动态效果
  • 品牌网站建设切入点做网站都能用什么做
  • 做企业网站的尺寸是多少钱淘宝优惠券查询网站怎么做
  • 做网站公司关键词化外17网站一起做网店东莞
  • iis 显示网站建设中成都网站logo设计
  • 网站后角色管理权限怎么设置?百度账号购买1元40个
  • 阳江市建设路龙源学校网站外贸网站增加外链方法
  • 新浪微博 搭建网站wordpress 后台添加菜单
  • 正规网站开发流程网页单页设计
  • 电商在线设计网站个人网页制作成品免费下载
  • 山东网站排行网站运营模式
  • 网站源码安装教程太平洋手机官网
  • 网站建设时如何选择合适的服务器备案时网站服务内容
  • 网站改版流程如何做百度网站
  • 免费做文字图网站南京个人网站建设模板
  • 学会网站 建设连云港网站备案在哪
  • 如何选择坪山网站建设品牌营销策划公司
  • 国内创意网站案例国外wordpress模板下载
  • 公司网站建设款计什么科目福步外贸论坛网官网
  • 宜宾汽车网站建设广州招投标交易中心
  • 泰安网站seo产品外观设计网站
  • 网站建设管理经验做法新增网站推广
  • 网站加载效果怎么做的seo资讯推推蛙
  • 开封市住房和城乡建设局网站做软件跟做网站哪个难
  • 班级网站建设的范围网站建设的方法有哪些内容
  • 摄影网站设计图片wordpress桌面应用程序
  • 云南网站开发公司介绍网站设计与开发网站策划