❶ 数据库sql语句中 查询选修了全部课程的学生的学号和姓名 理解
楼主别着急!
为好理解我们先从这条SQL语句所要实现的功能入手。
功能:查出选修了全部课程的学信息。那么SQL在查询数据的时候的遍历每一个学生信息。判断该学生是否满足条件。
1
如果存在这么一条Course记录A(暂命名为A),
则不选择该学生。否则该学生就被查询出来
2
那么记录A,是怎么查出来的呢?A查出的条件是:不存在SC记录B,只要不存在B,就可查出A
3
那么B记录是什么?B记录是选课信息表,根据学号和课程号可查出记录B
如果B为空(该学生有没有选的课程)也就是不存在,则A就有一条记录,根据规则2可知:因为有A,所以该学生信息将不被输出。
如果在SC中每一个课程编号和该学生编号为条件都能够查出一条记录B(也就是该学生选修了全部课程),所以A记录不存在,则输出该学生的信息。
也就是在选课表中,如果学生选了全部课程(也就是满足SELECT
*
FROM
SC
WHERE
Sno=
Student.Sno
AND
Cno=
Course.Cno)始终存在,当然,课程编号是任意的)。那么就输出该学生的信息。你不要为理解这条SQL而忘记了它本身是要做什么.
带着SQL的目的(要实现的功能)去理解就好了。
❷ SQL查询出有成绩不及格的学生的学号,姓名,课程名。
select a.学号 , a.姓名 , b.课程名
from tbStudent a , tbCourse b , tbScore c
where c.成绩 < 60 and a.学号 = c.学号 and b.课程号 = c.课程号
❸ 以“registration”数据库为基础,写出完成下面查询的 SQL 语 句
1、 查询成绩大于80 分的选课情况,包括学号,课号,成绩:
SELECT Student.ID, Course.ID, GradeFROM Student, Course, RegistrationWHERE Student.ID = Registration.ID AND Course.ID = Registration.IDAND Grade > 80;
2、查询所有学生的姓名,性别,年龄:
SELECT Name, Gender, AgeFROM Student;
3、 查询姓名为“XX 宁”的学生基本信息:
SELECT *FROM StudentWHERE Name = 'XX 宁';
4、 查询学分键物为2分或5分的课程名和学分:
SELECT Name, CreditFROM CourseWHERE Credit IN (2, 5);
5、统计选修了 C03 号课程的学生人数、缺唯敏考学生人数:
SELECT COUNT(*) AS Total, SUM(CASE WHEN Grade IS NULL THEN 1 ELSE 0 END) AS AbsentFROM Student, RegistrationWHERE Student.ID = Registration.ID AND Course.ID = 'C03';
6、 查询平均成绩大于等于 70 分的学生学号和对应平均成绩:
SELECT Student.ID, AVG(Grade)FROM Student, Course, RegistrationWHERE Student.ID = Registration.ID AND Course.ID = Registration.IDGROUP BY Student.IDHAVING AVG(Grade) >= 70;
7、 查询学生的选课情况,包括姓名、课名、成绩:
SELECT Student.Name, Course.Name, GradeFROM Student, Course, RegistrationWHERE Student.ID = Registration.ID AND Course.ID = Registration.ID;
8、 查询与“工业稿山液设计”同在一个系的其他专业信息,包括专业号,专业名:
SELECT Department.ID, Department.NameFROM Department, MajorWHERE Department.ID = Major.ID AND Major.Name = '工业设计'AND Department.ID != (SELECT ID FROM Major WHERE Name = '工业设计');
❹ sql查询语句的问题,“列出成绩大于90的所有学生的姓名、专业、课程名称、成绩”这条语句怎么写
可以参考下面的代码:
select s.姓名, s.专业, sc.成绩, c.课程名称
from 学生基本情况表 s, 成绩表 sc, 课程表 c
where s.学号 = sc.学号 and c.课程编号 = sc.课程编号
and sc.成绩 > 90
(4)sql查询姓名和课程名扩展阅读:
sql语句
删除列:
Alter table table_name drop column column_name--从表中删除一列
添加主键:
Alter table tabname add primary key(col)
平均:
select avg(field1) as avgvalue from table1
最大:
select max(field1) as maxvalue from table1
❺ 怎么用SQL的查询语句列出某同学所有课程的课程名和成绩啊,并按成绩从低到高排序啊
1、打开Microsoft SQL Server 2012,选中需要查询所有表的数据库。