zoukankan      html  css  js  c++  java
  • MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据

    1.随机生成测试数据

    目标:创建一张表,插入随机的行数,生成测试所需的数据。

    2.测试所需环境准备

    库名:userdatabase

    表名:test_user_table

    字段 需求
    uname 6字符随机长度
    ugender 性别 M/F (M代表男,F代表女)
    utel 随机手机号
    ubirth 随机出生日期(1980-2020)例如:1996-01-02
    uage 根据出生日期算出来
    upassword 12位随机密码(第一位是大写,剩下的是随机数字字母组合)

    3.使用方式

    例如:插入数据100行 可以执行 call myp1_where(100);
    说明:正常登录到mysql中,执行下面这段SQL语句,会生成相应的库和表还有字段名字,SQL语句可以重复执行,每次执行会清空原表内的数据,生成新的数据(默认插入100行)执行插入行数请修改括号内的数字即可。

    CREATE DATABASE IF NOT EXISTS userdatabase;
    USE userdatabase;
    CREATE TABLE test_user_table (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    uname VARCHAR(64) NOT NULL ,
    ugender CHAR(1),
    utel CHAR(11) NOT NULL,
    ubirth DATETIME NOT NULL,
    uage TINYINT NOT NULL,
    upassword VARCHAR(32) NOT NULL
    )ENGINE = INNODB CHARSET utf8mb4;
    
    USE `userdatabase`;
    DROP PROCEDURE IF EXISTS `test_user_table`.`myp1_where`;
    
    TRUNCATE TABLE test_user_table;
    
    DELIMITER $$
    USE `test_user_table`$$
    CREATE  PROCEDURE `myp1_where`(IN num INT)
    BEGIN
    DECLARE str1 VARCHAR(64) DEFAULT 'abcdefghijklmnpqrstuvwxyz';
    DECLARE str2 VARCHAR(10) DEFAULT 'MF';
    DECLARE str3 VARCHAR(64) DEFAULT 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    DECLARE v_name,v_password,v_birth VARCHAR(64);
    DECLARE v_tel CHAR(11);
    DECLARE v_age TINYINT;
    DECLARE v_gender CHAR(1);
    DECLARE i INT DEFAULT 0;
    DECLARE str,str12 VARCHAR(64);
    
    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 CONCAT('1',30+FLOOR(RAND()*70),LPAD(FLOOR(RAND()*100000000),8,'0')) INTO v_tel;
    
    SELECT DATE(FROM_UNIXTIME(UNIX_TIMESTAMP('1970-01-01') +FLOOR(RAND() * (UNIX_TIMESTAMP('2020-11-14') - UNIX_TIMESTAMP('1970-01-01')+ 1))))  INTO v_birth;
    
    SELECT YEAR(NOW())-YEAR(v_birth) INTO v_age;
    #select 18+floor(rand()*12) into v_age;
    
    SELECT REPLACE(UUID(),'-','') INTO str;
    SELECT SUBSTR(str,FLOOR(RAND()*21+1),12) INTO str12;
    SELECT CONCAT(SUBSTR(str3,FLOOR(RAND()*26+1),1),str12) INTO v_password;
    
    INSERT INTO test_user_table(uname,ugender,utel,ubirth,uage,upassword) VALUES(v_name,v_gender,v_tel,v_birth,v_age,v_password);
    SET i=i+1;
    
    END WHILE ;
    END$$
    
    DELIMITER ;
    
    CALL myp1_where(100);
    
    SELECT * FROM test_user_table;
    

    数据如下:

    mysql> SELECT * FROM test_user_table;
    +-----+--------+---------+-------------+---------------------+------+---------------+
    | id  | uname  | ugender | utel        | ubirth              | uage | upassword     |
    +-----+--------+---------+-------------+---------------------+------+---------------+
    |   1 | fghijk | M       | 16082530768 | 2011-04-23 00:00:00 |    9 | M11eb96e2000c |
    |   2 | npqrst | F       | 16898658064 | 1985-02-06 00:00:00 |   35 | T211eb96e2000 |
    |   3 | bcdefg | M       | 19063733992 | 2000-10-04 00:00:00 |   20 | Tb81ccc25d211 |
    |   4 | hijklm | F       | 14291565933 | 1971-10-23 00:00:00 |   49 | B5d211eb96e20 |
    |   5 | tuvwxy | F       | 19821642349 | 1977-05-17 00:00:00 |   43 | Y0b8e19725d21 |
    |   6 | jklmnp | F       | 16789746817 | 2014-04-22 00:00:00 |    6 | S1eb96e2000c2 |
    |   7 | klmnpq | M       | 17705101254 | 1981-12-02 00:00:00 |   39 | K60b99c8a25d2 |
    
  • 相关阅读:
    VysorPro助手
    Play 2D games on Pixel running Android Nougat (N7.1.2) with Daydream View VR headset
    Play 2D games on Nexus 6P running Android N7.1.1 with Daydream View VR headset
    Native SBS for Android
    ADB和Fastboot最新版的谷歌官方下载链接
    How do I install Daydream on my phone?
    Daydream Controller手柄数据的解析
    蓝牙BLE传输性能及延迟分析
    VR(虚拟现实)开发资源汇总
    Android(Java)控制GPIO的方法及耗时分析
  • 原文地址:https://www.cnblogs.com/liych/p/13967236.html
Copyright © 2011-2022 走看看