用SQL语句实现学生选课库中的下列查询: ®求学生的学号、姓名、选修的课程名及成绩
时间: 2023-05-18 12:04:56 浏览: 133
可以使用以下 SQL 语句实现该查询:
SELECT 学生表.学号, 学生表.姓名, 课程表.课程名, 选课表.成绩
FROM 学生表, 课程表, 选课表
WHERE 学生表.学号 = 选课表.学号 AND 课程表.课程号 = 选课表.课程号;
相关问题
有学生一课程关系数据库,各关系表描述如下: 学生(学号,姓名,性别,年龄,系)课程(课程号,课程名,先修课,学分)选课(学号,课程号,成绩) 用 SQL 语句实现下列问题 1、向学生选修课程表中插入元组"学生S6选修课程号C2"。2、查询每个学生的学号、姓名及其所选课程的课程名: 3、检索姓"李"且倒数第2个字为"华"字的学生的姓名和学号: 4、删除选课成绩在60分以下的学生记录; 5、把"大学英语"课程成绩提高5%; 6、求出男同学的每一年龄组(超过4人)有多少人? 7、定义视图 S _ age ,其中包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩; 8、查询每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩超过60才能获得此课程的学分) 9、查询计算机系成绩在80分以上的学生姓名、课程名和成绩,并按成绩降序排列结果; 10、查询既选修了"数据库"又选修了"操作系统"的学生学号及姓名。
1、向学生选修课程表中插入元组"学生S6选修课程号C2"。
```
INSERT INTO 选课 (学号, 课程号) VALUES ('S6', 'C2');
```
2、查询每个学生的学号、姓名及其所选课程的课程名:
```
SELECT 学生.学号, 学生.姓名, 课程.课程名
FROM 学生, 选课, 课程
WHERE 学生.学号 = 选课.学号 AND 选课.课程号 = 课程.课程号;
```
3、检索姓"李"且倒数第2个字为"华"字的学生的姓名和学号:
```
SELECT 学号, 姓名
FROM 学生
WHERE 姓名 LIKE '李%华_';
```
4、删除选课成绩在60分以下的学生记录:
```
DELETE FROM 选课
WHERE 成绩 < 60;
```
5、把"大学英语"课程成绩提高5%:
```
UPDATE 选课
SET 成绩 = 成绩 * 1.05
WHERE 课程号 = 'C1';
```
6、求出男同学的每一年龄组(超过4人)有多少人?
```
SELECT FLOOR(年龄 / 10) * 10 AS 年龄段, COUNT(*) AS 人数
FROM 学生
WHERE 性别 = '男'
GROUP BY 年龄段
HAVING COUNT(*) > 4;
```
7、定义视图 S_age ,其中包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩;
```
CREATE VIEW S_age AS
SELECT 学号, COUNT(*) AS 选课门数, AVG(成绩) AS 平均成绩
FROM 选课
WHERE 成绩 IS NOT NULL
GROUP BY 学号;
```
8、查询每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩超过60才能获得此课程的学分)
```
SELECT 选课.学号, SUM(课程.学分) AS 总学分
FROM 选课, 课程
WHERE 选课.课程号 = 课程.课程号 AND 成绩 > 60
GROUP BY 选课.学号;
```
9、查询计算机系成绩在80分以上的学生姓名、课程名和成绩,并按成绩降序排列结果;
```
SELECT 学生.姓名, 课程.课程名, 选课.成绩
FROM 学生, 选课, 课程
WHERE 学生.学号 = 选课.学号 AND 选课.课程号 = 课程.课程号 AND 学生.系 = '计算机系' AND 选课.成绩 > 80
ORDER BY 选课.成绩 DESC;
```
10、查询既选修了"数据库"又选修了"操作系统"的学生学号及姓名。
```
SELECT 学生.学号, 学生.姓名
FROM 学生, 选课 AS s1, 选课 AS s2
WHERE 学生.学号 = s1.学号 AND 学生.学号 = s2.学号 AND s1.课程号 = 'C1' AND s2.课程号 = 'C3';
```
sql:求学生的学号、姓名、选修的课程名及成绩。
假设有三张表:学生表(students)、课程表(courses)和成绩表(scores),则可以使用以下 SQL 语句查询学生的学号、姓名、选修的课程名及成绩:
```
SELECT
students.student_id,
students.student_name,
courses.course_name,
scores.score
FROM
students
INNER JOIN scores ON students.student_id = scores.student_id
INNER JOIN courses ON scores.course_id = courses.course_id;
```
其中,使用 INNER JOIN 连接三张表,将学生表、成绩表和课程表进行关联,再用 SELECT 子句选择需要查询的字段,即可得到学生的学号、姓名、选修的课程名及成绩。
阅读全文