创建名为V_Num_Avg的视图,各专业学生人数和平均年龄,显示:专业、人数和平均年龄。并用SELECT命令查询验证视图内容
时间: 2024-02-06 08:12:15 浏览: 198
好的,以下是创建名为V_Num_Avg的视图的SQL语句:
```
CREATE VIEW V_Num_Avg AS
SELECT 专业, COUNT(*) AS 人数, AVG(年龄) AS 平均年龄
FROM 学生表
GROUP BY 专业;
```
这个视图会显示各专业学生人数和平均年龄,包括三个字段:专业、人数和平均年龄。
要查询验证视图内容,可以使用以下SELECT命令:
```
SELECT * FROM V_Num_Avg;
```
这个命令会返回V_Num_Avg视图中所有的记录,包括专业、人数和平均年龄。
相关问题
用SQL语言写以下程序: 从三个表 SC,Student,Course中,将各系学生人数,平均年龄定义为视图V_NUM_AVG
在SQL中,我们可以创建视图(View)来组合和处理来自多个表的数据。为了计算各系学生人数(V_NUM)和平均年龄(V_AVG),我们需要首先确定如何关联SC、Student和Course这三个表,并假设存在一些字段如`dept_id`表示系别,`student_age`表示学生的年龄。这里是一个基本的示例:
```sql
CREATE VIEW V_NUM_AVG AS
SELECT
s.dept_id,
COUNT(DISTINCT sc.student_id) AS V_NUM,
AVG(s.student_age) AS V_AVG
FROM
Student s
JOIN
SC sc ON s.student_id = sc.student_id
JOIN
Course c ON sc.course_id = c.course_id
GROUP BY
s.dept_id;
```
这个查询做了以下操作:
1. `JOIN`语句连接了Student表(s)、SC表(sc)以及Course表(c),基于学生ID(student_id)和课程ID(course_id)。
2. `COUNT(DISTINCT sc.student_id)` 计算每个系的学生人数,忽略重复的记录。
3. `AVG(s.student_age)` 计算对应系学生的平均年龄。
4. `GROUP BY` 根据系别(dept_id)对结果进行分组,以便得到每系的数据。
将各系学生人数,平均年龄定义为视图V_NUM
以下是将各系学生人数,平均年龄定义为视图V_NUM的SQL语句:
```
CREATE VIEW V_NUM AS
SELECT Department.DeptNO, COUNT(*) AS StuNum, AVG(Age) AS AvgAge
FROM Student, Department
WHERE Student.DeptNO = Department.DeptNO
GROUP BY Department.DeptNO;
```
该语句中,我们使用了学生表和系别表,通过学生表中的系别编号和系别表中的系别编号进行连接,然后使用COUNT函数和AVG函数分别计算每个系别的学生人数和平均年龄,最后将结果存储在视图V_NUM中。
阅读全文