根据图片中的任务要求,以下是针对每个任务的SQL代码: ### 第一题:查询学生数据表(student)的所有字段 ```sql SELECT * FROM student; ``` ### 第二题:查询学生表的姓名及生日 ```sql SELECT 姓名, 生日 FROM student; ``` ### 第三题:查询学生表的姓名及生日的日期(格式:月-日),列名为生日 ```sql SELECT 姓名, CONCAT(MONTH(生日), '-', DAY(生日)) AS 生日 FROM student; ``` ### 第四题:查询学生表的姓名及年龄(出生的年份减去2025年),列名为年龄 ```sql SELECT 姓名, (2025 - YEAR(生日)) AS 年龄 FROM student;
时间: 2025-06-05 16:13:11 浏览: 31
### 数据库实验:学生表的SQL查询示例
以下是基于学生表的各种查询任务的SQL代码示例,涵盖了不同场景下的查询需求。
#### 1. 查询学生表的所有字段和所有行
如果需要获取学生表中的全部数据,可以使用以下SQL语句:
```sql
SELECT * FROM student;
```
这条语句会返回 `student` 表中所有的列和行[^1]。
#### 2. 查询学生表中的特定字段
假如只需要查询学生的姓名 (`StudentName`) 和生日 (`BornDate`),则可以执行如下SQL语句:
```sql
SELECT StudentName, BornDate FROM student;
```
这只会返回 `student` 表中与姓名和生日相关的两列数据[^1]。
#### 3. 计算学生的年龄并作为新列显示
由于数据库中的出生日期通常是以日期格式存储的,可以通过当前日期减去出生日期来计算学生的年龄。例如,在MySQL中可以使用 `TIMESTAMPDIFF` 函数完成这一操作:
```sql
SELECT StudentName, BornDate, TIMESTAMPDIFF(YEAR, BornDate, CURDATE()) AS Age
FROM student;
```
这里的 `TIMESTAMPDIFF(YEAR, BornDate, CURDATE())` 将计算从出生年份到当前年的差值,并将其命名为 `Age` 显示在结果集中。
#### 4. 查询特定年龄段的学生
为了找到出生于某个时间段内的学生,比如2002年至2010年间出生的男性学生,可以编写如下SQL语句:
```sql
SELECT StudentName
FROM student
WHERE BornDate > '2002-09-06' AND BornDate < '2010-09-06' AND sex = 1;
```
这段代码筛选出了符合条件的学生名字列表[^1]。
#### 5. 统计每门课程的成绩分布情况
虽然这个问题稍微偏离了单纯的学生表范围,但如果有一个关联的成绩表(`score`),我们也可以统计各科目的平均分、最高分及最低分等情况。例如:
```sql
SELECT cno, AVG(result) AS 平均分, MAX(result) AS 最高分, MIN(result) AS 最低分
FROM score
GROUP BY cno
HAVING cno IN (01, 02, 03);
```
此查询将分别给出编号为01、02和03这几门课各自的评分概况[^3]。
---
### 总结
以上提供了几种典型的针对学生表以及其他可能存在的相关联表的操作实例,展示了如何利用SQL语言灵活地提取所需要的信息。
阅读全文
相关推荐




















