MySql·BAIDU COMATE的运用

生成一个student表,要有id,createDate,userName,phone,age,sex,introduce,数据要求插入7条中文的数据,给出DDL与DML

DDL数据定义语言

CREATE TABLE student (
    id INT PRIMARY KEY AUTO_INCREMENT, -- 假设id是自增的主键
    createDate DATE,
    userName VARCHAR(100),
    phone VARCHAR(20),
    age INT,
    sex CHAR(1), -- 假设使用'M'代表男性,'F'代表女性
    introduce TEXT
);

DML数据操纵语言

INSERT INTO student (createDate, userName, phone, age, sex, introduce) VALUES
('2023-05-01', '张三', '13800138000', 20, 'M', '我是张三,喜欢读书。'),
('2023-05-02', '李四', '13800138001', 21, 'M', '我是李四,喜欢运动。'),
('2023-05-03', '王五', '13800138002', 22, 'F', '我是王五,喜欢音乐。'),
('2023-05-04', '赵六', '13800138003', 23, 'M', '我是赵六,喜欢旅行。'),
('2023-05-05', '孙七', '13800138004', 24, 'F', '我是孙七,喜欢画画。'),
('2023-05-06', '周八', '13800138005', 25, 'M', '我是周八,喜欢摄影。'),
('2023-05-07', '吴九', '13800138006', 26, 'F', '我是吴九,喜欢跳舞。');

任务1:插入20万条数据

DELIMITER //

CREATE PROCEDURE InsertStudents(IN num_students INT)
BEGIN
    DECLARE counter INT DEFAULT 0;
    DECLARE random_user_name VARCHAR(100);
    DECLARE random_phone VARCHAR(20);
    DECLARE random_age INT;
    DECLARE random_sex CHAR(1);
    DECLARE random_introduce TEXT;
    
    -- 设置随机种子,以便每次产生的随机数不同
    SET @@session.random_seed = UNIX_TIMESTAMP(NOW());
    
    WHILE counter < num_students DO
        -- 生成随机用户名(示例:使用现有的名字库或者随机字符串)
        SET random_user_name = CONCAT('User', FLOOR(RAND() * 1000000));
        
        -- 生成随机手机号
        SET random_phone = CONCAT(
            '1', -- 中国手机号以1开头
            FLOOR(RAND() * (9999999999 - 1000000000 + 1)) + 1000000000 -- 生成10位数字
        );
        
        -- 生成随机年龄(例如:18到30岁)
        SET random_age = FLOOR(RAND() * (30 - 18 + 1)) + 18;
        
        -- 随机性别(M或F)
        SET random_sex = IF(RAND() > 0.5, 'M', 'F');
        
        -- 生成随机介绍(或者可以使用预定义的文本数组)
        SET random_introduce = CONCAT('This is ', random_user_name, '\'s introduction.');
        
        -- 插入数据
        INSERT INTO student (createDate, userName, phone, age, sex, introduce)
        VALUES (
            CURDATE(), -- 使用当前日期
            random_user_name,
            random_phone,
            random_age,
            random_sex,
            random_introduce
        );
        
        -- 更新计数器
        SET counter = counter + 1;
    END WHILE;
END //

DELIMITER ;
CALL InsertStudents(200000);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值