sql建表学生选课表:SC(Sno,Cno,Grade),sno,cno为主键
时间: 2024-03-09 08:47:53 浏览: 616
可以使用以下SQL语句来创建学生选课表SC:
```sql
CREATE TABLE SC (
Sno VARCHAR(10) NOT NULL,
Cno VARCHAR(10) NOT NULL,
Grade INT,
PRIMARY KEY (Sno, Cno)
);
```
这里定义了三个字段,Sno表示学生编号,Cno表示课程编号,Grade表示成绩,同时将Sno和Cno设为主键。这样就能保证每个学生只能选一次每门课程,并且可以通过Sno和Cno来快速查询学生选课信息。
相关问题
学生-课程数据库 • 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) • 课程表:Course(Cno,Cname,Cpno,Ccredit) • 学生选课表:SC(Sno,Cno,Grade)
• Sno:学生编号,主键
• Sname:学生姓名
• Ssex:学生性别
• Sage:学生年龄
• Sdept:学生所在院系
• Cno:课程编号,主键
• Cname:课程名称
• Cpno:先修课程编号,若无先修课程则为NULL
• Ccredit:课程学分
• Grade:学生选课成绩,若未考试则为NULL
注:SC表是学生选课表,其中Sno和Cno为外键,分别指向Student表和Course表的主键。
学生-课程数据库 ST: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) 1.建立男、女学生的平均年龄视图V_age_avg
要在数据库中建立一个名为V_age_avg的视图,用于计算男女生的平均年龄,我们需要考虑首先连接相关的表,即学生表(Student)和学生选课表(SC)。由于性别信息不在选课表中,我们需要通过主键关联到学生表。以下是SQL查询创建视图的步骤:
```sql
CREATE VIEW V_age_avg AS
SELECT
CASE
WHEN Ssex = '男' THEN '男生'
ELSE '女生'
END AS Gender,
AVG(Sage) AS AverageAge
FROM
Student S
JOIN
SC ON S.Sno = SC.Sno
GROUP BY
Gender;
```
这个查询做了以下几件事:
1. 使用CASE语句根据学生表的Ssex字段判断性别,并将其标记为'男生'或'女生'。
2. 计算每个性别下的学生平均年龄(Sage),使用AVG函数。
3. 通过INNER JOIN将学生表和学生选课表按学号(Sno)连接起来。
4. 最后,按照性别(Gender)对结果进行分组,以便分别计算每个群体的平均年龄。
阅读全文