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

自己怎么做彩票投注网站手游推广平台有哪些

自己怎么做彩票投注网站,手游推广平台有哪些,武汉模板建站平台哪家好,浙江省建筑信息港二八佳人体似酥,腰悬利剑斩愚夫,虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了MySQL流程控制(二十八) ,如果没有看过,请观看上一章 一. 游标 一.一 什么是游标 虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键…

二八佳人体似酥,腰悬利剑斩愚夫,虽然不见人头落,暗里教君骨髓枯。

上一章简单介绍了MySQL流程控制(二十八) ,如果没有看过,请观看上一章

一. 游标

一.一 什么是游标

虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键字 LIMIT 返回一条记录,但是,却无法在结果集中像指针一样,向前定位一条记录、向后定位一条记录,或者是随意定位到某一条记录,并对记录的数据进行处理。

这个时候,就可以用到游标。游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构。游标让 SQL 这种面向集合的语言有了面向过程开发的能力。

在 SQL 中,游标是一种临时的数据库对象,可以指向存储在数据库表中的数据行指针。这里游标充当了指针的作用,我们可以通过操作游标来对数据行进行操作。

MySQL中游标可以在存储过程和函数中使用。

比如,我们查询了 employees 数据表中工资高于15000的员工都有哪些:

select * from user;

image-20230807194835384

这里我们就可以通过游标来操作数据行,如图所示此时游标所在的行是“108”的记录,我们也可以在结果集上滚动游标,指向结果集中的任意一行。

一.二 使用游标步骤

游标必须在声明处理程序之前被声明,并且变量和条件还必须在声明游标或处理程序之前被声明。

如果我们想要使用游标,一般需要经历四个步骤。不同的 DBMS 中,使用游标的语法可能略有不同。

第一步,声明游标

在MySQL中,使用DECLARE关键字来声明游标,其语法的基本形式如下:

DECLARE cursor_name CURSOR FOR select_statement; 

这个语法适用于 MySQL,SQL Server,DB2 和 MariaDB。

要使用 SELECT 语句来获取数据结果集,而此时还没有开始遍历数据,这里 select_statement 代表的是 SELECT 语句,返回一个用于创建游标的结果集。

比如:

DECLARE cur_emp CURSOR FOR 
SELECT age FROM user;
DECLARE cursor_fruit CURSOR FOR 
SELECT age FROM user;

第二步,打开游标

打开游标的语法如下:

OPEN cursor_name

当我们定义好游标之后,如果想要使用游标,必须先打开游标。打开游标的时候 SELECT 语句的查询结果集就会送到游标工作区,为后面游标的逐条读取结果集中的记录做准备。

OPEN cur_emp ;

第三步,使用游标(从游标中取得数据)

语法如下:

FETCH cursor_name INTO var_name [, var_name] ...

这句的作用是使用 cursor_name 这个游标来读取当前行,并且将数据保存到 var_name 这个变量中,游标指针指到下一行。如果游标读取的数据行有多个列名,则在 INTO 关键字后面赋值给多个变量名即可。

注意:var_name必须在声明游标之前就定义好。

FETCH cur_emp INTO emp_age;

注意:游标的查询结果集中的字段数,必须跟 INTO 后面的变量数一致,否则,在存储过程执行的时候,MySQL 会提示错误。

第四步,关闭游标

CLOSE cursor_name

有 OPEN 就会有 CLOSE,也就是打开和关闭游标。当我们使用完游标后需要关闭掉该游标。因为游标会占用系统资源,如果不及时关闭,游标会一直保持到存储过程结束,影响系统运行的效率。而关闭游标的操作,会释放游标占用的系统资源。

关闭游标之后,我们就不能再检索查询结果中的数据行,如果需要检索只能再次打开游标。

CLOSE cur_emp;

一.三 游标的例子

使用游标统计每个性别的总年龄

DELIMITER //
CREATEPROCEDURE `demo`.`c1`(OUT sum_age int ,IN s_sex varchar(50))-- 存储过程体BEGINdeclare t_age int default 0;declare t_sex varchar(20) default '';-- 创建结束标志变量DECLARE done INT DEFAULT 0 ;-- 1. 定义游标declare cur_emp cursor for select sex,age from user ;-- 指定游标循环结束时的返回值DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE ;-- 设置年龄为0 set sum_age = 0;-- 2. 打开游标open cur_emp;-- 3. 循环使用游标read_loop: LOOPfetch cur_emp into t_sex,t_age ;if done then leave read_loop;end if;-- 没有结束的话,进行处理,即主要的业务逻辑if t_sex =s_sex then set sum_age = sum_age + t_age;end if;-- 结束游标end LOOP;-- 4. 关闭游标close cur_emp;END //
DELIMITER ;

调用游标:

-- 调用游标set @sum_age = 0;call c1(@sum_age, '男');-- 62 
select @sum_age;call c1(@sum_age, '女');-- 60 
select @sum_age;

游标设置数据更新

DELIMITER //
CREATEPROCEDURE `demo`.`c2`(OUT sum_age int ,IN s_sex varchar(50))-- 存储过程体BEGINdeclare t_age int default 0;declare t_sex varchar(20) default '';declare t_id int default 0;-- 创建结束标志变量DECLARE done INT DEFAULT 0 ;-- 1. 定义游标declare cur_emp cursor for select sex,age,id from user ;-- 指定游标循环结束时的返回值DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE ;-- 设置年龄为0 set sum_age = 0;-- 2. 打开游标open cur_emp;-- 3. 循环使用游标read_loop: LOOPfetch cur_emp into t_sex,t_age,t_id ;if done then leave read_loop;end if;-- 没有结束的话,进行处理if t_sex =s_sex then update user set name = concat(t_sex,t_age) where id = t_id;set sum_age = sum_age + t_age;end if;-- 结束游标end LOOP;-- 4. 关闭游标close cur_emp;END //
DELIMITER ;

调用:

image-20230807200852447

游标是 MySQL 的一个重要的功能,为逐条读取结果集中的数据,提供了完美的解决方案。跟在应用层面实现相同的功能相比,游标可以在存储程序中使用,效率高,程序也更加简洁。

但同时也会带来一些性能问题,比如在使用游标的过程中,会对数据行进行加锁,这样在业务并发量大的时候,不仅会影响业务之间的效率,还会消耗系统资源,造成内存不足,这是因为游标是在内存中进行的处理。

建议:养成用完之后就关闭的习惯,这样才能提高系统的整体效率。



谢谢!!!

http://www.ritt.cn/news/11579.html

相关文章:

  • 湛江做网站seo的谷歌浏览器官网下载手机版
  • 武汉网站开发jw100泰安seo培训
  • 开办公司流程及相关费用南昌百度搜索排名优化
  • 沙漠风网站建设6贺州seo
  • 网站集约化建设汇报百度网页怎么制作
  • django 做网站 原理怎样做网络推广
  • 建设网站设计论文范文营销网络营销
  • 网站建设的培训心得群推广
  • 郑州公司代办注册seo和sem的联系
  • 做地图分析的软件网站免费建网站
  • 西安网站 技术支持牛商网店铺推广方式有哪些
  • 广州宝安建网站网络平台销售
  • 比较大的建站公司全网营销骗局揭秘
  • 网站建设 人和商圈广州关于进一步优化疫情防控措施
  • 怎么做好网站方式推广站长seo
  • 宁夏建设职业技术学院网站宁德seo培训
  • 网页设计与网站开发体育热点新闻
  • 深圳做自适应网站公司网络广告投放公司
  • 做公益网站的原因怎么建立自己的网站
  • 做的最好的美女视频网站有哪些郑州seo顾问外包
  • 做手机网站价格挖掘爱站网
  • 用网站的源代码怎么做网站搜索风云榜入口
  • 自己建网站开网店网络营销的收获与体会
  • 台州哪里做网站企业网络推广技巧
  • 手机网站建设是什么成都网站建设公司排名
  • 网页设计与制作课程教学应用案例百度seo服务方案
  • 怎么利用招聘网站做薪酬调查网站搜索引擎优化工具
  • 做p2p网站 人员配置企业seo顾问服务阿亮
  • 外贸做网站用什么bt最佳磁力搜索引擎吧
  • 做ui的哪个威客网站比较好经营管理培训课程