使用baidu comate创建代码

1.DDL

问题:请帮我创建一个student要求有id,createDate,userName,age,sex,introduce,要返回给我DDL语句。

CREATE TABLE student (
  id INT PRIMARY KEY,
  createDate DATE,
  userName VARCHAR(50),
  age INT,
  sex CHAR(1),
  introduce TEXT
);

2.插入20万条DML

问题:根据DDL帮我生成一个可以添加20万条数据的存储过程

DELIMITER //

CREATE PROCEDURE InsertRandomStudents()
BEGIN
    DECLARE i INT DEFAULT 0;
    DECLARE rnd_id INT;
    DECLARE rnd_createDate DATE;
    DECLARE rnd_userName VARCHAR(50);
    DECLARE rnd_age INT;
    DECLARE rnd_sex CHAR(1);
    DECLARE rnd_introduce TEXT;
    
    WHILE i < 200000 DO
        -- 生成随机ID(根据实际情况,您可能需要确保ID的唯一性或使用自增ID)
        SET rnd_id = FLOOR(RAND() * 1000000); -- 假设ID是一个1到999999之间的随机数
        
        -- 生成随机创建日期
        SET rnd_createDate = CURDATE() - INTERVAL FLOOR(RAND() * 3650) DAY; -- 随机过去0到3650天的日期
        
        -- 生成随机用户名
        SET rnd_userName = CONCAT('User', FLOOR(RAND() * 1000000)); -- 示例用户名,您可以根据需要调整
        
        -- 生成随机年龄
        SET rnd_age = FLOOR(RAND() * 50) + 5; -- 5到55岁之间的随机年龄
        
        -- 生成随机性别
        SET rnd_sex = IF(RAND() > 0.5, 'M', 'F'); -- 随机分配性别
        
        -- 生成随机介绍(为简化,这里只使用简单的随机文本)
        SET rnd_introduce = CONCAT('Introduction for ', rnd_userName); -- 示例介绍文本
        
        -- 插入数据
        INSERT INTO student (id, createDate, userName, age, sex, introduce) 
        VALUES (rnd_id, rnd_createDate, rnd_userName, rnd_age, rnd_sex, rnd_introduce);
        
        -- 更新计数器
        SET i = i + 1;
    END WHILE;
END //

DELIMITER ;


CALL InsertRandomStudents();

3.if判断如何使用

问题:根据DDL生成一个添加数据的存储过程,要求输入2个参数userName与introduce,判断不允许传入空值,其他数据随机写入。以及userName不允许使用周吴郑王开头的名称。

DELIMITER //

CREATE PROCEDURE InsertStudentData(IN p_userName VARCHAR(50), IN p_introduce TEXT)
BEGIN
    -- 检查userName和introduce是否为空
    IF p_userName IS NULL OR p_introduce IS NULL THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'userName and introduce cannot be null';
    END IF;

    -- 检查userName是否以周、吴、郑、王开头
    IF LEFT(p_userName, 1) = '周' OR LEFT(p_userName, 1) = '吴' OR 
       LEFT(p_userName, 1) = '郑' OR LEFT(p_userName, 1) = '王' THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'userName cannot start with 周, 吴, 郑, or 王';
    END IF;

    -- 随机生成其他数据
    DECLARE rnd_id INT;
    DECLARE rnd_createDate DATE;
    DECLARE rnd_age INT;
    DECLARE rnd_sex CHAR(1);

    -- 生成随机ID(这里假设ID是一个随机数,您可能需要根据实际情况调整)
    SET rnd_id = FLOOR(RAND() * 100000000) + 1; -- 假设ID为1到100000000之间的随机数

    -- 生成随机创建日期
    SET rnd_createDate = CURDATE() - INTERVAL FLOOR(RAND() * 3650) DAY; -- 随机过去0到3650天的日期

    -- 生成随机年龄
    SET rnd_age = FLOOR(RAND() * 50) + 5; -- 5到55岁之间的随机年龄

    -- 生成随机性别
    SET rnd_sex = IF(RAND() > 0.5, 'M', 'F'); -- 随机分配性别

    -- 插入数据
    INSERT INTO student (id, createDate, userName, age, sex, introduce) 
    VALUES (rnd_id, rnd_createDate, p_userName, rnd_age, rnd_sex, p_introduce);
END //

DELIMITER ;


CALL InsertStudentData('your_user_name', 'your_introduction_text');

4.case语句如何使用

问题:帮我生成一条通过case语句查询的sql,要求如果性别是F输出姑娘,如果性别是M输出大老爷们,如果性别是O输出泰国妹妹。

SELECT
  id,
  createDate,
  userName,
  age,
  sex,
  introduce,
  CASE sex
    WHEN 'F' THEN '姑娘'
    WHEN 'M' THEN '大老爷们'
    WHEN 'O' THEN '泰国妹妹'
    ELSE '未知性别' -- 可选,用于处理除F、M、O以外的其他情况
  END AS sex_description
FROM
  student;

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值