假设有学生表里面包含学号、姓名、性别、生日和班级信息, 关系模式为:student(sno,sname,ssex,sbirthday,class) 有课程表里面包含课程号、课程名和教工号信息, 关系模式为:course(cno,cname,tno) 有成绩表里面包含学生学号、课程号和成绩信息, 关系模式为:score(sno,cno,degree) 写出SQL语句:查询所有选修“计算机导论”课程的“男”同学的成绩表
时间: 2023-07-16 10:15:50 浏览: 257
可以使用以下 SQL 语句查询所有选修“计算机导论”课程的“男”同学的成绩表:
```
SELECT score.sno, score.degree
FROM score
JOIN student ON score.sno = student.sno
JOIN course ON score.cno = course.cno
WHERE course.cname = '计算机导论' AND student.ssex = '男';
```
其中,使用 `JOIN` 连接三个表,筛选出选修“计算机导论”课程的学生和他们的成绩,同时筛选出性别为“男”的学生。查询结果为选修“计算机导论”课程的“男”同学的成绩表,包含学生学号和成绩信息。
相关问题
学生-课程关系模式如下: student(Sno,Sname,Ssex,Sbirthday,class) teacher(Tno,Tname,Tsex,Prof,Depart) course(Cno,Cname, Tno) score (Sno,Cno,Degree) 用SQL语句完成以下题目: (1)查询和“李军”同性别并同班的同学Sname. (2)查询所有选修“计算机导论”课程的“男”同学的成绩表。 (3)查询每门课的平均成绩。 (4)查询“95033”班学生的平均分。
好的,以下是针对你的问题的 SQL 语句:
(1)查询和“李军”同性别并同班的同学Sname。
```
SELECT Sname FROM student WHERE Ssex = (SELECT Ssex FROM student WHERE Sname = '李军') AND class = (SELECT class FROM student WHERE Sname = '李军');
```
(2)查询所有选修“计算机导论”课程的“男”同学的成绩表。
```
SELECT score.Sno, Sname, Degree
FROM student, score, course
WHERE student.Sno = score.Sno AND score.Cno = course.Cno AND course.Cname = '计算机导论' AND Ssex = '男';
```
(3)查询每门课的平均成绩。
```
SELECT Cname, AVG(Degree) AS AvgDegree
FROM score, course
WHERE score.Cno = course.Cno
GROUP BY Cname;
```
(4)查询“95033”班学生的平均分。
```
SELECT AVG(Degree) AS AvgDegree
FROM score, student
WHERE score.Sno = student.Sno AND class = '95033';
```
希望能够帮助到你!
创建一个学生表(student_1),表中包括学号(sno)、姓名(sname)、性别(ssex)、年龄(sage)、出生日期(sbirthday)
好的,我会帮你创建一个学生表(student_1),包括学号(sno)、姓名(sname)、性别(ssex)、年龄(sage)、出生日期(sbirthday)。以下是创建表的 SQL 语句:
```sql
CREATE TABLE student_1 (
sno INT PRIMARY KEY,
sname VARCHAR(50),
ssex VARCHAR(10),
sage INT,
sbirthday DATE
);
```
请注意,这只是一个示例的 SQL 语句,你可以根据实际需求进行修改和扩展。
阅读全文