写一段代码,在表Students_×××中自动产生100条记录,其中女生约占30%。数据库
时间: 2024-03-16 20:46:02 浏览: 61
School_数据库资源_数据库表_
5星 · 资源好评率100%
这里提供一个 MySQL 数据库中随机生成学生信息的示例代码,其中女生数量约占总数的30%:
```sql
-- 创建一个表用于存储学生信息
CREATE TABLE Students_xxx (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
gender ENUM('M', 'F'),
age INT,
grade VARCHAR(10)
);
-- 插入100条学生信息,其中女生数量约占总数的30%
INSERT INTO Students_xxx (name, gender, age, grade)
SELECT
CONCAT('Student_', LPAD(num, 3, '0')) AS name,
IF(RAND() < 0.3, 'F', 'M') AS gender,
FLOOR(RAND() * 6 + 15) AS age,
CONCAT('Grade_', FLOOR(RAND() * 4 + 1)) AS grade,
@num := @num + 1
FROM
(SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) a,
(SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) b,
(SELECT @num := 1) c
LIMIT 100;
```
该代码使用了 MySQL 中的 INSERT INTO SELECT 语句,其中通过 IF(RAND() < 0.3, 'F', 'M') 随机生成学生的性别,F 代表女性,M 代表男性。通过 FLOOR(RAND() * 6 + 15) 随机生成学生的年龄,范围在 15 到 20 岁之间。通过 CONCAT('Grade_', FLOOR(RAND() * 4 + 1)) 随机生成学生的年级,年级范围在 1 到 4 年级之间。最后通过一个三重循环来生成 100 条学生信息。
阅读全文