当前位置:   article > 正文

数据库、计算机网络,操作系统刷题笔记6_数据库操作系统计算机网络

数据库操作系统计算机网络

数据库、计算机网络,操作系统刷题笔记6

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!
考网警特招必然要考操作系统,计算机网络,由于备考时间不长,你可能需要速成,我就想办法自学速成了,课程太长没法玩

刷题笔记系列文章:
【1】Oracle数据库:刷题错题本,数据库的各种概念
【2】操作系统,计算机网络,数据库刷题笔记2
【3】数据库、计算机网络,操作系统刷题笔记3
【4】数据库、计算机网络,操作系统刷题笔记4
【5】数据库、计算机网络,操作系统刷题笔记5


子查询先做最内层
在这里插入图片描述
最内层:
从客户表中,找纽约的用户id
所以锁定范围在纽约
在这里插入图片描述

然后第二个括号
在订单表中查这些顾客id的订单总量
在这里插入图片描述
主查询展示id和订单总量,

整个命令的含义:就是说展示orders表中,订单总量大于纽约的订单总量最小值的那些id和订单数量

妥了,很简单的
any是任意一个,最小值
all是全部,最大值
在这里插入图片描述
好说
结果就是
在这里插入图片描述
好说
在这里插入图片描述
在这里插入图片描述
第一个小括号去掉,无所谓
第二个小括号去掉,无所谓
第三个外面的小括号去掉,无所谓
中间的小括号去掉,无所谓
都是乘法,没啥大不了

所以没有影响的
在这里插入图片描述
优先级:()最大,先乘除后加减
优先级相同,从右往左,右边优先
在这里插入图片描述
在这里插入图片描述

定义约束的格式,要清楚哦

表级约束
列级约束

作用于一列
第一种,定义列直接后面跟约束:

SQL> create table test4(stuno number primary key);
SQL> create table test4(stuno number not null);
SQL> create table test4(stuno number unique);
SQL> create table test4(stuno number default 1);
SQL> create table test4(stuno number check(sunno>3));

表已创建。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

unique不适用于null哦!!!!!!

SQL> create table test4(id number primary key,name varchar(20) not null unique,address varchar(20) default 'guangzhou' check(length(address)>1), other varchar(20) unique);

表已创建。

SQL> insert into test4(id,address,other) values(1,default,'a');
insert into test4(id,address,other) values(1,default,'a')
*1 行出现错误:
ORA-01400: 无法将 NULL 插入 ("HR"."TEST4"."NAME")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

你想插入name为null那是不行的
因为限定了name是非空且唯一的

SQL> insert into test4(id,name,address,other) values(2,'a',default,null);
  • 1

unique可以为null而且不是唯一哦

随你

SQL> insert into test4(id,name,address,other) values(3,'c',default,null);

已创建 1 行。
  • 1
  • 2
  • 3

看见没有,unique对null是无效的哦

SQL> insert into test4(id,name,address,other) values(4,'c',default,null);
insert into test4(id,name,address,other) values(4,'c',default,null)
*1 行出现错误:
ORA-00001: 违反唯一约束条件 (HR.SYS_C0011645)
  • 1
  • 2
  • 3
  • 4
  • 5

但是你看关于name的限定,一个非空,一个唯一,c就不能重复哦

SQL> set linesize 200;
SQL> select * from test4;

        ID NAME                                     ADDRESS                                  OTHER
---------- ---------------------------------------- ---------------------------------------- ----------------------------------------
         1 a                                        guangzhou                                a
         3 c                                        guangzhou

SQL>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

目前就这个样子了
在这里插入图片描述
注意,有多个约束时
default必须放第一个!!!!!!!!!

SQL> create table test5(id number primary key,name varchar(20) not null unique,address varchar(20) check(length(address)>1) default 'aaaa', other varchar(20) unique);
create table test5(id number primary key,name varchar(20) not null unique,address varchar(20) check(length(address)>1) default 'aaaa', other varchar(20) unique)
                                                                                                                       *1 行出现错误:
ORA-00907: 缺失右括号
  • 1
  • 2
  • 3
  • 4
  • 5

你瞅瞅check在default前面就不行
多个约束,必须default在前面
!!!

别的约束可以随意换!

主键约束和唯一约束,报错都是唯一约束失败,因为主键非空且唯一。

好说
在这里插入图片描述

表级约束:

constraint 约束名字 约束类型(字段)
好处是可以同时放好多字段,而不是每个字段都去给它限定
在这里插入图片描述

SQL> create table test5(id number,name varchar(20),address varchar(20),other varchar(20),constraint pk_id primary key(id),constraint uq_name_address unique(name,address));

表已创建。
  • 1
  • 2
  • 3

constraint uq_name_address unique(name,address));
constraint 跟约束的名字,跟约束的类型,加括号(中间是约束的字段)

表级方式,可以加外键哦
命名方式也很简单
A表的a字段,B表的b字段
constraint 跟约束的名字,跟约束的类型,加括号(A表的a字段)参考references B表(b字段)

在这里插入图片描述
所以;
在这里插入图片描述
A references后面表名(字段),没有括号,不行
B 没有明确说我是哪种约束类型
在这里插入图片描述
C有约束类型怎么放最后了,gg
D约束类型放前面可以,后面跟约束名字,和参考表,OK的

SQL> create table dept40(id number, d_id number, constraint dept40_fk foreign key(d_id) references dept50(id));
create table dept40(id number, d_id number, constraint dept40_fk foreign key(d_id) references dept50(id))

ORA-02270: 此列列表的唯一关键字或主键不匹配

  • 1
  • 2
  • 3
  • 4
  • 5

反正这种是标准格式,唯独D可以
在这里插入图片描述
在这里插入图片描述
将日期转换为字符标准格式
函数就是tochar
A括号里面是一个今天日期-受雇日期,得天数,你没法转化为日期格式啊

SQL> select sysdate-(sysdate-1) from dual;

SYSDATE-(SYSDATE-1)
-------------------
                  1
SQL> select to_date(sysdate-(sysdate-1)) from dual;
select to_date(sysdate-(sysdate-1)) from dual
                      *1 行出现错误:
ORA-01840: 输入值对于日期格式不够长
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

看见了吗,2天日期减完没法转日期了,数字怎么转
在这里插入图片描述

B括号里面是日期,不需要转化为日期

SQL> select to_date('20220202','yy-mm-dd') from dual;

TO_DATE('20220
--------------
02-2-22
  • 1
  • 2
  • 3
  • 4
  • 5

to_date的本意是将字符串格式的日期,转化为日期,本身是日期没法转的

SQL> select to_date(to_char(sysdate,'yy-mm-dd'),'yy-mm-dd') from dual;

TO_DATE(TO_CHA
--------------
01-12-22
  • 1
  • 2
  • 3
  • 4
  • 5

你看,我把今天的日期转字符串,你再通过这种方式转日期,就OK了
很简单的

C括号里面是日期,可以转化为字符串,格式OK【很正确】
C正确哦!
D已经是天数,没法转化为字符串,和A类似
在这里插入图片描述
delete from
才是删除哦

SQL> insert into test5 values(1,'1','11','1');

已创建 1 行。

SQL> delete test5;

已删除 1 行。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

卧槽,还可以这么搞???????????????
所以答案选择C哦,语法没问题

语法上可以,但是不建议这么玩哦
最好是delete from

其实直接delete也行的,我记得清华那个老师讲过,就是整体删除,问题不大的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
C默认名字也行吧
DOK的
那就优先D

别名:不能是关键字
要用关键字,那需要双引号“”
空格需要双引号
单引号没法玩空格的
B正确哦
在这里插入图片描述
C有空格

initcap,首字母大写

SQL> select 12*salary initcap("annual salary") from employees;
select 12*salary initcap("annual salary") from employees
                        *1 行出现错误:
ORA-00923: 未找到要求的 FROM 关键字
  • 1
  • 2
  • 3
  • 4
  • 5

这里不能用函数作为别名

你只能这样搞

SQL> select 12*salary "Annual salary" from employees;

Annual salary
-------------
       156000
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述

null不是啥东西,不能用=
必须用is

ARP和RARP属于网络层协议。但是工作内容属于数据链路层

傻逼玩意题目
链接:https://www.nowcoder.com/questionTerminal/31980656cbf44c21a7fb906b04866ae7
来源:牛客网
在这里插入图片描述

ARP和RARP 是网络层的协议,但是它所工作的内容是链路层的。。。具体来说应该是在网络层。

地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。
因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。

从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

链接:https://www.nowcoder.com/questionTerminal/31980656cbf44c21a7fb906b04866ae7
来源:牛客网

ARP协议,ICMP是网络层,
UDP,TCP是传输层,
FTP和HTTP是应用层

在这里插入图片描述
网卡和适配器也在数据链路层哦!记住了

目前VPN隧道协议主要有4种:
点到点隧道协议PPTP、**PPP协议,**操蛋
第二层隧道协议L2TP、
网络层隧道协议IPSec以及SOCKS v5协议。

其中,PPTP和L2TP工作在数据链路层,
IPSec工作在网络层,SOCK v5工作在会话层。

傻逼题目

在这里插入图片描述

网卡:网络适配器在接收和发送各种帧时,不使用计算机的CPU,此时计算机的CPU可以处理其他任务;

链接:https://www.nowcoder.com/questionTerminal/4095014364554d15892b15e3c2be957b
来源:牛客网
在这里插入图片描述

网卡:网络适配器在接收和发送各种帧时,不使用计算机的CPU,此时计算机的CPU可以处理其他任务;

不然我造你干嘛呢????

收到有差错的帧时,就把帧直接丢弃不通知计算机;
收到正确的帧时,使用中断通知计算机,并交付协议栈中的网络层;
当计算机发送IP数据报时,由协议栈把IP数据报向下交付给适配器,组装成帧发送到局域网。
在这里插入图片描述

大型广域网和远程计算机网络大都采用网状拓扑结构

大型广域网和远程计算机网络大都采用网状拓扑结构

其目的在于,通过邮电部门提供的线路和服务,将若干个不同位置的局域网连接在一起

在这里插入图片描述

双绞线最大传输距离100米

gg

双绞线100米,同轴电缆185–500米,光纤:几十几百公里(单模>多膜

这题目几百年前的了吗不懂

在这里插入图片描述

在这里插入图片描述
1000字节——用啥类型,这个要了解

alter table 表名字 字段 修改后的类型
变长的varchar2是变长的
在这里插入图片描述
char是定长
varchar2变长,字节单位
nvarchar2变长,字符单位
所以
在这里插入图片描述

 desc test5;
 名称                                                                                                              是否为空? 类型
 ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
 ID                                                                                                                NOT NULL NUMBER
 NAME
            VARCHAR2(20)
 ADDRESS
            VARCHAR2(20)
 OTHER
            VARCHAR2(20)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

test5的字段基本都是varchar2
我们将name改变长1000的类型

SQL> alter table test5 modify(name varchar2(1000));

表已更改。

SQL> desc test5;
 名称                                                                                                              是否为空? 类型
 ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
 ID                                                                                                                NOT NULL NUMBER
 NAME
            VARCHAR2(1000)
 ADDRESS
            VARCHAR2(20)
 OTHER
            VARCHAR2(20)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

easy,反正该看的看,这些都要搞清楚。
在这里插入图片描述
number(p,s)
p整数位
s小数位
number(38,0)=integer
在这里插入图片描述
在这里插入图片描述
数据库操作语言:增删改【DML】 查【DQL是查询】,delete,insert into
DDL定义语言:创建,修改表,删除表,视图啥的alter啥的,drop
DCL控制语言:grant,revoke,deny

在这里插入图片描述
这仨函数很强的
trunc截取小数点后的几位
如果是-1,-2,-3,就往前面截取,-1就是个位数直接废成0
-2是十位个位废成0
-3是百位十位个位都废成0

懂?

SQL> select trunc(123.567,1) from dual;

TRUNC(123.567,1)
----------------
           123.5

SQL> select trunc(123.567,-1) from dual;

TRUNC(123.567,-1)
-----------------
              120

SQL> select trunc(123.567,-2) from dual;

TRUNC(123.567,-2)
-----------------
              100

SQL> select trunc(123.567,-3) from dual;

TRUNC(123.567,-3)
-----------------
                0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

那么本题:

SQL> select mod(1600,10) from dual;

MOD(1600,10)
------------
           0
SQL> select trunc(0,-1) from dual;

TRUNC(0,-1)
-----------
          0
SQL> select round(0,2) from dual;

ROUND(0,2)
----------
         0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

懂了吧
四舍五入一个道理,只不过舍掉那个大于=5,需要向前进位1
在这里插入图片描述
round和trunc都可以 用于日期的骚操作
在这里插入图片描述
数字默认整数,你保留几个都是0

不用屁股加0了

在这里插入图片描述
在这里插入图片描述
子查询
从客户表中查Smith的cust_id
然后去订单中查cust_id的订单

查Smith的订单

在这里插入图片描述
显然这题目选D 啊

子查询有俩Smith
主查询就不能用=
而应该是in

这很好说

在这里插入图片描述

数据库:关系型sql类型–二维表结构
nosql型:非关系型

在这里插入图片描述
在这里插入图片描述
组的结果过滤,having

where是过滤行
group by分组
order by排序
在这里插入图片描述
在这里插入图片描述

oracle默认账户:
scott/tiger
system/manager
sys/change_on_install

默认端口号
oracle:1521
mysql:3306
sqlserver:1433

在这里插入图片描述
在这里插入图片描述
事务操作,只对DML有效,对增删改查有效,对DDL【create啥的】,DCL无效【因为他们自动commit】
有savepoint,那就去savepoint
单一个rollback,那就返回上一次commit之后那行。

我解析,
1建表
3插入数据,copy来
4 s1
5将字段name的所有名字全部改为大写,无所谓
6 s2
7删除里面的数据
8恢复数据,去s2,等于没干
9删除180id的数据行
10将表name字段所有名字全部改为James
11恢复数据,去s2,等于没干
12将id为180的那行名字改为james
13 rollback是,返回到上一次commit那里,那就是直接返回到第3行………………
故里面没有数据哈哈哈哈哈哈哈,很骚吧!!!!!!!!!!!!

因此本题选A

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这是oracle特有的,全连接——不对
不论e表,是否有部门,都要展示,e在左边,那就是左链接哦!!!!

左右链接,都是mysql和oracle公有的

select name,depid from employees e left outer join departments d on e.depid=d.depid;

在这里插入图片描述
在这里插入图片描述
F正确哦

在这里插入图片描述
B对的
count咋可能小数呢

不是求数据
总和是sum
在这里插入图片描述
这波好说

B

月薪不可能为null哦

在这里插入图片描述
序列是不需要特定表用的
可以供给给所有表使用哦——B错
C默认只有自己和管理员,其他用户不可用
D谁创建谁可以用,不见得一定要管理员
E不会自动,需要你手动用

——这玩意接触得很少
在这里插入图片描述

create sequence myseq increment by 2 start with 10000 maxvalue 100000
伪列
nextval下一个值
curraval当前值

SQL> create sequence myseq  increment by 2 start with 10000 maxvalue 100000;

序列已创建。

SQL> select myseq.nextval,id from test3;

   NEXTVAL         ID
---------- ----------
     10000          1
     10002          3
     10004          4

SQL>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

nextval默认指向那个没用过的序列

hr用户可以创建,普通用户需要授权的
create sequence的权限
只能是创建序列的用户或者管理员才能修改
修改序列,只会影响修改之后的数据,以前用过了的序列不能动了
用了123,后面改了2间隔,那修改之后就是5,前面的不动
在这里插入图片描述
select any sequence
其他用户要查询我hr创建的序列,你要用,还得授权才行
在这里插入图片描述
还是default
number没法玩,status是需要char

当初说过,create or replace,是建立在你已经有了表的情况下,还行,否则不行的

在这里插入图片描述
在这里插入图片描述
创建表和sequence时,不能加or replace

下面可以:
function, procedure,package,type,synonym,view,trigger
在这里插入图片描述
在这里插入图片描述
所以E是答案
在这里插入图片描述

在这里插入图片描述
部门名称
自己写一个语句,就不用一个个查了

链接字段:department_id
员工和经理,得用自连接,因为经理也是员工

select last_name ename,last_name mname,department_name from employees e inner join employees b on e.manager_id = b.employee_id inner join departments d on e.department_id = d.department_id;
三张表,第一张自连接:自连接的条件很重要,第一张看员工的经历id,拿去对应经理表的员工id
还有一张普通链接
都可以用inner join
前后把各自的条件写清楚。

内连接的话,是不展示没有部门的员工名字哦
在这里插入图片描述
left outer join也行的
没问题
反正e表放左边即可
因为是所有员工,所以没有部门的也要展示

美滋滋!


总结

提示:重要经验:

1)
2)学好oracle,操作系统,计算机网络,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程谜题解决者/article/detail/61876
推荐阅读
相关标签
  

闽ICP备14008679号