mysql学生表中统计学生中各个年龄段的人数 ,按照 18岁(不包含18)以下, 18到30岁(包含18包含30),30岁以上 来统计,学生表有学号姓名出生日期
时间: 2023-06-09 19:05:17 浏览: 133
好的,根据您提供的信息,可以使用如下的 SQL 语句来实现您的要求:
SELECT
SUM(CASE WHEN TIMESTAMPDIFF(YEAR,birthdate,CURDATE())<18 THEN 1 ELSE 0 END) AS age_under_18_count,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR,birthdate,CURDATE())>=18 AND TIMESTAMPDIFF(YEAR,birthdate,CURDATE())<=30 THEN 1 ELSE 0 END) AS age_between_18_and_30_count,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR,birthdate,CURDATE())>30 THEN 1 ELSE 0 END) AS age_above_30_count
FROM
student;
该语句使用了三个 CASE WHEN 子句,分别判断学生的年龄属于哪个范围,并将相应的计数器加一。最后使用了 SUM 函数对所有学生进行了统计,输出三个计数值,即不到 18 岁的学生数、18 岁至 30 岁之间的学生数和超过 30 岁的学生数。希望这对您有所帮助。
相关问题
写一段运用到jdbc的学生管理系统代码,包括学生姓名,年龄和随机的考试成绩
以下是一个简单的学生管理系统代码,使用 JDBC 连接数据库进行数据的插入、查询和展示。
```java
import java.sql.*;
public class StudentManagementSystem {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 连接 MySQL 数据库
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/school";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
// 创建 student 表
String createTableSql = "CREATE TABLE IF NOT EXISTS student (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT, score FLOAT)";
stmt.executeUpdate(createTableSql);
// 插入学生数据
String insertSql = "INSERT INTO student (name, age, score) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(insertSql);
String[] names = {"Alice", "Bob", "Charlie", "David"};
int[] ages = {20, 21, 22, 23};
for (int i = 0; i < 4; i++) {
ps.setString(1, names[i]);
ps.setInt(2, ages[i]);
ps.setFloat(3, (float) (Math.random() * 100));
ps.executeUpdate();
}
// 查询所有学生数据
String selectSql = "SELECT * FROM student";
rs = stmt.executeQuery(selectSql);
// 展示查询结果
System.out.println("学生列表:");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
float score = rs.getFloat("score");
System.out.printf("%d\t%s\t%d\t%.2f\n", id, name, age, score);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
```
在该示例代码中,我们首先连接到 MySQL 数据库,然后创建一个名为 `student` 的表,在表中插入学生数据,最后查询并展示所有学生的信息。其中,学生表包含四个字段:id、name、age 和 score,分别表示学生的编号、姓名、年龄和成绩。通过 JDBC API,我们可以方便地进行 SQL 操作,包括数据的插入、更新、删除和查询等。
请你为我写一段MySQL建表语句,要求为学生信息表,并插入十行数据
好的,以下是创建学生信息表并插入10行数据的MySQL语句:
```
CREATE TABLE student_info (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
gender ENUM('male', 'female') NOT NULL,
age INT NOT NULL,
major VARCHAR(50) NOT NULL,
grade INT NOT NULL
);
INSERT INTO student_info (name, gender, age, major, grade) VALUES
('张三', 'male', 20, '计算机科学与技术', 2018),
('李四', 'female', 19, '软件工程', 2019),
('王五', 'male', 21, '信息安全', 2017),
('赵六', 'female', 22, '数据科学与大数据技术', 2016),
('钱七', 'male', 20, '计算机科学与技术', 2018),
('周八', 'female', 19, '软件工程', 2019),
('吴九', 'male', 21, '信息安全', 2017),
('郑十', 'female', 22, '数据科学与大数据技术', 2016),
('孙十一', 'male', 20, '计算机科学与技术', 2018),
('朱十二', 'female', 19, '软件工程', 2019);
```
以上语句创建了一个名为`student_info`的学生信息表,包含ID、姓名、性别、年龄、专业和年级等列。并插入了10行数据,可以根据需要进行修改。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)