数据库查询没有选修高数的学生学号和姓名
时间: 2024-06-13 11:05:49 浏览: 129
以下是查询没有选修高数的学生学号和姓名的SQL语句:
```
SELECT 学号, 姓名
FROM 学生表
WHERE 学号 NOT IN (
SELECT 学号
FROM 选课表
WHERE 课程名称 = '高数'
)
```
其中,`学生表`和`选课表`是需要查询的两个表,`学号`和`姓名`是需要查询的字段,`选课表`中的`课程名称`为高数。该语句使用了子查询来查询没有选修高数的学生学号,然后在学生表中查询对应的学号和姓名。
相关问题
子查询操作,在数据库EDUC中实现查询: (1)求选修了高等数学的学生学号和姓名; (2)求C1 课程的成绩高于张三的学生学号和成绩; (3)求其他系中比计算机系学生年龄都小的学生信息; (4)求至少选修了学号为“1103”的学生所选修的全部课程的学生学号和姓名。
1. SELECT s.student_id, s.student_name FROM student s WHERE s.student_id IN (SELECT e.student_id FROM enrollment e WHERE e.course_id = '高等数学');
2. SELECT e.student_id, e.score FROM enrollment e WHERE e.course_id = 'C1' AND e.score > (SELECT e1.score FROM enrollment e1 WHERE e1.student_id = '张三' AND e1.course_id = 'C1');
3. SELECT s.student_id, s.student_name, s.age FROM student s WHERE s.department <> '计算机系' AND s.age < (SELECT MIN(age) FROM student WHERE department = '计算机系');
4. SELECT DISTINCT e1.student_id, s.student_name FROM enrollment e1, enrollment e2, student s WHERE e1.student_id = s.student_id AND e2.course_id = e1.course_id AND e2.student_id = '1103';
用c++进行子查询操作,在数据库EDUC中实现查询: (1)求选修了高等数学的学生学号和姓名; (2)求C1 课程的成绩高于张三的学生学号和成绩; (3)求其他系中比计算机系学生年龄都小的学生信息; (4)求至少选修了学号为“1103”的学生所选修的全部课程的学生学号和姓名。
以下是对应的SQL查询语句:
(1) SELECT 学号,姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 选课 WHERE 课程编号='1001');
(2) SELECT 学号,成绩 FROM 成绩 WHERE 成绩>(SELECT 成绩 FROM 成绩 WHERE 课程编号='C1' AND 学号='001') AND 课程编号='C1';
(3) SELECT * FROM 学生 WHERE 专业<>'计算机系' AND 年龄<(SELECT MIN(年龄) FROM 学生 WHERE 专业='计算机系');
(4) SELECT 学号,姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 选课 WHERE 课程编号 IN (SELECT 课程编号 FROM 选课 WHERE 学号='1103'));
注意,在执行这些查询之前,需要确保你已经连接到EDUC数据库并具有相应的权限。如果你使用的是MySQL数据库,可以使用C++的MySQL Connector/C++库来实现连接和查询。如果你使用的是其他类型的数据库,需要使用相应的库来连接和查询。
阅读全文