schooldb库——utf8字符集——utf8_general_ci排序规则
先创建库,再去使用下列的DDL语句。
插入20万条数据
DDL
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT, -- 假设使用MySQL,且id为主键自增
createDate DATE NOT NULL, -- 创建日期
userName VARCHAR(100) NOT NULL, -- 用户名
phone VARCHAR(20), -- 电话号码
age INT, -- 年龄
sex ENUM('M', 'F', 'O'), -- 性别,M代表男,F代表女,O代表其他
introduce TEXT -- 介绍
);
DML
INSERT INTO student (createDate, userName, phone, age, sex, introduce)
VALUES
('2023-10-23', '张三', '13800138000', 20, 'M', '我是张三,喜欢学习。'),
('2023-10-22', '李四', '13900139000', 22, 'F', '我是李四,热爱运动。');
DQL
DELIMITER //
CREATE PROCEDURE InsertRandomStudents(num_students INT)
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i < num_students DO
INSERT INTO student (createDate, userName, phone, age, sex, introduce)
VALUES (
CURDATE() - INTERVAL FLOOR(RAND() * 365) DAY, -- 随机创建日期(过去一年内)
CONCAT('User', FLOOR(RAND() * 100000) + 1), -- 随机用户名(User1到User100000)
CONCAT('1', FLOOR(RAND() * 900000000) + 100000000), -- 随机电话号码(以1开头,10位数字)
FLOOR(RAND() * 100) % 100, -- 随机年龄(0到99岁)
ELT(1 + FLOOR(RAND() * 3), 'M', 'F', 'O'), -- 随机性别(M, F, O中的一个)
CONCAT('Introduction for ', FLOOR(RAND() * 100000) + 1) -- 随机介绍文本
);
SET i = i + 1;
END WHILE;
END //
DELIMITER ;
CALL InsertRandomStudents(200000);