学号、姓名、性别、院系怎么存储?

这就是坑,别用varchar存储学号。

实操提醒:使用int类型存储学号。

SQL中如何用SELECT语句求学号的个数?

你说的这SQL语句啊,确实有点绕。
我帮你捋捋。

第一句:select sno from sc group by sno having count() > 1 2 这个是查选修课超过1 2 门的学生的学号。
sc是学生选课表。

第二句:select s.sno, s.name from students s where s.sno in (select sno from scores c group by sno having sum(c.sno) > 2 ) 这个是查选修课成绩总分大于2 的学生。
不过这里有个问题,scores表一般不是按课程号分的,按学号分的。
而且成绩总分用sum(c.sno)不太对,应该是sum(c.score)。

第三句:你说需要三张表:学生表A、课程表B、选修表C(cid和sid)。
没有选课的学生的学号,这个一般用左连接查。

比如这样写: sql select s.sno, s.name from students s left join sc on s.sno = sc.sno where sc.sno is null
这个能查到没选任何课的学生。

说实话,这些SQL得慢慢来,一步一步写。
你当时也没想明白那个sum(c.sno),其实用sum(c.score)才对。

查询参加考试但不及格的学生学号、姓名、课程名称及成绩

直接说结论:
查询未通过考试学生信息的SQL语句:select 学号, 姓名, 课程名, 成绩 from 学生表, 成绩表, 课程表 where 成绩表.学号=学生表.学号 and 成绩表.课程号=课程表.课程号 and 成绩表.考试成绩<6>
确保表字段一致,用这个语句可以找出学号、姓名、课程名和成绩。
对学校分析学生表现和教学调整有帮助。