sql查询各个学院的平均年龄
时间: 2024-05-04 17:20:46 浏览: 222
假设有一个包含学生信息的表格,其中包含学院和年龄字段。则可以使用如下SQL语句查询各个学院的平均年龄:
```sql
SELECT 学院, AVG(年龄) AS 平均年龄
FROM 学生信息
GROUP BY 学院
```
其中,`学院`和`年龄`是表格中的字段名,`学生信息`是表格名。`AVG`是求平均值的函数,`GROUP BY`语句按照`学院`字段对结果进行分组,并对每个分组求平均值。最后,使用`AS`语句给结果起一个别名`平均年龄`,方便查看结果。
相关问题
写出里面的SQL命令
以下是文档中提到的各个SQL命令:
1. **查询student表的所有记录**:
```sql
SELECT * FROM student;
```
2. **用in关键字查询student表中中文系和英语系的学生信息**:
```sql
SELECT * FROM student WHERE department IN ('中文系', '英语系');
```
3. **查询student表年龄在18~20岁的学生信息**:
```sql
SELECT * FROM student WHERE YEAR(CURDATE()) - YEAR(birth) BETWEEN 18 AND 20;
```
4. **查询student表每个院系有多少人**:
```sql
SELECT department, COUNT(*) AS count FROM student GROUP BY department;
```
5. **查询score表每个考试科目的平均成绩**:
```sql
SELECT c_name, AVG(grade) AS average_grade FROM score GROUP BY c_name;
```
6. **用连接方式查询姓张或者姓王的同学的姓名、院系和考试科目及成绩**:
```sql
SELECT name, department, c_name, grade
FROM student, score
WHERE (name LIKE '张%' OR name LIKE '王%') AND student.id = score.stu_id;
```
7. **将student表的“计算机系”修改为“信息工程学院”**:
```sql
UPDATE student SET department = '信息工程学院' WHERE department = '计算机系';
```
8. **将学号为“902”的学生的计算机成绩加10分**:
```sql
UPDATE score SET grade = grade + 10 WHERE stu_id = '902' AND c_name = N'计算机';
```
9. **删除score表中计算机课程的成绩信息**:
```sql
DELETE FROM score WHERE c_name = N'计算机';
```
请你按照以上要求写出SQL语句
好的,以下是针对上述要求编写的SQL语句:
### 1. 插入记录
#### student表
```sql
INSERT INTO student (学号, 姓名, 性别, 年龄, 所在院系) VALUES
('Y71814001', '陈靖', '男', 20, '互联网学院'),
('Y71814003', '江宏', '男', 20, '互联网学院'),
('Y71814006', '洪增志', '男', 19, '互联网学院'),
('Y71814008', '程熙', '男', 18, '互联网学院'),
('Y72014019', '李越', '男', 21, '计算机学院'),
('Y72014020', '唐子恒', '男', 18, '计算机学院'),
('Y72014040', '朱凯', '男', 17, '计算机学院'),
('Y72014041', '李哲', '男', 17, '电子工程学院'),
('Y72014050', '李原春', '女', 18, '电子工程学院'),
('Y72014056', '周晓瑞', '女', 19, '电子工程学院');
```
#### course表
```sql
INSERT INTO course (Cno, Cname, Cpno, Ccredit) VALUES
('01', '计算机导论', NULL, 2),
('02', 'C语言', '01', 2),
('03', '离散数学', '02', 2),
('04', '数据结构', '02', NULL),
('05', '数据库原理及应用', '04', 3),
('06', '操作系统', NULL, 2);
```
#### sc表
```sql
INSERT INTO sc (Sno, Cno, grade) VALUES
('Y71814001', '01', 97),
('Y71814003', '01', 85),
('Y71814006', '01', 75),
('Y71814008', '01', 80),
('Y71814001', '02', 97),
('Y71814003', '02', 92),
('Y71814006', '02', 80),
('Y71814008', '02', 87);
```
### 2. 查询
#### (1)在student中查找“互联网学院”所有学生的姓名、学号、所在院系信息
```sql
SELECT 姓名, 学号, 所在院系
FROM student
WHERE 所在院系 = '互联网学院';
```
#### (2)在student中找出2个姓李的学生的学号、姓名和所在院系,并按照学号大小排序
```sql
SELECT 学号, 姓名, 所在院系
FROM student
WHERE 姓名 LIKE '李%'
ORDER BY 学号;
```
#### (3)在student中找出学号包含‘1914’的且年龄在19到21岁之间的女生信息
```sql
SELECT *
FROM student
WHERE 学号 LIKE '%1914%' AND 年龄 BETWEEN 19 AND 21 AND 性别 = '女';
```
#### (4)在student中找出互联网学院和电子工程学院年龄小于20的所有学生信息
```sql
SELECT *
FROM student
WHERE (所在院系 = '互联网学院' OR 所在院系 = '电子工程学院') AND 年龄 < 20;
```
#### (5)查询Student表中互联网学院学生数量
```sql
SELECT COUNT(*)
FROM student
WHERE 所在院系 = '互联网学院';
```
#### (6)查询Student表中院系种类
```sql
SELECT DISTINCT 所在院系
FROM student;
```
#### (7)按照所在院系分类,统计出每个院系的学生数量
```sql
SELECT 所在院系, COUNT(*) AS 学生数量
FROM student
GROUP BY 所在院系;
```
#### (8)按照所在院系分类,统计出除互联网学院之外的其他学院的学生数量及名称
```sql
SELECT 所在院系, COUNT(*) AS 学生数量
FROM student
WHERE 所在院系 != '互联网学院'
GROUP BY 所在院系;
```
#### (9)计算‘02’号课程的平均成绩
```sql
SELECT AVG(grade) AS 平均成绩
FROM sc
WHERE Cno = '02';
```
#### (10)求各个课程号及相应的选课人数
```sql
SELECT Cno, COUNT(Sno) AS 选课人数
FROM sc
GROUP BY Cno;
```
#### (11)求每门课程的平均成绩
```sql
SELECT Cno, AVG(grade) AS 平均成绩
FROM sc
GROUP BY Cno;
```
#### (12)求有成绩的每个学生的平均成绩
```sql
SELECT Sno, AVG(grade) AS 平均成绩
FROM sc
GROUP BY Sno;
```
#### (13)求平均成绩大于86分的学生学号及平均成绩
```sql
SELECT Sno, AVG(grade) AS 平均成绩
FROM sc
GROUP BY Sno
HAVING AVG(grade) > 86;
```
#### (14)查询至少选修了2门课程(含2门)的学生的学号和平均成绩,并根据平均成绩进行降序排序
```sql
SELECT Sno, AVG(grade) AS 平均成绩
FROM sc
GROUP BY Sno
HAVING COUNT(Cno) >= 2
ORDER BY 平均成绩 DESC;
```
#### (15)查询男同学的姓名和出生年份
假设当前年份是2023年:
```sql
SELECT 姓名, (2023 - 年龄) AS 出生年份
FROM student
WHERE 性别 = '男';
```
希望这些SQL语句能帮助你完成任务!如果有任何进一步的问题,请随时告诉我。
阅读全文