Go最全CORS 错误配置漏洞扫描器(1),Golang面试总结

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

SELECT id, name, gender, scoreFROM studentsORDER BY score DESC``LIMIT 3 OFFSET 0;


如果要查询第2页,那么我们只需要“跳过”头3条记录,也就是对结果集从3号记录开始查询,把OFFSET设定为3:



SELECT id, name, gender, scoreFROM studentsORDER BY score DESC``LIMIT 3 OFFSET 3;


LIMIT 3表示的意思是“最多3条记录”。


* LIMIT总是设定为pageSize;
* OFFSET计算公式为pageSize \* (pageIndex - 1)。


注意:OFFSET是可选的,如果只写LIMIT 15,那么相当于LIMIT 15 OFFSET 0。


在MySQL中,LIMIT 15 OFFSET 30还可以简写成LIMIT 30, 15。


使用LIMIT OFFSET 分页时,随着N越来越大,查询效率也会越来越低。


SQL Server中可采用以下sql语句:



–查前五条信息``select TOP 5 *from students;



–如果要查 第四条到第七条信息SELECT TOP 4 * FROM studentsWHERE students.idNOT IN(SELECT TOP 3 id FROM students)


Oracle中可采用以下sql语句:



–查前五条信息``SELECT * FROM EMP WHERE ROWNUM <= 5;



–如果要查 第四条到第七条信息select * from (select t.*,rownum rn from tmmis01 t)where rn>=4 and rn<=7


**6.聚合查询**


查询students表一共有多少条记录为例,我们可以使用SQL内置的COUNT()函数查询



SELECT COUNT(*) FROM students;


– 使用聚合查询并设置结果集的列名为num:



SELECT COUNT(*) num FROM students;


COUNT(\*)和COUNT(id)实际上是一样的效果。另外注意,聚合查询同样可以使用WHERE条件,因此我们可以方便地统计出有多少男生、多少女生、多少80分以上的学生等:



SELECT COUNT(*) boys FROM students WHERE gender = ‘M’;




|  |  |
| --- | --- |
| SUM | 计算某一列的合计值,该列必须为数值类型 |
| AVG | 计算某一列的平均值,该列必须为数值类型 |
| MAX | 计算某一列的最大值 |
| MIN | 计算某一列的最小值 |


注意,MAX()和MIN()函数并不限于数值类型。如果是字符类型,MAX()和MIN()会返回排序最后和排序最前的字符。



– 使用聚合查询计算男生平均成绩:``SELECT AVG(score) average FROM students WHERE gender = ‘M’;


如果聚合查询的WHERE条件没有匹配到任何行,COUNT()会返回0,而SUM()、AVG()、MAX()和MIN()会返回NULL。


**分组**


如果我们要统计一班的学生数量,我们知道,可以用 SELECT COUNT(\*) num FROM students WHERE class\_id = 1; 如果要继续统计二班、三班的学生数量,难道必须不断修改WHERE条件来执行SELECT语句吗?


对于聚合查询,SQL还提供了“分组聚合”的功能。我们观察下面的聚合查询:



SELECT class_id, COUNT(*) num FROM students GROUP BY class_id;


结果为三个结果:




| class\_id | num |
| --- | --- |
| 1 | 4 |
| 2 | 3 |
| 3 | 3 |


需注意分组后,只能 select 分组的字段,如果查询其他字段会提示“不是 GROUP BY 表达式”



–通过class_id, gender分组查询SELECT class_id, gender, COUNT(*) num FROM studentsGROUP BY class_id, gender;




| class\_id | gender | num |
| --- | --- | --- |
| 1 | M | 2 |
| 1 | F | 2 |
| 2 | F |  |


#### 17


|


**7.多表查询**


例如,同时从students表和classes表的“乘积”,即查询数据,可以这么写:



SELECT * FROM students, classes;



SELECT students.id sid, students.name, students.gender, students.score, classes.id cid, classes.name cname``FROM students, classes;



SELECT s.id sid, s.name, s.gender, s.score, c.id cid, c.name cnameFROM students s, classes cWHERE s.gender = ‘M’ AND c.id = 1;


**8.连接查询**



SELECT s.id, s.name, s.class_id, s.gender, s.score FROM students s;


现在问题来了,存放班级名称的name列存储在classes表中,只有根据students表的class\_id,找到classes表对应的行,再取出name列,就可以获得班级名称。连接查询就派上了用场。我们先使用最常用的一种内连接——INNER JOIN来实现:



SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.scoreFROM students sINNER JOIN classes c``ON s.class_id = c.id;



SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.scoreFROM students sLEFT OUTER JOIN classes c``ON s.class_id = c.id;



SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.scoreFROM students sRIGHT OUTER JOIN classes c``ON s.class_id = c.id;



SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.scoreFROM students sFULL OUTER JOIN classes c``ON s.class_id = c.id;


![](https://img-blog.csdnimg.cn/img_convert/c82f4801dd44aa880f7b86d10db5226c.jpeg)


注意INNER JOIN查询的写法是:


1. 先确定主表,仍然使用FROM <表1>的语法;
2. 再确定需要连接的表,使用INNER JOIN <表2>的语法;
3. 然后确定连接条件,使用ON <条件…>,这里的条件是s.class\_id = c.id,表示students表的class\_id列与classes表的id列相同的行需要连接;
4. 可选:加上WHERE子句、ORDER BY等子句。


使用别名不是必须的,但可以更好地简化查询语句。


那什么是内连接(INNER JOIN)呢?先别着急,有内连接(INNER JOIN)就有外连接(OUTER JOIN)。我们把内连接查询改成外连接查询,看看效果:


执行上述RIGHT OUTER JOIN可以看到,和INNER JOIN相比,RIGHT OUTER JOIN多了一行,多出来的一行是“四班”,但是,学生相关的列如name、gender、score都为NULL。


这也容易理解,因为根据ON条件s.class\_id = c.id,classes表的id=4的行正是“四班”,但是,students表中并不存在class\_id=4的行。


有RIGHT OUTER JOIN,就有LEFT OUTER JOIN,以及FULL OUTER JOIN。它们的区别是:


**INNER JOIN只返回同时存在于两张表的行数据**,由于students表的class\_id包含1,2,3,classes表的id包含1,2,3,4,所以,INNER JOIN根据条件s.class\_id = c.id返回的结果集仅包含1,2,3。


\*\*RIGHT OUTER JOIN返回右表都存在的行。\*\*如果某一行仅在右表存在,那么结果集就会以NULL填充剩下的字段。


\*\*LEFT OUTER JOIN则返回左表都存在的行。\*\*如果我们给students表增加一行,并添加class\_id=5,由于classes表并不存在id=5的行,所以,LEFT OUTER JOIN的结果会增加一行,对应的class\_name是NULL。


最后,我们使用**FULL OUTER JOIN,它会把两张表的所有记录全部选择出来,并且,自动把对方不存在的列填充为NULL**。


**-End-**  
 `**黑客&网络安全如何学习**


**今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。**


#### **1.学习路线图**


![](https://img-blog.csdnimg.cn/img_convert/f6d7a70326a6c0071cc4dc6b3eeb8f95.png)


攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。


#### **2.视频教程**


网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。


![](https://img-blog.csdnimg.cn/img_convert/0d8fcc94a8238255b741c19633efd10c.jpeg)


(都打包成一块的了,不能一一展开,总共300多集)


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取


****************************************************************************************************************************************************************************************************************************************************************[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]( )****************************************************************************************************************************************************************************************************************************************************************




![img](https://img-blog.csdnimg.cn/img_convert/3392823e12488c33713ae7dc520f19ac.png)
![img](https://img-blog.csdnimg.cn/img_convert/91329fe94c14d653531b2f83d2c06049.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

存中...(img-6k5mivq0-1715811299172)]
[外链图片转存中...(img-JMC8B6AE-1715811299173)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值