oracle 会话数上不去_Oracle初识

6c353abcd18385bd0db3a1aed396b34a.png

1、基本概念

oracle数据库是一个物理概念,oracle实例是数据库在内存中的镜像,属于一种逻辑概念。

oracle数据库oracle实例至少是一对一的关系,也可能是一对多关系(oracle集群:RAC real application cluster)。

集群的优点:

  1. load balance 负载平衡
  2. fail over 失败迁移

8d2e6383ca2c210106d0b33c96af5dc6.png

数据文件:是一种物理概念,用来存储数据用的,后缀为.dbf的文件

e04f8876e9601c12bf91803122cd0244.png

表空间:表空间是一种逻辑概念,表空间有多个数据文件组成,数据文件只能属于一个表空间。

2、基本查询

命令中oracle的基本操作

  1. 清屏
sql    
  1. 操作数据库
sql    

tab就是当前用户的数据字典,可以查看当前用户的视图

e7fa2fad18c4f07af194d269e81bc208.png

5133775ee0b91eb2c324ddf67f859d41.png

基本SQL select 语句

  • 查询所有员工信息
sql   

SQL优化(数据库的优化)

  1. 尽量使用列名,数据库在解析*号时需要耗时。
  2. 尽量不要使用 集合运算 符号。
  3. where 解析的顺序问题
  • where 解析的顺序是从右往左解析;
  • 所以当一个子条件为假时,and 符号左侧的条件就不再判断;
  • 若Where子句和Having子句中都可以使用的条件,从语句的执行效率来看,最好写在Where子句中(where 先过滤再分组;having 先分组再过滤)

select查询语句

  • 查询中的空值null问题

查询员工的年收入,其中年收入=月薪*12+奖金

select 

下面的查询结果显然错误,没有奖金的员工居然没有年薪,奖金为空实际上表示奖金为零。

142b38d6dc6423a1d5462da498ff9b57.png

SQL中的null值问题:

  1. 空值是无效的,未指定的不可预知的值,空值并不是空格或0;
  2. 包含null的表达式都为null;
  3. null值永远!=null;
  4. 如果集合中含有null ,不能使用not in,但可以使用 in;
  5. 组函数(多行函数)自动滤空;可以嵌套滤空函数 来屏蔽他的滤空功能;
select 

6. null排序 ——>降序排列时:nulls last 语句将空值显示再查询结果的最后(oracle中null值最大)

d64348526586cdc17b436a5fff519715.png

oracle中的通用函数(滤空函数):nvl(a,b) 与 nvl2(expr1,expr2,expr3)

nvl

3bd6d4451c4350a256b5300a6be8eb68.png

查询奖金为null空的员工

-- 该语句无法查询出奖金为空的员工,因为null!=null

7b1ac90ee27bc721e89304aaa9b89cb6.png
  • 列的别名
  • 列的别名紧跟在列名之后,也可在列名和别名之间加入关键字“AS”;
  • 别名使用双引号,以便在别名中包含空格或特殊字符、数字等;
  • AS 关键字可以省略;

c51b0ef43f92f81743f0d9a6ee8f8067.png

列的别名的区别:

  1. 员工号与姓名这两个列名之间没有区别
  2. 姓名与月薪两个别名之间有区别,当别名中存在关键字、数字或者特殊符号(空格等),必须要添加双引号
  3. distinct关键字——去除重复记录
-- 查询员工的部门号,不同员工属于同一部门,部门有重复

93c909954a9df7db29fba0e235ecf7db.png

distinct 关键字 作用与select 后的所有列。distinct关键字保证所有的列组合起来是不相同的。

  • 连接符
    1、 把列与列,列于字符连接起来;2、用“||“表示; 3、可以用来”合成“列
-- 

6f12089ffaf9b85d04483f0f85a0cd81.png

可以使用concat()函数将两个字符串连接起来,oracle中提供dual伪表供使用

select 

伪表:dual表 dual表在Oracle中是非常特殊的一张表,它存在的意义就是来满足sql99的语法格式(select后必须要有from子句存在)

46f9f0f0c5890840bb8aaae1ea97b981.png

字符和日期注意:

  1. 日期和字符只能在单引号中出现,即单引号中出现的可以是字符也可以是日期;
  2. 双引号中出现的是列的别名;
  3. 默认的日期格式:DD-Mon-RR
-- 查看日期格式    

c60ac321b7be1cdb4fec2c58e5406c28.png

3、过滤和排序

  • 比较运算符

8407700cf29792dc4b6174131df80adf.png

注意:

  1. % 表示:任意长度的任意字符串;
  2. “_”表示:任意的一个字符;
  3. 模糊查询中,可以使用 escape 标识符 选择“%”“_”符号(即escape起到了 转义字符的功能
-- 查询薪水在1000~2000之间的员工   

bed419225e41938161de2b4387d06d64.png
  • 逻辑运算符

88b045e41e2c292b9ddd03b69e4c35b7.png

注意:

-- 下面两条sql语句是否一样? 这两条语句完全不同,仅仅是这两条sql语句执行结果一致
  • 排序
  1. order by 列名/表达式/别名/序号 排序方式(asc 升序 ;desc 降序)
-- 查询员工信息,按照月薪排序

cf6f80e1623af27b1a1e201bfab3bbc2.png

2、order by 多个列的排序

-- 查询员工信息,按照月薪排序

desc 只作用于离他最近的列

select 

937525067a733cc3d4169fc1ee513b6f.png

order by 子句应当再where子句之后

359266c1808c36c76fbb525a647fd386.png

参考资料:

SQL语句的语法顺序和执行顺序_tree_ifconfig的博客-CSDN博客_sql语句顺序​blog.csdn.net
3ad9130b6ca711044ee19fce8b79ec8c.png

4、单行函数

定义:操作数据对象,接受参数并返回一个结果,仅对一行进行变换,每行返回一个结果

  • 字符函数

1、lower()函数、upper()函数与initcap()函数

-- 字符大小写转换   

e4ca97a9c62ad161dde4054ef632872c.png

2、substr()求字串函数

-- substr(a,b) 从a串中,第b位置为开始取后面所有字符   

36eb60754dc4b31657f65674aa26e04c.png

3、instr()查找字符串函数

-- instr(a,b) 在a字符串中,查找b字符串,如果找到,返回下标,如果没找到返回0   

264a0d3aa1b7a6ed1e09c0eb01dec5e2.png

4、length()字符数 lenghthb()字节数

sql 

94fe0bad0851a5d2f5257ee115c14484.png

5、lpad()左填充 rpad()右填充

-- lpad("被填充的字串",填充几位,"用什么字符填充")

3750fb848fe154fb6d5d4dcec77a739b.png

6、trim()函数

-- trim("被去除字符"from"字符串")去除前后指定的字符

8f4a5e536392aa6b14ee7c49c9472809.png

7、replace()函数

-- replace('字符串','待替换字符','替换字符')替换函数

35e5ee00f03890a3277e7a3f457b192f.png
  • 数字函数

1、四舍五入 round()

select 

02139bfa0ae465dc3b46a3411af1a7c0.png

2、截断函数 trunc()

select 

c3359b5f1c56940859ed47dad71fe70e.png

3、注意

round()与trunc()函数不仅仅是数字函数,也可以对日期进行操作

  • 日期

oracle中的日期类型只有date类型,不同于mysql中有date与datetime两种。在oracle中date=日期+时间

-- 查询当前时间

6192f620f574ce3b5edb4f69ce69f38b.png

两个日期相减返回日期之间相差的天数

-- 时间差

0b6f4cf24ea80e262a3dac121e4f090d.png
  • 日期处理函数

d46de45397ca72409cf15a917a25ec63.png

e6681cad188e167e26515d7314bcf6c8.png

2b82a219ece4fc373795ccb7d33e4f50.png
  • 数据转换函数

1、 隐式数据类型转换

oracle数据库自动完成数据类型间的转换

3de20a7b3755ea1899a5aa3aeedd5567.png

2、显示数据类型转换

f693d2f7da33b910ed5bc90bf90688e8.png
-- to_char(date,'格式')

58acf092344b6fc1dffd3c66f601407c.png

f56c2195fa97eca9843112bed51192de.png

to_char()函数常用的数字格式

f5a34c5b0ea19be2f66c6c12b6e08970.png
  • 通用函数

通用函数中参数适用于任何类型数据,同时也适用于空值null

49db00401bd6ff0655fac4eba9f0a7d7.png
  • 条件表达式

在sql中完成if-then-else的逻辑

62a329cc203575316c331bd799e4b706.png

7fc44c2401bb14b5e7684d7ac0afe991.png
-- 不同级别员工涨不同的钱

eb2b4e305324dcca0bb49de96d952fcb.png
select 

5、分组函数

分组函数作用于一组函数,并对一组数据返回一个值。

组函数(多行函数)自动滤空

  • 常用的组函数
-- sum()函数 求和函数   

统计函数count(*) ,统计不重复的次数时使用distinct关键字

select 
  • 分组数据(group by 子句)

21efe65ed5f35093af75df76cf809e17.png
--求每个部门的平均工资

将上面问题抽象化

select 

oracle中的规定,所有包含于select列表中,而未包含于组函数中的列,都必须在group by语句中

group by 语句中出现的列,未必要在select语句中出现

select 
  • 多个列的分组
-- 按照不同部门的不同工种进行分组,计算工资
  • 过滤分组数据 having 子句
    1、行已经被分组

2、使用了组函数

3、满足having子句中条件的分组将被显示

-- 求出平均工资大于2000的部门   

having 子句与where 子句的理解:

1、where后面不能使用多行函数(聚合函数,例如max、min等)

2、where 与having 的执行顺序不同:

where的搜索条件是在执行分组之前应用;

having的搜索条件是在分组条件后执行的;

如果where和having一起用时,where会先执行,having后执行;

3、Where关键字作用是过滤,选取符合条件的记录,而Having关键字作用则是为聚合结果指定条件!4、Where 子句是用来指定 "行" 的条件的,而Having 子句是指定 “组” 的条件

Where 子句 = 指定所对应的条件

Having 子句 = 指定所对应的条件

5、若Where子句和Having子句中都可以使用的条件,从语句的执行效率来看,最好写在Where子句中。(where 先过滤再分组;having 先分组再过滤)

where 与 having 可以通用的情况:

-- 查询10号部门的平均工资
  • group by 语句 增强
-- 按照部门统计各部门不同工种的工资情况

6、多表查询

8ec818674e72cdbfd955bd804c0f497d.png

9a832016381a296419b8148ca80ba04d.png
  • 笛卡尔积问题

在多表连接查询问题中,连接查询会产生笛卡尔积的问题,产生很多错误的数据记录。笛卡尔积就是求出多个表的乘积,例如 emp 表与 dept 表连接,那么笛卡尔积就是 emp*dept。

cfb0e7f305d9a0de0ae33d2fb313d6d8.png

上图中红框中的记录数据明显是由笛卡尔积计算而产生的错误数据。 那么多表查询产生这样的结果并不是我们想要的,那么怎么去除重复的,不想要的记录呢,当然是通过条件过滤。通常要查询的多个表之间都存在关联关系,那么就通过关联关系去除笛卡尔积。 设置表与表之间的连接条件,将多张表连接起来。

-- 连接条件  
  • 等值连接

通过连接条件对多张表的笛卡尔积进行过滤

--查询员工信息: 员工号 姓名 月薪 部门名称   

5f38ebd20a96b4b0e5a6ef0df8a281ea.png

注意:

  1. 在where子句中写入连接条件,
  2. 在表中有相同名称的列,需要在列名之前加上前缀,以区别是那一张表的列。
  3. 连接n张表,至少需要n-1个连接条件(例如连接3张表,就需要2个连接条件)。
  4. 多个连接条件需要使用 and 关键字加以合并。
  • 不等值连接

连接多张表的连接条件并不是 等值 条件

--查询员工信息: 员工号 姓名 月薪 工资级别   

0f32c52e9eef7d45cd609feb6ffc1d22.png
  • 外连接 ([outer] join on)

参考资料:

Oracle的连接详解(左连接、右连接、全连接...) - 无时无刻 - 博客园​www.cnblogs.com
4ec1364cc90b216206b8b72c984ffff8.png
Oracle连接查询,彻底搞懂外连接(左外连接&右外连接)_ljinxin的博客-CSDN博客_oracle左连接查询​blog.csdn.net
1d4db1f9cd497c35bd5bd1ba1c0e490e.png
MySQL数据库的内连接,左外连接和右外连接查询_SpiderLi的博客-CSDN博客_数据库内连接查询示例​blog.csdn.net
66bc5b307548cb3b7bd9a756d2dfab71.png
Oracle中的连接查询讲解​www.jianshu.com
877e53dd80a7ff60ca312351d17ee44f.png

外连接结果是内连接结果的超集

在左连接和右连接时都会以一张表作为基表该表的内容会全部的显示,然后加上两张表匹配的内容

下面例子的SQL明显错误,由于emp表中不包含40号部门(dept表中却存在),所以在做连接查询的时候,40号部门并不能满足 “where e.deptno=d.deptno” 条件,所以等值连接查询无法查出该部门

-- 按部门统计员工人数:部门号 部门名称 人数   

1、左外连接 (left [outer] join on)

  • 结果包括左表(出现在JOIN子句最左边)中的所有行,不包括右表中的不匹配行
  • 对于外连接,在Oracle中可以使用(+)来表示
  • On子句:外连接的表之间连接条件 不使用WHERE,而是使用ON。将连接的条件放在on子句中,而且每个on子句只能指定一个连接条件。如果需要连接N个表,则需要有N-1个join-on对。
  • 左连接是先查询出左表(即以左表为主),然后查询右表,右表中满足条件的显示出来,不满足条件的显示NULL。
  • 希望: 对于某些不成立的记录,任然希望包含在最后的结果中 左外连接:当where e.deptno=d.deptno不成立的时候,等号左边的表任然被包含 写法:where d.deptno=e.deptno(+) 右外连接:当where e.deptno=d.deptno不成立的时候,等号右边的表任然被包含 写法: where e.deptno(+)=d.deptno

f5d91d6e62d0a2c72322024effb4f74f.png
-- 按部门统计员工人数:部门号 部门名称 人数  

0f1a24ec3f2225700b63754c8aae52c4.png

2、 右边外连接 (right [outer] join on)结果包括右表(出现在JOIN子句最右边)中的所有行,不包括左表中的不匹配行

89a282594edea4eb55a93f6ce795f0eb.png
-- 按部门统计员工人数:部门号 部门名称 人数  

d08f6697ec4b5c737631455cb6b9202f.png

3、全外连接(full [outer] join)

0db0f0314fc068f83a664372d9106582.png

结果包括左、右两个表的所有行,不论他们是否匹配(即不管在另一边表中是否存在于他们匹配的行)
左外连接:返回包括左表中的所有记录和右表中联结字段相等的记录;
右外连接:返回包括右表中的所有记录和左表中联结字段相等的记录;
全外连接 :查询结果等于左外连接和右外连接的和

-- 按部门统计员工人数:部门号 部门名称 人数  

d833c4d2cbeabf9726ef9203716855c3.png
  • 内连接([inner] join on)

外连接结果是内连接结果的超集

内联接,结果为两个联接表中的匹配行的联接 (即 只连接两张表的匹配行

inner join连接作为一种等值连接,其操作相当于where中的等值连接。

等值连接 的语法并不是标准的SQL99语法,属于数据库的方言, inner join 是SQL99标准的实现方式

b25112ee975d98c62e206ed14dd83f2d.png
--查询员工信息: 员工号 姓名 月薪 部门名称   

d4ff661be57dc143b189e52ce93c5af2.png
  • 自然连接(natural join)

连接查询会产生无用笛卡尔积,我们通常使用主外键关系等式(等值连接条件)来去除它。而自然连接无需你去给出主外键等式,它会自动找到这一等式

自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。即自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果。例emp和dept表都存在deptno列,并且类型一致,所以会被自然连接找到!

Using子句:用于显示指定两个表中的同名列,并将其作为连接条件。假设两个表中有超过一列的同名列,如果使用自然连接(natural join),则会把所有的同名列当成连接条件,使用using子句,就可以显示指定那些同名列作为连接条件。 即,using 子句可以在有多个满足条件的连接列时, 进行自主的选择

-- 按部门统计员工人数:部门号 部门名称 人数   

4048bb599aaf82e75357eda2cdae3edf.png

自然连接的注意事项:

  1. 如果做自然连接的两个表中有多个字段都满足有相同名称和类型,那么他们都会被作为连接的条件。
  2. 如果自然两个表中仅字段名称相同,但是数据类型不同时,此时会返回一个错误。
  3. 自然连接不要用表的别名

6ac67d1f5ae3e06b92c1315f38542356.png
  1. 自连接

通过表的别名,将同一张表视为多张表(即 自己与自己的等值连接)

-- 查询每个员工对应的老板编号(员工的上司)   

4f87957e2fd398ba2e19501d10bae241.png

自连接操作过程中会产生 笛卡尔积 ,查询结果即 表的记录的平方行记录,故自连接不适合操作大表。

  • 层次查询(connect by 与 start with)

Oracle层次化查询是Oracle特有的功能实现,主要用于返回一个数据集,这个数据集存在树的关系(数据集中存在一个Pid记录着当前数据集某一条记录的Id)

层次化查询主要包含两个子句,一个start with另一个是connect by

start with:这个子句一般用于指定层次化查询的开始节点(也就是树的最顶级节点),找到最顶级节点,然后按照一定的规则开始查找其剩余的子节点。

connect by:这个子句就是上面所说的规则,用于查找剩余子节点的规则。

-- 查询每个员工的上司的员工编号   

557303cc559575993aafb5a60bc795b8.png

853b350c55e6226ff4d8f5514ba316ee.png

具有层次关系的查询,可以考虑层次查询。

根节点的定义比较灵活,但是(connect by)遍历子节点的规则,比较固定基本都是判断父节点和子节点的ID的

参考资料:

oracle 层次查询_qq_38743952的博客-CSDN博客_oracle 地区层次查询​blog.csdn.net
fecc64e68a341a2533629b7c28f3a97d.png
  • 交叉查询(cross join)

交叉联接:结果包括两个联接表中所有可能的行组合。 即笛卡尔积连接,是两个或多个表间的无条件连接 。

交叉连接结果是其他连接结果的超集,外连接结果是内连接结果的超集

select 

7、集合操作

常见的集合操作共有union与union all并集、intersect交集与minus差集。

  • union与union all 并集

bd3a9b997b7e8dc1e48073b71e4bd3b9.png

union与union all的作用都是合并结果集。 将是把多个select语句的查询结果合并到一起 。union与union all的区别在于:

  • UNION:去除重复记录,例如:SELECT * FROM t1 UNION SELECT * FROM t2;
  • UNION ALL:不去除重复记录,例如:SELECT * FROM t1 UNION ALL SELECT * FROM t2。
-- 查询10和20号部门的员工   

集合运算注意点:

  • 参与运算的各个集合必须列数相同且类型一致,当列数不同时,需要添加列,若类型不同时需要转换
    列数不足时,补充NULL,并根据需要做相应类型转换。
-- 按照部门统计各部门不同工种的工资情况 
  1. 采用第一个集合作为最后的表头。
  2. order by 永远在最后。
  3. 括号可以集合运算的先后顺序。
  • intersect 交集

dea276e02c2e31e60a6289e9707c04ea.png

intersect 运算返回同时属于两个集合的记录(图中黄色部分)。

-- 显示薪水同时位于级别1(700~1300)和 级别2(1201~1400)的员工信息   
  • minus 差集

c0c83d66bddd0409545282d9a556b791.png

minus返回属于第一个集合,但不属于第二个集合的记录

-- 显示薪水同时位于级别1 (700~1300),但不属于级别2(1201~1400)的员工
  • Mysql数据库中的集合运算

参考资料:

MySQL 并集、交集、差集_三中故人的学习笔记-CSDN博客_mysql 并集​blog.csdn.net
fecc64e68a341a2533629b7c28f3a97d.png

mysql数据库中只有unionunion all结果集合并运算符,而没有intersect(交集)minus(差集)运算符。但是可以通过表之间的内外连接等运算达到同样的效果。

现在有如下两张表

表object_a

e8240bd1b37e9a69dc8bdea86f4c7b3b.png

表object_b

80d1ba9ff06722063deb738de49aefb9.png
  • 交集(实现intersect)
-- 使用 内连接 inner join 实现 交集运算 
  • 差集(实现minus)
-- 使用 左外连接 实现差集运算 (获取a - b 表) 
  • 补集
-- 使用 左外连接 实现补集运算 

8、子查询

To be continued......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

trace Linux and实例,traceroute在linux中的使用方法

traceroute在linux中的使用方法一、traceroute的实现原理1、IP协议利用存活时间TTL来发出探测包跟踪数据包到达目标ip主机所经历的路由网关数量,每经过一个路由器,TTL的值就减去1。当TTL值为0时,主机就取消发送数据包,并回传一份I…

在VS中怎么用vb画矩形_(十四)矩形和操作展示逻辑操作

时间为友,记录点滴。聊了这么多的图片运算,忽然有个想法,为什么非要用静态的图片来展示运算呢?我们可以用自己做的图片来经过运算后显示出来。说干就干。先想一下需求:整体环境非黑即白。可以用鼠标在背景上画出矩形&a…

c++ 二维数组 排序_漫画:“排序算法” 大总结

​冒泡排序:漫画:什么是冒泡排序?​mp.weixin.qq.com选择排序:漫画:什么是选择排序?​mp.weixin.qq.com插入排序:漫画:什么是插入排序?​mp.weixin.qq.com此外还有冒泡排…

ieee39节点系统介绍_Java秒杀系统实战系列-基于ZooKeeper的分布式锁优化秒杀逻辑...

本文是“Java秒杀系统实战系列文章”的第十六篇,本文我们将继续秒杀系统的优化之路,采用统一协调调度中心中间件ZooKeeper控制秒杀系统中高并发多线程对于共享资源~代码块的并发访问所出现的并发安全问题,即用ZooKeeper实现一种分布式锁&…

centos配置c语言环境变量,CentOS7设置环境变量

一、环境变量的概念1、环境变量的含义程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。2、环境变量的分类1)按生效的范围分类。系统环境变量:公共的,对全部的用户都生效。用户环境变量:用户私…

python 3.7.732位安装步骤_Python3.7安装pyaudio教程解析

本人笔记本电脑安装的是 python3.7, 64位操作系统,基于x64的处理器 因为 pyaudio 暂时不支持 python3.7 和 3.8,所以若需要安装 pyaudio 需要下载 whl 文件后再离线进行安装。 首先:下载安装 pyaudio 的 whl 文件 然后按下 ctrlf 输入关键字&…

python open写入_Python3 open() 函数详解 读取文件写入文件追加文件二进制文件

Python3 open() 函数详解 读取文件写入文件追加文件二进制文件 open()函数的主要作用是打开文件并返回相应文件对象,使用文件对象可以对当前文件进行读取、写入、追加等操作,默认情况下"r"模式,文件不存在的话会发生OSError错误的。…

一部分 数据 迁移_从虚机到容器,知名架构师告诉你如何平滑进行业务迁移

【小宅按】近期,短视频产品“秒拍”完成了一个“大动作”——将原来部署在虚拟机上的主体业务迁移到华为云,同时将公司的技术体系承载在下一代虚拟技术容器(Docker)上。而这一系列动作是在业务不下线,用户无感知的前提…

cuda 实现sift gpu_为Keras提供GPU加速

在刚入坑机器学习时,书上所使用的算法(回归、决策树等)及实例较为简单,一般CPU(中央处理器)的计算能力均能胜任,从而快速实现。但若使用keras(一种基于深度学习框架的高级应用接口&a…

此 sqltransaction 已完成;它再也无法使用_win10笔记本自带office报错无法激活的解决方法...

激活win10笔记本电脑自带office出错怎么办?不少笔记本电脑在出厂的时候就自带windows 10操作系统并且将系统部署完成后就有许多软件集成当中,一般按正常步骤进行激活即可正常使用,不过有用户遇到一个问题,在激活自带office时报错了&#xff…

bat 连续读取两行_Redis底层数据结构解析(BAT大厂必问)

Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用。Redis由于其丰富的数据结构也可以被应用到其他场景。Redis是一个K-V的非关系型数据库(NoSQL)&#…

smart原则_为什么现在少有人用德鲁克的SMART原则做目标管理了?

互联网平台充斥了各类成功学文章,但大多数鸡汤文只谈坚持,不谈策略。王健林定下一个亿的小目标被网友编成了各种段子,却极少有人去探究他实现目标的过程,用的什么方法。从企业规模来看,我们没有理由说王健林定下的目标…

团队组成五个基本要素_【记录】综合分部宁波分队团队拓展活动

初冬,像一位美丽的、高贵的、矜持的公主,舞动着她那神奇的面纱,送来阵阵凛冽的寒风。今年宁波分队队伍逐渐壮大,从年初的70多人到目前120人,队伍中也迎来了许多00后的小伙伴们,为加强企业文化建设&#xff…

linux delete内存不下降_linux内存分配管理

linux内存分配管理一、前言作为从事与C/C程序开发人员,我们一直需要很好的管理内存,申请和释放;可能很多只知道使用malloc、new去申请,使用free、delete去释放,但是,去根究其内部的原理,可能就不…

android studio 2.3 instant run,android studio 2.3 instant run not working

可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):问题:I have updated android studio from 2.2 to 2.3,then I found Instant run not working.Error while executing: am startservice com.example.codingmaster.te…

和catch的区别_BIO、NIO、AIO 的区别是什么?

BIO、NIO、AIO 的区别是什么?同/异步、阻/非阻塞的区别是什么?文件读写最优雅的实现方式是什么?NIO 如何实现多路复用功能?带着以上这几个问题,跟着芒果一起进入IO的世界吧。在开始之前,我们先来思考一个问…

302状态码_HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)

一 、基础概念URIURI 包含 URL 和 URN。请求和响应报文1. 请求报文2. 响应报文二、HTTP 方法客户端发送的 请求报文 第一行为请求行,包含了方法字段。GET获取资源当前网络请求中,绝大部分使用的是 GET 方法。HEAD获取报文首部和 GET 方法类似&#xff0c…

flask get 参数_用它 5 分钟以后,我放弃用了四年的 Flask

“ 阅读本文大概需要 3 分钟。 ”有一个非常简单的需求:编写一个 HTTP 接口,使用 POST 方式发送一个 JSON 字符串,接口里面读取发送上来的参数,对其中某个参数进行处理,并返回。如果我们使用 Flask 来开发这个接口&…

android sse 人脸识别,基于Android Camera2之openCamera 流程

简介frameworks\base\core\java\android\hardware\camera2Camera2在Android 5.0上首次出现,主要重新定义了一套Camera 的使用接口API,设计思想出现了变化,具体的可自行搜索,此处主要介绍下Camera2的常见类以及使用流程。CameraCap…

vscode编辑python_VSCode+Python开发环境

准备开始转向用VSCode做开发,所以把一些常用的开发环境转移到VSCode上。 这次搭建的是Python3的开发环境。 其他相关博文: 一、测试环境 Windows 10 VSCode v1.11.1 Python v3.6.1 二、安装Visual Studio Code 三、安装Python这一步,记得…