chinese熟妇与小伙子mature
chinese熟妇与小伙子mature
2022澳门彩免费资料大全
聊聊 MySQL 中的游标

聊聊 MySQL 中的游标

什么是游标?

游标(cursor)是一个存储在MySQL做事器上的数据库查询, 它不是一条SELECT语句,而是被该语句检索出来的后果集。在存储了游 标之后,诈欺门径不错把柄需要转化或浏览其中的数据。

谛视:MySQL游标只可用于 存储流程(和函数)。

创建游标

在创建一个游标前,咱们需要先铲除游所在语法

1、界说游标

DECLARE 游标称号 CURSOR FOR SQL语句; 

2、翻开游标

OPEN 游标称号; 

3、取得后果

FETCH 游标称号 INTO 变量称号[,变量称号]; 

4、关闭游标

CLOSE 游标称号; 

咱们以Customers表来四肢示例

示例一

界说一个存储流程,调用的时分扩充内部的游标

CREATE PROCEDURE PROC1() BEGIN     -- 界说两个存放后果的变量     DECLARE NAME VARCHAR(20);     DECLARE ADDR VARCHAR(50);     -- 声明游标     DECLARE MY CURSOR FOR SELECT 姓名,地址 FROM customers;     -- 翻开游标     OPEN MY;     -- 取得后果     FETCH MY INTO NAME,ADDR;     -- 这里是为了泄露取得后果     SELECT NAME,ADDR;     -- 关闭游标     CLOSE MY;     END; 

咱们扩充完上头的存储流程后, 大量情侣网站就不错调用该存储流程了

CALL PROC1(); 

得到后果:

这里笃定有小伙伴兴趣,customers内外明明有7札纪录,为什么只泄露了1札纪录?

这是因为游所在变量只保留了customers表中的第一滑数据,淌若要稽查背面的数据,就需要轮回往下出动游标,2022澳门彩免费资料大全材干连接稽查。

示例二

界说一个存储流程,调用存储流程时,将表customers里的数据轮回写入新的表内部。

CREATE PROCEDURE PROC2() BEGIN     -- 界说两个存放后果的变量     DECLARE FLAG INT DEFAULT 0;      DECLARE NAME VARCHAR(20);     DECLARE ADDR VARCHAR(50);     -- 声明游标     DECLARE MY CURSOR FOR SELECT 姓名,地址 FROM customers;      DECLARE CONTINUE HANDLER FOR NOT FOUND SET FLAG=1;     -- 翻开游标     OPEN MY;     -- 轮回体部分     L1:LOOP     -- 取得后果     FETCH MY INTO NAME,ADDR;     IF FLAG=1 THEN        LEAVE L1;     END IF;     -- 这里是为了泄露取得后果     INSERT INTO cus VALUES(NAME,ADDR);     -- 关闭游标     END LOOP;  -- 死心轮回     CLOSE MY;     END; 

然后咱们扩充这个存储流程,并查询cus内外的数据

CALL PROC2();  SELECT * FROM cus; 

后果:

后果与customers里的一致,然则这些后果是轮回一条一条往下出动的流程中插入的,即这个轮回扩充了7次。 

以上即是游所在基本操作旨趣了,此外游所在轮回体还有WHILE,REPEAT等操作方式,他们的操作方式与LOOP近似,都是用来轮回扩充轮回体内部的实质,直到轮回死心。

 



友情链接:
  • 国产猛男猛女超爽免费视频
  • 24小时日本免费高清视频
  • 厨房里抱着岳丰满大屁股毛毛
  • 涂了春药被一群人伦
  • 亚洲第一无码精品一区
  • Powered by chinese熟妇与小伙子mature @2013-2022 RSS地图 HTML地图