有一个[学生课程]数据库,数据库中包括三个表:

嗯...这是一个 SQL 的事情...在 2 02 2 年,我会做这样的事情。

1 .创建表 Student(sno varchar(5 ) 非主键 null, sname varchar(1 0), ssex char(2 ), sage int, sdept varchar(2 0)) 这是创建表,创建学生表,学号为主键,姓名,性别,年龄,院系。
我记得当时我在做这件事时,从 sno 中删除 not null 可能会导致问题,但后来我意识到我需要添加它。

2 更改学生时间表添加时间日期 这是添加一个字段,添加生日什么的,日期时间。
可能是我太过分了,想太多了给学生加生日,但是当时领导说有必要,所以就加了。

3 选择 sno,从 sg 中选择等级,其中 cno=5 按等级 desc 排序 这是查看分数,选择学号和分数,课程号为5 ,按分数降序排列。
2 02 2 年,我们班05 01 9 号学生选修了这门课,成绩很低。

4 选择 max(grade) 作为最高等级,average(grade) 作为 sg 的平均等级,其中 cno=1 这是排名第一的课程统计数据、最高分和平均分。
我记得当时用这个查过,数据很多。
也许我太过分了,认为结果毫无用处,但它还是出来了。

5 从学生中删除 sno='05 01 9 ' 这是删除数据,删除学号05 01 9 当时我就糊涂了。
本来答应备份数据的,结果直接删除了,后来又发现了。
这个操作现在想想还真是有趣。

就是这样...

初学者,简单的数据库sql语句,看看对不对

5 . 在问题 5 中,不要使用子查询来查找课程编号。
直接链接学生表和选课表,效率更高。
如果课程编号是唯一的,则不必添加子查询,但要小心。

7 问题 7 :不要使用子查询。
匹配三个表后按学生姓名分组。
错误的逻辑迫使你计算额外的学分。

8 对于第8 题,分组时添加学号,避免重名。
这和问题7 是一样的,你的逻辑是正确的。

9 问题9 、直连表不使用子查询,会降低效率。
直接从表中获取数据。