SQL 查询其他系中比计算机系学生年龄都小的学生信息(包括学号、姓 名、性别、出生日期、所在系、备注)。
时间: 2023-08-05 16:04:23 浏览: 1181
假设计算机系的系号为001,学生表为students,查询语句如下:
```
SELECT 学号, 姓名, 性别, 出生日期, 所在系, 备注
FROM students
WHERE 所在系 <> '001' AND 出生日期 > (SELECT 出生日期 FROM students WHERE 所在系 = '001' ORDER BY 出生日期 DESC LIMIT 1)
```
解释一下这个语句:
- `SELECT` 语句用于选择需要查询的列,即学号、姓名、性别、出生日期、所在系和备注。
- `FROM` 语句用于指定需要查询的数据表,即学生表 `students`。
- `WHERE` 语句用于筛选符合条件的数据行,分别是所在系不是计算机系且出生日期大于计算机系学生中最年长的学生出生日期。其中子查询 `(SELECT 出生日期 FROM students WHERE 所在系 = '001' ORDER BY 出生日期 DESC LIMIT 1)` 用于查询计算机系学生中出生日期最晚的学生出生日期。
这条 SQL 语句可以实现查询其他系中比计算机系学生年龄都小的学生信息。
相关问题
17.查询XS表中比所有计算机系的学生年龄都大的学生的学号、姓名、专业名和出生日期
这里假设XS表包含学生的基本信息,包括学号、姓名、性别、出生日期、专业号等字段,而ZYE表包含专业信息,包括专业号和专业名等字段。
可以使用如下SQL语句查询XS表中比所有计算机系的学生年龄都大的学生的学号、姓名、专业名和出生日期:
```
SELECT XS.学号, XS.姓名, ZYE.专业名, XS.出生日期
FROM XS, ZYE
WHERE XS.专业号 = ZYE.专业号
AND ZYE.专业名 <> '计算机系'
AND XS.出生日期 < ALL (
SELECT XS2.出生日期
FROM XS AS XS2, ZYE AS ZYE2
WHERE XS2.专业号 = ZYE2.专业号
AND ZYE2.专业名 = '计算机系'
)
```
解析:
首先使用了两个表的连接,通过XS表中的专业号和ZYE表中的专业号进行连接,从而得到每个学生所在的专业名。
然后使用了子查询,查询计算机系中年龄最大的学生的出生日期,这里使用了ALL关键字,表示比子查询中返回的所有值都小。
最后使用了WHERE语句,筛选出出生日期小于计算机系中所有学生的出生日期的学生,即为比所有计算机系的学生年龄都大的学生。
注意,这里假设每个学生只属于一个专业,如果一个学生属于多个专业,则需要根据实际情况进行调整。
1. 查询全体学生的学号和姓名 2. 查询全体学生的详细记录 3. 查询所有选修过课程的学生学号 4. 查询考试有不及格的学生学号 5. 查询考试有不及格的学生学号 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别 6. 查询选修了四号课的学生学号和成绩,结果按成绩降序排列 7. 查询每个课程号和相应的选课人数 8. 查询计算机系的学生姓名,年龄,系别 9. 查询年龄18-20岁的学生学号,姓名,年龄,系别 10. 查询姓刘的学生情况 11. 查询既选修1号课程,又选修2号课程的学生学号 12. 查询学生的姓名和出生年份 13. 查询没有成绩的学生的学号和课程号 14. 查询总成绩大于200分的学生学号 15. 查询每门课程不及格学生人数 16. 查询不及格课程超过三门的学生学号 17. 查询年龄在10到19岁之间的学生信息 18. 查询全体学生情况,按所在系升序排列 19. 查询选了1号课程的学生平均成绩 20. 查询选了3号课程的学生最高分 21. 查询每个同学的总成绩 用MySQL实现
很抱歉,我是一个语言模型AI,无法直接访问数据库。但我可以告诉你一些SQL语句,供你参考:
1. 查询全体学生的学号和姓名
SELECT 学号, 姓名 FROM 学生表;
2. 查询全体学生的详细记录
SELECT * FROM 学生表;
3. 查询所有选修过课程的学生学号
SELECT DISTINCT 学号 FROM 选课表;
4. 查询考试有不及格的学生学号
SELECT DISTINCT 学号 FROM 成绩表 WHERE 成绩 < 60;
5. 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别
SELECT 性别, 年龄, 系别 FROM 学生表 WHERE 系别 NOT IN ('IS', 'CS');
6. 查询选修了四号课的学生学号和成绩,结果按成绩降序排列
SELECT 学号, 成绩 FROM 成绩表 WHERE 课程号 = '4' ORDER BY 成绩 DESC;
7. 查询每个课程号和相应的选课人数
SELECT 课程号, COUNT(*) AS 选课人数 FROM 选课表 GROUP BY 课程号;
8. 查询计算机系的学生姓名,年龄,系别
SELECT 姓名, 年龄, 系别 FROM 学生表 WHERE 系别 = 'CS';
9. 查询年龄18-20岁的学生学号,姓名,年龄,系别
SELECT 学号, 姓名, 年龄, 系别 FROM 学生表 WHERE 年龄 BETWEEN 18 AND 20;
10. 查询姓刘的学生情况
SELECT * FROM 学生表 WHERE 姓名 LIKE '刘%';
11. 查询既选修1号课程,又选修2号课程的学生学号
SELECT 学号 FROM 选课表 WHERE 课程号 IN ('1', '2') GROUP BY 学号 HAVING COUNT(DISTINCT 课程号) = 2;
12. 查询学生的姓名和出生年份
SELECT 姓名, YEAR(出生日期) AS 出生年份 FROM 学生表;
13. 查询没有成绩的学生的学号和课程号
SELECT 学号, 课程号 FROM 选课表 WHERE NOT EXISTS (SELECT * FROM 成绩表 WHERE 选课表.学号 = 成绩表.学号 AND 选课表.课程号 = 成绩表.课程号);
14. 查询总成绩大于200分的学生学号
SELECT 学号 FROM 成绩表 GROUP BY 学号 HAVING SUM(成绩) > 200;
15. 查询每门课程不及格学生人数
SELECT 课程号, COUNT(*) AS 不及格人数 FROM 成绩表 WHERE 成绩 < 60 GROUP BY 课程号;
16. 查询不及格课程超过三门的学生学号
SELECT 学号 FROM 成绩表 WHERE 成绩 < 60 GROUP BY 学号 HAVING COUNT(*) > 3;
17. 查询年龄在10到19岁之间的学生信息
SELECT * FROM 学生表 WHERE 年龄 BETWEEN 10 AND 19;
18. 查询全体学生情况,按所在系升序排列
SELECT * FROM 学生表 ORDER BY 系别 ASC;
19. 查询选了1号课程的学生平均成绩
SELECT AVG(成绩) AS 平均成绩 FROM 成绩表 WHERE 课程号 = '1';
20. 查询选了3号课程的学生最高分
SELECT MAX(成绩) AS 最高分 FROM 成绩表 WHERE 课程号 = '3';
21. 查询每个同学的总成绩
SELECT 学号, SUM(成绩) AS 总成绩 FROM 成绩表 GROUP BY 学号;
阅读全文