MySQL 函数数据插入

发布于:2024-05-20 ⋅ 阅读:(148) ⋅ 点赞:(0)

DDL

CREATE TABLE schooldb (
    Id INT PRIMARY KEY AUTO_INCREMENT,
    createDate DATE,
    userName VARCHAR(255),
    phone VARCHAR(15),
    age INT,
    sex CHAR(2),
    introduce TEXT
);

DML

INSERT INTO schooldb (createDate, userName, phone, age, sex, introduce) VALUES
('2023-09-01', '张三', '13800138000', 18, '男', '热爱运动,性格开朗'),
('2023-09-02', '李四', '13900139000', 19, '女', '喜欢音乐,学习成绩优异'),
('2023-09-03', '王五', '13700137000', 20, '男', '擅长绘画,多次获奖'),
('2023-09-04', '赵六', '13600136000', 18, '女', '文静内向,喜欢阅读'),
('2023-09-05', '孙七', '13500135000', 19, '男', '热爱科技,熟悉多种编程语言'),
('2023-09-06', '周八', '13400134000', 20, '女', '舞蹈社团成员,多次参加演出'),
('2023-09-07', '吴九', '13300133000', 18, '男', '热爱篮球,校队主力');

DQL

DELIMITER //

CREATE PROCEDURE InsertRandomData()
BEGIN
    DECLARE i INT DEFAULT 0;
    WHILE i < 200000 DO
        INSERT INTO student	(createDate, userName, phone, age, sex, introduce)
        VALUES (
            -- 这里我们使用了一些MySQL的内置函数来生成随机数据
            CURDATE() - INTERVAL FLOOR(RAND() * 365) DAY, -- 随机创建日期(过去一年内)
            CONCAT('User', FLOOR(RAND() * 1000000)),       -- 随机用户名
            CONCAT('13', LPAD(FLOOR(RAND() * 89999999) + 10000000, 8, '0')), -- 随机电话号码
            FLOOR(RAND() * 10 + 18),                       -- 18到27之间的随机年龄
            IF(RAND() > 0.5, '男', '女'),                  -- 随机性别
            '这是一个随机介绍文本。'                       -- 固定或随机介绍文本
        );
        SET i = i + 1;
    END WHILE;
END //

DELIMITER ;


-- 调用存储过程来插入数据
CALL InsertRandomData();


网站公告

今日签到

点亮在社区的每一天
去签到