DDL
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT, -- 自增ID作为主键
createDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, -- 记录创建时间,默认为当前时间
userName VARCHAR(255) NOT NULL, -- 用户名,不能为空
phone VARCHAR(20), -- 电话号码,可根据实际需要调整长度
aage INT, -- 假设aage是某种特定年龄信息,使用整数类型
sex ENUM('M', 'F', 'O') NOT NULL, -- 性别,枚举类型,可根据需要调整选项
introduce TEXT -- 介绍,文本类型,可存储长文本
);
存储过程-函数
DELIMITER //
CREATE PROCEDURE AddStudentData()
BEGIN
DECLARE i INT DEFAULT 0; -- 循环计数器
DECLARE v_userName VARCHAR(255); -- 用户名变量
DECLARE v_phone VARCHAR(20); -- 电话号码变量
DECLARE v_age INT; -- 年龄变量
DECLARE v_sex VARCHAR(10); -- 性别变量
DECLARE v_introduce TEXT; -- 介绍变量
-- 循环添加20万条数据
WHILE i < 200000 DO
-- 随机生成用户名(示例:User12345)
SET v_userName = CONCAT('User', FLOOR(RAND() * 100000) + 1);
-- 随机生成电话号码(示例:13800138000)
SET v_phone = CONCAT('138', LPAD(FLOOR(RAND() * 100000000). 7, '0'));
-- 随机生成年龄(范围:18-30)
SET v_age = FLOOR(RAND() * (30 - 18 + 1)) + 18;
-- 随机分配性别(男或女)
SET v_sex = IF(RAND() > 0.5, '男', '女');
-- 生成介绍文本(示例:这是用户User12345的介绍)
SET v_introduce = CONCAT('这是用户', v_userName, '的介绍');
-- 插入数据到student表
INSERT INTO student (userName, phone, age, sex, introduce)
VALUES (v_userName, v_phone, v_age, v_sex, v_introduce);
-- 更新计数器
SET i = i + 1;
END WHILE;
END //
DELIMITER ;