2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!
考网警特招必然要考操作系统,计算机网络,由于备考时间不长,你可能需要速成,我就想办法自学速成了,课程太长没法玩
刷题笔记系列文章:
【1】Oracle数据库:刷题错题本,数据库的各种概念
【2】操作系统,计算机网络,数据库刷题笔记2
【3】数据库、计算机网络,操作系统刷题笔记3
【4】数据库、计算机网络,操作系统刷题笔记4
【5】数据库、计算机网络,操作系统刷题笔记5
【6】数据库、计算机网络,操作系统刷题笔记6
【7】数据库、计算机网络,操作系统刷题笔记7
【8】数据库、计算机网络,操作系统刷题笔记8
【9】操作系统,计算机网络,数据库刷题笔记9
【10】操作系统,计算机网络,数据库刷题笔记10
【11】操作系统,计算机网络,数据库刷题笔记11
【12】操作系统,计算机网络,数据库刷题笔记12
【13】操作系统,计算机网络,数据库刷题笔记13
【14】操作系统,计算机网络,数据库刷题笔记14
【15】计算机网络、操作系统刷题笔记15
【16】数据库,计算机网络、操作系统刷题笔记16
【17】数据库,计算机网络、操作系统刷题笔记17
【18】数据库,计算机网络、操作系统刷题笔记18
【19】数据库,计算机网络、操作系统刷题笔记19
【20】数据库,计算机网络、操作系统刷题笔记20
【21】数据库,计算机网络、操作系统刷题笔记21
新知识点
将结果拼接:union关键词
select count(*),avg(sal) from emp where comm is not null and comm !=0;
SQL> select count(*),avg(sal) from emp where comm is not null and comm !=0;
COUNT(*) AVG(SAL)
---------- ----------
3 1366.66667
没有奖金的
反过来
select count(*),avg(sal) from emp where comm is null or comm =0;
COUNT(*) AVG(SAL)
---------- ----------
11 2265.90909
看样子很多人都没有奖金 啊
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
已选择14行。
确实是这样
现在,将俩结果union
SQL> select count(*),avg(sal) from emp where comm is not null and comm !=0 union select count(*),avg(sal) from emp where comm is null or comm =0;
COUNT(*) AVG(SAL)
---------- ----------
3 1366.66667
11 2265.90909
牛啊,这可是新知识
minus:补集,AUB-B
只包含左边的但是不在右边的
验证语法
SQL> select count(*),avg(sal) from emp where comm is not null and comm !=0 union select count(*),avg(sal) from emp where comm is null or comm =0;
COUNT(*) AVG(SAL)
---------- ----------
3 1366.66667
11 2265.90909
SQL> select count(*),avg(sal) from emp where comm is not null and comm !=0 union all select count(*),avg(sal) from emp where comm is null or comm =0;
COUNT(*) AVG(SAL)
---------- ----------
3 1366.66667
11 2265.90909
SQL> select count(*),avg(sal) from emp where comm is not null and comm !=0 intersect select count(*),avg(sal) from emp where comm is null or comm =0;
未选定行
SQL> select count(*),avg(sal) from emp where comm is not null and comm !=0 minus select count(*),avg(sal) from emp where comm is null or comm =0;
COUNT(*) AVG(SAL)
---------- ----------
3 1366.66667
没错,美滋滋
集合运算,各个集合的列数和类型,必须保保持一致
类型一致,显示左边结果的字段名字
反正列数和类型一致就行
SQL> select deptno,job, sum(sal) from emp group by deptno,job;
DEPTNO JOB SUM(SAL)
---------- ------------------ ----------
20 CLERK 1900
30 SALESMAN 5600
20 MANAGER 2975
30 CLERK 950
10 PRESIDENT 5000
30 MANAGER 2850
10 CLERK 1300
10 MANAGER 2450
20 ANALYST 6000
已选择9行。
sum是一列
只按照部门分组
SQL> select deptno, sum(sal) from emp group by deptno;
DEPTNO SUM(SAL)
---------- ----------
30 9400
20 10875
10 8750
总工资
SQL> select sum(sal) from emp;
SUM(SAL)
----------
29025
如果你连接,会发生啥呢???
每个结果的列数量,不同,所以不能联合
你想要对其怎么搞?
没有列的地方用null来对齐
SQL> select deptno,job, sum(sal) from emp group by deptno,job union
2 select deptno,null, sum(sal) from emp group by deptno union
3 select null,null, sum(sal) from emp;
DEPTNO JOB SUM(SAL)
---------- ------------------ ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400
29025
已选择13行。
这样的话,仨结果都能展示了
但是很差劲
我们有一个新的知识点,增强group by
rollup()
SQL> select deptno,job,sum(sal) from emp rollup(deptno,job);
select deptno,job,sum(sal) from emp rollup(deptno,job)
*
第 1 行出现错误:
ORA-00933: SQL 命令未正确结束
group by必须要有哦
SQL> select deptno,job,sum(sal) from emp group by rollup(deptno,job);
DEPTNO JOB SUM(SAL)
---------- ------------------ ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 CLERK 1900
20 ANALYST 6000
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 9400
29025
已选择13行。
怎么样,牛逼吧
SQL> select min(sal) from emp group by job;
MIN(SAL)
----------
800
1250
5000
2450
3000
同时,我们要展示这个工资对应的人,那需要子查询了吧
然后拿着这个工资去去找哪些人
SQL> select ename,sal from emp where sal in(select min(sal) from emp group by job);
ENAME SAL
-------------------- ----------
SMITH 800
WARD 1250
MARTIN 1250
CLARK 2450
SCOTT 3000
KING 5000
FORD 3000
已选择7行。
好说
当然,也可以用自连接来搞定
如果要是没有这种条件呢?
如果这些核心几个字段都相同,就算是同一个人
这叫全值连接,尽力就行
咱们现在想把上面那个题,通过俩全值连接表的形式来写,而不是子查询
刚刚我们查询的min(sal),还有job编号,如果这俩对应了emp的sal和job
他俩就是同一个人,你觉得呢?????
select min(sal) minsal, job from emp group by job;
我们把它当一个表叫t表吧
然后想办法跟emp连接
select e.ename, t.job, t.minsal from emp e, (select min(sal) minsal, job from emp group by job) t where t.minsal=e.sal and t.job=e.job;
SQL> select e.ename, t.job, t.minsal from emp e, (select min(sal) minsal, job from emp group by job) t where t.minsal=e.sal and t.job=e.job;
ENAME JOB MINSAL
-------------------- ------------------ ----------
SMITH CLERK 800
WARD SALESMAN 1250
MARTIN SALESMAN 1250
CLARK MANAGER 2450
SCOTT ANALYST 3000
KING PRESIDENT 5000
FORD ANALYST 3000
已选择7行。
你再对比一下这句话的结果,上面那个
SQL> select ename,sal from emp where sal in(select min(sal) from emp group by job);
ENAME SAL
-------------------- ----------
SMITH 800
WARD 1250
MARTIN 1250
CLARK 2450
SCOTT 3000
KING 5000
FORD 3000
已选择7行。
俩是不是一样
但是今天学到的知识点,就是全值连接,美滋滋
懂??
还是子查询轻松
美滋滋
链接:https://www.nowcoder.com/questionTerminal/f43f8fde9de8492aaff978642d84537c
来源:牛客网
HTTP协议是无状态协议
无状态是指协议对于事务处理没有记忆能力。
缺少状态意味着如果后续处理需要前面的信息,则它必须重传,
这样可能导致每次连接传送的数据量增大。
另一方面,在服务器不需要先前信息时它的应答就较快。
这波就是TCP了
骚啊,不懂
链接:https://www.nowcoder.com/questionTerminal/71461dd9d28c47709bdb314853319337
来源:牛客网
设t为一个站的发送设备到其他所有站的接收设备的最大延迟时间,
在帧传送过程中,若在2t时间内未检测到冲突,则说明传送成功,这段时间内传送的数据帧就是最短帧长度L;
设最大传输距离为M,传输速度为D,传输速率为C,则
L = M/D ×2× C
当c增大,L就降低了
ADNS:硬件防火墙
PDNS 本身是一个支持 mysql 数据库的 dns 服务器。
TFTP 使用UDP
FTP 使用TCP
Ping是对两个TCP/IP系统连通性进行测试的基本工具,它利用ICMP进行基本的请求的应答
D
Telnet 是标准的提供远程登录功能的应用,可以在不同OS系统的主机之间运行
链接:https://www.nowcoder.com/questionTerminal/2183ad9dced8488b8ded5bbc8f8272f6
来源:牛客网
道程序系统几个特点:
1. 资源独占性
任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争
2. 执行的顺序性
内存中只有一个程序,各个程序是按次序执行的。在做完一个程序的过程中,不可能夹杂进另一个程序执行
3. 结果的可再现性
只要执行环境和初始条件相同,重复执行一个程序,获得的结果总是一样的
4. 运行结果的无关性
程序的运行结果与程序执行的速度无关。系统中的作业以串行的方式被处理,无法提高CPU、内存的利用率
本来就是有序的,故不需要同步互斥
链接:https://www.nowcoder.com/questionTerminal/cf249eb8bd5340b3ab4bc8f0cf3ad645
来源:牛客网
题目中物理内存是指实际的内存,而虚拟内存是指磁盘交换区,并不是真正的虚拟内存的意思。
所以对于页面置换算法来讲,当发生缺页中断时,都是要从内存中找到一个不需要的块换出去(对应物理内存的释放),然后将需要页面从磁盘的交换区中换进来(虚拟内存的分配)
大概是7、3、12、5、6分别至少需要23、22、24、23、23,所以3+2+4+3+3=15
链接:https://www.nowcoder.com/questionTerminal/9bfe653b3c1d4cdabc151ccf240097f8
来源:牛客网
微软操作系统(DOS、WINDOWS等)中磁盘文件存储管理的最小单位叫做“簇”
扇区:硬盘不是一次读写一个字节而是一次读写一个扇区(512个字节)
簇:系统读读写文件的基本单位,一般为2的n次方个扇区(由文件系统决定)
块可以包含若干页,页可以包含若干簇,簇可以包含若干扇区
扇区是磁盘的最小物理存储单元,最小磁盘空间单位是簇,扇区<簇
这个题目错了第3次了!!!!!
链接:https://www.nowcoder.com/questionTerminal/f06445d6fca44916be82b3114ac7a5cd
来源:牛客网
死锁出现必须满足4个条件:互斥、非抢占、请求和保持、循环等待。
A、因为静态分配是指进程在运行之初,一次性请求所有需要的资源,所以破坏了请求和保持这个条件。
C、因为这种方法规定每个进程必须按编号递增的顺序请求资源,同类资源一次性申请完,所以破坏了循环等待的条件
E、很显然,破坏了非抢占这个条件。
提示:重要经验:
1)
2)学好oracle,操作系统,计算机网络,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。