双非二本找实习前的准备day5

学习目标:

每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),今天的八股背少一点,MySQL和Redis各1-2道好了,主攻复习是java基础

今日碎碎念:

1)今天刷SQL以及复习Java基础,就不写算法了,另外就是复习之前的八股


力扣刷题

SQL

力扣1873:1873. 计算特殊奖金

解答思路:

        1)本题练习的主要是如何使用正则表达式以及在查询中使用If,当然,也可以使用模糊查询和取余都是可以的

# 计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 'M' 开头
# 那么他的奖金是他工资的 100% ,否则奖金为 0
select 
        employee_id,
        IF(employee_id % 2 = 1 AND name NOT REGEXP '^M', salary, 0) as bonus
    from Employees
    order by employee_id

这里直接粘上评论区的代码了

select
    employee_id,
    if(
        employee_id%2=1 and name not like 'M%',
        salary,
        0
    ) as bonus
from employees
order by employee_id;

作者:随遇而安
链接:https://leetcode.cn/problems/calculate-special-bonus/solutions/2051411/by-sui-yu-er-an-xw-2tpr/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

还有就是可以使用MOD函数

Mod(a,b) 在sql中的意思是 a % b

Mod基础用法:如果id需要是偶数或者奇数时就可以使用mod。

mod(id,2)=1 是指id是奇数。
mod(id,2)=0 是指id是偶数。


力扣1661:1661. 每台机器的进程平均运行时间

解答思路:

        1)本题练习到基础函数的使用,同时也是一道练习自连接的好题目

        2)限制精度到小数点后几位,我也记录了好几道题了,就是使用round即可

# 数据都在同一列,我们无法进行计算,因此要想办法让需要的数据体现在一行
# 因此得自连接
select 
        a1.machine_id,
        round(avg(a2.timestamp - a1.timestamp),3) as processing_time
    from Activity as a1 join Activity as a2
    on
        a1.machine_id=a2.machine_id and 
        a1.process_id=a2.process_id and
        a1.activity_type ='start' and 
        a2.activity_type ='end' 
    group by machine_id


八股

计算机网络

TCP

1.TCP三次握手和四次挥手
2.TCP 如何保证传输的可靠性?
3.TCP和UDP的区别
4.TCP的三次握手中为什么是三次?为什么不是两次?四次?
5.TCP的四次挥手中为什么是四次?为什么不是三次?
6.TCP的拥塞控制是怎么实现的?
7.TCP流量控制和拥塞控制的区别
8.TCP如何实现流量控制

HTTP

1.常见状态码
2.从输入URL到页面展示到底发生了什么
3.GET和POST的区别是什么
4.HTTP和HTTPS有什么区别
5.Cookie和Session有什么区别

你可能感兴趣的:(leetcode,java,数据结构,算法,职场和发展)