常见面试题- 一

https://mp.weixin.qq.com/s/WYcQyPY6msVhSH7A-yTBxQ
get和post请求有什么区别?
两者都是基于http协议发送请求

  1. get和post请求都是客户端向服务器提交的一种请求方式,
    get是明文传输参数,带在URL上的,倾向于请求服务器资源,
    post传输数据不可见,是在bodyData中,安全性更高,倾向于向服务器提交数据
  2. 传输数据的大小
    get请求上传的数据不能大于2KB(是因为浏览器对于URL的长度有限制),而Post请求对于传输的数据理论上来说是没有限制的。所以,在JavaWeb开发中,对于文件的上传的表单的提交方法必须为“Post”方式。
  3. GET和POST还有一个重大区别,简单的说:
    GET产生一个TCP数据包;POST产生两个TCP数据包。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

http的相应状态码
1xx:指示信息–表示请求已接受,继续处理,
例如100 Continue: 服务器通知浏览器之前一切正常,请客户端继续请求,如果请求结束,可忽略;
2xx:成功–表示请求已被成功接收;例如200 OK: 请求成功
3xx:重定向–要完成请求必须进行更进一步的操作;
4xx:客户端错误–请求有语法错误或请求无法实现;例如 400 Bad Request: 请求语法有问题,服务器无法识别。404 Not Found: URL无效或者URL有效但是没有资源
5xx:服务区端错误–服务器未能实现合法的请求;例如:500 Internal Server Error: 服务器内部错误,未捕获

什么时候使用MQ
简而言之:是一种跨进程的通信方式,用于上下游信息的传递。
优点:解耦(服务器物理解耦、业务逻辑解耦)
缺点:
1、上游无法知道下游执行结果,除非。。。(方法很多,但都会增加难度)
2、不丢失不重复难以确保
3、系统多了一个MQ组件
4、链路实际是变长了。
**应用场景
使用MQ:后任务订阅或者消费前任务即可;
上游不关心下游执行结果;
上游不迫切的马上需要知道执行结果;

################################################

sql数据库面试题

标题 left join, right join, inner join;

1.查询配对成功的男女嘉宾信息
select * from girls t1,boys t2 where t1.matchNum = t2.matchNum;
select * from girls t1 inner join boys t2 on t1.matchNum = t2.matchNum;
2. 查看女嘉宾信息和牵手情况
select * from girls left join boys on girls.matchNum = boys=matchNum;
3. 查看未牵手的女嘉宾信息
select * from girls left join boys on girls.matchNum = boys=matchNum where boys.id IS NULL;

UNION

查询第二高分

select MAX(eo.return_score) from v2_intelligent_evaluate_order eo where eo.return_score < (select MAX(eo.return_score) from v2_intelligent_evaluate_order eo where eo.fullname=‘石思波’)

1.where和having的区别

where:
where是一个约束声明,使用where来约束来自数据库的数据;
where是在结果返回之前起作用的;
where中不能使用聚合函数。

having:
having是一个过滤声明;
在查询返回结果集以后,对查询结果进行的过滤操作;
在having中可以使用聚合函数。

2.where和having的执行顺序

where 早于 group by 早于 having
where子句在聚合前先筛选记录,也就是说作用在group by 子句和having子句前,而 having子句在聚合后对组记录进行筛选

3.where不能使用聚合函数、having中可以使用聚合函数

#筛选出北京西城、东城、海淀及各区学校数量
SELECT region,count(school)
FROM T02_Bejing_school
WHERE region IN (‘海淀’ , ‘西城’ , ‘东城’) GROUP BY region;
#筛选出北京西城、东城、海淀三个区中学校数量超过10所的区及各区学校数量。
SELECT region,count(school)
FROM T02_Bejing_school
WHERE region IN (‘海淀’ , ‘西城’ , ‘东城’)
GROUP BY region HAVING count(school) > 10;

4.聚合函数和group by

聚合函数就是
例如SUM, COUNT, MAX, AVG
对一组(多条)数据操作的函数,需要配合group by 来使用。
#如:
SELECT SUM(population),region FROM T01_Beijing GROUP BY region; //计算北京每个分区的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值