假设学生表里包含学号,姓名,性别,生日和班级信息,写出sql查询所有选修“计算机导论”课程的“男”同学的成绩表
时间: 2024-02-23 12:59:05 浏览: 45
好的,根据您的要求,我为您编写如下SQL语句:
```
SELECT s.学号, s.姓名, c.课程名称, sc.成绩
FROM 学生表 s
INNER JOIN 选课表 sc ON s.学号 = sc.学号
INNER JOIN 课程表 c ON sc.课程编号 = c.课程编号
WHERE c.课程名称 = '计算机导论' AND s.性别 = '男'
```
这条SQL语句会从学生表、选课表和课程表中联合查询,找出所有选修“计算机导论”课程的“男”同学的成绩表,结果包括学号、姓名、课程名称和成绩四个字段。
相关问题
假设有学生表里面包含学号、姓名、性别、生日和班级信息, 关系模式为:student(sno,sname,ssex,sbirthday,class) 有课程表里面包含课程号、课程名和教工号信息, 关系模式为:course(cno,cname,tno) 有成绩表里面包含学生学号、课程号和成绩信息, 关系模式为:score(sno,cno,degree) 写出SQL语句:查询所有选修“计算机导论”课程的“男”同学的成绩表
可以使用以下 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` 连接三个表,筛选出选修“计算机导论”课程的学生和他们的成绩,同时筛选出性别为“男”的学生。查询结果为选修“计算机导论”课程的“男”同学的成绩表,包含学生学号和成绩信息。
sql语句 查询出只选修了一门课程的全部学生的学号和姓名
好的,针对你的问题,以下是对应的 SQL 语句:
```
SELECT s.id, s.name
FROM student s
INNER JOIN sc ON s.id = sc.sid
GROUP BY sc.sid
HAVING COUNT(sc.cid) = 1;
```
这个 SQL 查询语句的大致思路如下:
1. 从 `student` 和 `sc` 两张表中关联查询学生的学号和课程的课程号;
2. 通过 `GROUP BY` 对学生的学号进行分组;
3. 通过 `HAVING` 限制查询结果,只保留选课数量为 1 的学生。
希望这个回答能够帮助到你!