zoukankan      html  css  js  c++  java
  • MySQL_Sql_打怪升级_进阶篇_测试: 游标应用

    1.创建数据库和表

    CREATE DATABASE IF NOT EXISTS test;
    use test;
    create table t4 (
    id int not null primary key auto_increment,
    sname varchar(64) not null ,
    age tinyint not null,
    gender char(1)
    )engine = innodb charset utf8mb4;
    

    2.添加测试数据

    DROP procedure IF EXISTS `test`.`p_where`;
    DELIMITER $$
    USE `test`$$
    CREATE  PROCEDURE `p_where`(in num int)
    BEGIN
    declare str1 varchar(64) default 'abcdefghijklmnpqrstuvwxyz';
    declare str2 varchar(10) default 'MF';
    declare v_name varchar(64);
    declare v_age int;
    declare v_gender char(1);
    declare i int default 0;
    while i<num do
    	select substr(str1,1+floor(rand()*20),6) into v_name;
    	select substr(str2,1+floor(rand()*2),1) into v_gender;
    	select 18+floor(rand()*12) into v_age;
    	insert into t4(sname,age,gender) values(v_name,v_age,v_gender);
    	set i=i+1;
    end while ;
    END$$
    DELIMITER ;
    call p_where(100);
    select * from t4;
    

    3.游标测试应用

    CREATE  PROCEDURE `p_cur`()
    BEGIN
    declare v_id int;
    declare v_sname varchar(64);
    declare v_age tinyint;
    declare v_gender char(1);
    declare i int default 1;
    declare cur cursor for select id,sname,age,gender from t4 where id<5;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET i = 0;
    open cur;
    fetch cur into v_id,v_sname,v_age,v_gender;
    while i=1
    do 
    select v_id,v_sname,v_age,v_gender;
    fetch cur into v_id,v_sname,v_age,v_gender;
    end  while;
    close cur;
    END
    

    4.测试结果

    mysql> call p_cur();
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:    18
    Current database: test
    
    +------+---------+-------+----------+
    | v_id | v_sname | v_age | v_gender |
    +------+---------+-------+----------+
    |    1 | defghi  |    19 | M        |
    +------+---------+-------+----------+
    1 row in set (0.07 sec)
    
    +------+---------+-------+----------+
    | v_id | v_sname | v_age | v_gender |
    +------+---------+-------+----------+
    |    2 | fghijk  |    24 | F        |
    +------+---------+-------+----------+
    1 row in set (0.07 sec)
    
    +------+---------+-------+----------+
    | v_id | v_sname | v_age | v_gender |
    +------+---------+-------+----------+
    |    3 | fghijk  |    21 | F        |
    +------+---------+-------+----------+
    1 row in set (0.07 sec)
    
    +------+---------+-------+----------+
    | v_id | v_sname | v_age | v_gender |
    +------+---------+-------+----------+
    |    4 | pqrstu  |    26 | F        |
    +------+---------+-------+----------+
    1 row in set (0.07 sec)
    
    Query OK, 0 rows affected (0.07 sec)
    
    
  • 相关阅读:
    JXOI2018简要题解
    TJOI2018简要题解
    BJOI2018简要题解
    【题解】Luogu P4091 [HEOI2016/TJOI2016]求和
    【题解】Luogu P5301 [GXOI/GZOI2019]宝牌一大堆
    【题解】Luogu P5291 [十二省联考2019]希望
    【题解】Luogu P3349 [ZJOI2016]小星星
    【题解】Luogu P5327 [ZJOI2019]语言
    【题解】Luogu P5319 [BJOI2019]奥术神杖
    【题解】Luogu P5471 [NOI2019]弹跳
  • 原文地址:https://www.cnblogs.com/liych/p/13986545.html
Copyright © 2011-2022 走看看