给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
【例3.62】查询选修了全部课程的学生姓名
SELECT Sname
FROM Student
WHERE NOT EXISTS
( SELECT \*
FROM Course
WHERE NOT EXISTS
( SELECT \*
FROM SC
WHERE Sno = Student.Sno AND Cno = Course.Cno
)
);
EXISTS谓词:带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值或逻辑假值。
- 使用存在量词EXISTS后,若内层查询结果为非空,则外层的WHERE 子句返回真值,否则返回假值。
- 使用存在量词NOT EXISTS后,若内层查询结果为空,则外层的WHERE 子句返回真值,否则返回假值。
相关子查询的处理过程:首先取外层查询中表的一个元组,根据它与内层查询相关的属性值,处理内层查询,若WHERE子句返回值为真,则取外层查询中该元组的相应属性值放入结果表;然后再取外层查询表中的下一个元组,重复这一个过程,直至外层表全部检查完为止。
对于本例的理解:首先本例中子查询的查询条件依赖于外层父查询的某个属性值,因此本例也是相关子查询。查询过程应是:
- 先从外层Student表中取一个元组,取该学生的Sno,然后进入内一层查询
- 取Course中一个元组,取该课程的Cno,再进入最内层查询,
- 在SC表中查询,如果该学生的选课表中包含该课程,则外一层WHERE子句返回假值,然后回到步骤2,继续下一个课程的查询,如果该学生的全部课程的WHERE子句都返回假值,则该学生Student表中查询的WHERE子句返回真值,并将该学生的Sname放入结果表中,回到步骤1,继续下一个学生的查询;如果该学生有一个课程的WHERE子句返回真值,则该学生Student表中查询的WHERE子句返回假值,该学生不能放入结果表。
学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!