700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql重新创建测试对象的SQL_MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据...

mysql重新创建测试对象的SQL_MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据...

时间:2020-04-10 14:16:00

相关推荐

mysql重新创建测试对象的SQL_MySQL_Sql_打怪升级_进阶篇_测试: SQL随机生成测试数据...

1.随机生成测试数据

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

2.测试所需环境准备

库名:userdatabase

表名:test_user_table

字段

需求

uname

6字符随机长度

ugender

性别 M/F (M代表男,F代表女)

utel

随机手机号

ubirth

随机出生日期(1980-)例如: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

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(‘-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 | -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 | -04-22 00:00:00 | 6 | S1eb96e2000c2 |

| 7 | klmnpq | M | 17705101254 | 1981-12-02 00:00:00 | 39 | K60b99c8a25d2 |

原文:/liych/p/13967236.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。