查询至少选修2门课的女学生姓名
时间: 2024-03-08 07:41:46 浏览: 275
以下是查询至少选修2门课的女学生姓名的SQL语句:
```sql
SELECT student.Sname AS 姓名
FROM student
WHERE student.Ssex='女' AND student.Sid IN (
SELECT score.Sid
FROM score
GROUP BY score.Sid
HAVING COUNT(DISTINCT score.Cid) >= 2
)
```
该语句中,首先在score表中按照SId分组,统计每个学生选修的不同课程数量,然后筛选出选修至少2门课程的学生,最后在student表中查找这些学生的姓名和性别为女的学生。
相关问题
30.查询选修c2和c3课程的学生学号 31.查询选修了课程’c1'并且选修课程在三门以上的同学学号 32.检索至少选修两门课程的学生姓名。(采用自身连接查询)
30. 查询选修c2和c3课程的学生学号可以使用以下SQL语句:
SELECT DISTINCT student_id FROM course_selection WHERE course_id IN ('c2', 'c3');
31. 查询选修了课程’c1'并且选修课程在三门以上的同学学号可以使用以下SQL语句:
SELECT student_id FROM course_selection WHERE course_id = 'c1' GROUP BY student_id HAVING COUNT(DISTINCT course_id) >= 3;
32. 检索至少选修两门课程的学生姓名(采用自身连接查询)可以使用以下SQL语句:
SELECT DISTINCT a.student_name FROM course_selection a, course_selection b WHERE a.student_id = b.student_id AND a.course_id <> b.course_id;
.基于 jxgl数据库,使用SQL语句表达以下查询 ①检索年龄大于23岁的男学生的学号和姓名; ②检索至少选修一门课程的女学生姓名; ③检索王林不学的课程的课程号; ④检索至少选修两门课程的学生学号;
在JXGL数据库中,使用SQL语句可以按照以下方式编写:
1. 查询年龄大于23岁的男学生的学号和姓名:
```sql
SELECT student_id, name
FROM students
WHERE gender = '男' AND age > 23;
```
2. 查询至少选修一门课程的女学生姓名:
```sql
SELECT DISTINCT name
FROM students s
JOIN student_courses sc ON s.student_id = sc.student_id
WHERE s.gender = '女';
```
这里假设有一个student_courses表连接了学生和他们选修的课程。
3. 检索王林不学的课程的课程号:
```sql
SELECT course_code
FROM courses
WHERE course_code NOT IN (
SELECT course_code
FROM student_courses
WHERE student_id = (SELECT id FROM students WHERE name = '王林')
);
```
这里的假设是每个课程都有一个唯一的course_code,并且有student_courses表记录学生选课信息。
4. 检索至少选修两门课程的学生学号:
```sql
SELECT student_id
FROM (
SELECT student_id, COUNT(*) AS course_count
FROM student_courses
GROUP BY student_id
) subquery
WHERE course_count >= 2;
```
这个查询首先计算每个学生选修的课程数,然后选择那些课程数大于等于2的学生的学号。
阅读全文