- 博客(8)
- 收藏
- 关注
原创 第四周 遇到的问题
SQL 40.查询各学生的年龄,只按年份来算 此题需要用到sql中的date类函数:timestampdiff() 由于只按年份计算,刚开始想用extract()函数先取出学生出生日期及现在日期的年份,再按照datediff()函数将两个时间相减得到差值。但是问题是datediff()函数的参数值只能是date或datetime型,year是不能计算的,所以此路不通。 而timestampdiff...
2019-10-06 12:19:07 208
原创 第四周 学习的收获
SQL 42.查询本(下)周过生日的学生 这个题有两种方法,一种是使用上面提到的extract()函数,返回值选择week;另一种是使用weekofyear()函数 如图 PS:这里由于巧合,没有符合条件的学生,于是我稍微修改了条件(查询9周后过生日的学生),如下: 44.查询本(下)月过生日的学生 此题用extract()函数,返回值选择month 如下 PS:这里由于巧合,依旧没有符合...
2019-10-06 12:18:44 122
原创 第三周 学习的收获
SQL 33.成绩不重复,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩 34.成绩有重复的情况下,查询选修「张三」老师所授课程的学生中,成绩最高的学生信息及其成绩 这两个题的重点是成绩是否重复,所以我们应该先在不重复的情况下查询出成绩最高的学生的信息,此处用到max()函数。而有重复的就可以用到之前查询到的结果作为条件,使结果返回多条记录。 查询时我们为了效果明显,可以在原本只...
2019-09-29 20:09:32 192
原创 第二周 遇到的问题
SQL 20.查询出只选修两门课程的学生学号和姓名 查询20题出现了一个前面几道题也会出现的问题:用嵌套语句老是会报错,但是用连接就没有问题,明明思路应该是对的。 比如以下代码: select student.sid,sname from student Where student.sid in (select sc.sid,count(cid) from sc group by sc.sid h...
2019-09-22 20:51:44 104
原创 第二周 学习的收获
SQL 24.查询 1990 年出生的学生名单 这道题刚开始走了点弯路,先用了等值查询where sage=”1990”;当然查不到结果,因为1990年它是一个时间段,所以应该用between…and…语句才能够准确表达。 总结:平时练习时应该注意到题目中隐含的一些条件,而不是只能在题目中明确说“查询1990-01-01到1990-12-31的学生”时才能明白到底要的是什么。 28.查询所有学生的...
2019-09-22 20:50:13 185
原创 第一周 遇到的问题
SQL 4.1 查有成绩的学生信息 这个问题就有意思了,感觉是和前面的“查询SC表中存在成绩的学生信息”重复了。但是查了资料是有区别的,依然不是很明白。 7.查询没有学全所有课程的同学的信息 这个问题讲数据库的时候有一道类似的题目:“查询选修了所有课程的学生信息”,书上用的是exists语句,但是我不太理解。这道题我觉得也可以拆分表,拆成三个表,然后进行连接,就可以先得到学全所有课程的同学,再求不...
2019-09-15 22:36:16 130
原创 第一周 学习收获
SQL 1.查询01课程分数大于02课程的学生信息和课程分数 这个问题难就难在如何将条件拆分 (1)我们要的是01课程高于02课程 (2)学号要一致,也就是同一个人 (3)查询的信息也不仅仅是成绩,学生信息也要查到,所以必须有连接 关于这个问题刚开始我的思路是子查询中找出01课程大于02课程的学生的学号,传回外层查询后依据学号在连接后的学生表和成绩表中查出 所需结果。 但是后来发现这个思路有些问题...
2019-09-15 22:32:55 150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人