数据库基础篇 《4. 运算符》

news/2024/4/20 22:38:56/文章来源:https://blog.csdn.net/weixin_44981126/article/details/130267425

目录

1. 算术运算符

1.加法与减法运算符 

 2.乘法与除法运算符

3.求模(求余)运算符

2. 比较运算符

1.等号运算符

2.安全等于运算符

3.不等于运算符

4. 空运算符

5. 非空运算符

6. 最小值运算符

7. 最大值运算符

8. BETWEEN AND运算符

9. IN运算符

11. LIKE运算符

ESCAPE

12. REGEXP运算符

3. 逻辑运算符

1.逻辑非运算符

2.逻辑与运算符

3.逻辑或运算符

4.逻辑异或运算符

4. 位运算符

1.按位与运算符

2. 按位或运算符

3. 按位异或运算符

​编辑 4. 按位取反运算符

5. 按位右移运算符

6. 按位左移运算符

5. 运算符的优先级

​编辑拓展:使用正则表达式查询 

1. 查询以特定字符或字符串开头的记录

2. 查询以特定字符或字符串结尾的记录

3. 用符号"."来替代字符串中的任意一个字符

4. 使用"*"和"+"来匹配多个字符

5. 匹配指定字符串

6. 匹配指定字符中的任意一个

7. 匹配指定字符以外的字符

8. 使用{n,}或者{n,m}来指定字符串连续出现的次数


1. 算术运算符

算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加 (+)、减(-)、乘(*)、除(/)和取模( % )运算。

1.加法与减法运算符 

由运算结果可以得出如下结论:
一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;
一个整数类型的值对浮点数进行加法和减法操作,结果是一个浮点数;
加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的;
Java 中, + 的左右两边如果有字符串,那么表示字符串的拼接。但是在 MySQL + 只表示数
值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按 0 计算。(补充: MySQL
中字符串拼接要使用字符串函数 CONCAT() 实现)

 2.乘法与除法运算符

# 计算出员工的年基本工资
SELECT employee_id,salary,salary * 12 annual_sal
FROM employees;  
由运算结果可以得出如下结论:
一个数乘以整数 1 和除以整数 1 后仍得原数;
一个数乘以浮点数 1 和除以浮点数 1 后变成浮点数,数值与原数相等;
一个数除以整数后,不管是否能除尽,结果都为一个浮点数;
一个数除以另一个数,除不尽时,结果为一个浮点数,并保留到小数点后 4 位;
乘法和除法的优先级相同,进行先乘后除操作与先除后乘操作,得出的结果相同。
在数学运算中, 0 不能用作除数,在 MySQL 中,一个数除以 0 NULL

3.求模(求余)运算符

t22表中的字段i35进行求模(求余)运算。  

# 筛选出 employee_id 是偶数的员工
SELECT * FROM employees
WHERE employee_id MOD 2 = 0 ;

可以看到,123求模后的结果为0,对5求模后的结果为2

2. 比较运算符

比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回 1 ,比较的结果为假则返回0 ,其他情况则返回 NULL
比较运算符经常被用来作为 SELECT 查询语句的条件来使用,返回符合条件的结果记录。

1.等号运算符

等号运算符(=)判断等号两边的值、字符串或表达式是否相等,如果相等则返回 1 ,不相等则返回 0。
在使用等号运算符时,遵循如下规则:
如果等号两边的值、字符串或表达式都为字符串,则 MySQL 会按照字符串进行比较,其比较的是每个字符串中字符的ANSI 编码是否相等。
如果等号两边的值都是整数,则 MySQL 会按照整数来比较两个值的大小。
如果等号两边的值一个是整数,另一个是字符串,则 MySQL 会将字符串转化为数字进行比较。
如果等号两边的值、字符串或表达式中有一个为 NULL ,则比较结果为 NULL
对比: SQL 中赋值符号使用 :=
1 row in set , 2 warnings ( 0.00 sec)
# 查询 salary=10000 ,注意在 Java 中比较是 ==
SELECT employee_id,salary FROM employees WHERE salary = 10000 ;

2.安全等于运算符

安全等于运算符(<=>)与等于运算符(=)的作用是相似的, 唯一的区别 ‘<=>’ 可 以用来对NULL 进行判断。在两个操作数均为 NULL 时,其返回值为 1 ,而不为 NULL ;当一个操作数为 NULL时,其返回值为0 ,而不为 NULL

# 查询 commission_pct 等于 0.40
SELECT employee_id,commission_pct FROM employees WHERE commission_pct = 0.40 ;
SELECT employee_id,commission_pct FROM employees WHERE commission_pct <=> 0.40 ;
# 如果把 0.40 改成 NULL 呢?
可以看到,使用安全等于运算符时,两边的操作数的值都为 NULL 时,返回的结果为 1 而不是 NULL ,其他返回结果与等于运算符相同。

3.不等于运算符

不等于运算符(<>和 != )用于判断两边的数字、字符串或者表达式的值是否不相等, 如果不相等则返回1 ,相等则返回 0 。不等于运算符不能判断 NULL 值。如果两边的值有任意一个为 NULL ,或两边都为NULL ,则结果为 NULL SQL 语句示例如下:

此外,还有非符号类型的运算符: 

4. 空运算符

空运算符(IS NULL或者 ISNULL )判断一个值是否为 NULL ,如果为 NULL 则返回 1 ,否则返回0。 SQL 语句示例如下:

# 查询 commission_pct 等于 NULL 。比较如下的四种写法
SELECT employee_id,commission_pct FROM employees WHERE commission_pct IS NULL ;
SELECT employee_id,commission_pct FROM employees WHERE commission_pct <=> NULL ;
SELECT employee_id,commission_pct FROM employees WHERE ISNULL(commission_pct);
SELECT employee_id,commission_pct FROM employees WHERE commission_pct = NULL ;
SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL ;  

5. 非空运算符

非空运算符(IS NOT NULL)判断一个值是否不为 NULL ,如果不为 NULL 则返回 1 ,否则返回0 SQL 语句示例如下:

 

# 查询 commission_pct 不等于 NULL
SELECT employee_id,commission_pct FROM employees WHERE commission_pct IS NOT NULL ;
SELECT employee_id,commission_pct FROM employees WHERE NOT commission_pct <=> NULL ;
SELECT employee_id,commission_pct FROM employees WHERE NOT ISNULL(commission_pct);  

6. 最小值运算符

语法格式为: LEAST( 1 ,值 2 ... ,值 n) 。其中, n” 表示参数列表中有 n 个值。在有 两个或多个参数的情况下,返回最小值。

由结果可以看到,当参数是整数或者浮点数时, LEAST 将返回其中最小的值;当参数为字符串时,返回字母表中顺序最靠前的字符;当比较值列表中有NULL 时,不能判断大小,返回值为 NULL

7. 最大值运算符

语法格式为: GREATEST( 1 ,值 2 ... ,值 n) 。其中, n 表示参数列表中有 n 个值。当有两个或多个参数时,返回值为最大值。假如任意一个自变量为NULL ,则 GREATEST() 的返回值为 NULL

由结果可以看到,当参数中是整数或者浮点数时, GREATEST 将返回其中最大的值;当参数为字符串时,返回字母表中顺序最靠后的字符;当比较值列表中有NULL 时,不能判断大小,返回值为 NULL

8. BETWEEN AND运算符

BETWEEN 运算符使用的格式通常为 SELECT D FROM TABLE WHERE C BETWEEN A AND B,此时,当 C 大于或等于 A ,并且 C 小于或等于 B 时,结果为 1 ,否则结果为 0

SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;

9. IN运算符

IN 运算符用于判断给定的值是否是 IN 列表中的一个值,如果是则返回 1 ,否则返回 0 。如果给定的值为NULL ,或者 IN 列表中存在 NULL ,则结果为 NULL

SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN ( 100 , 101 , 201 ) 

11. LIKE运算符

LIKE 运算符主要用来匹配字符串,通常用于模糊匹配,如果满足条件则返回 1 ,否则返回 0。如果给定的值或者匹配条件为 NULL ,则返回结果为 NULL
LIKE 运算符通常使用如下通配符:
“%” :匹配 0 个或多个字符。
“_” :只能匹配一个字符。  

SQL语句示例如下

SELECT first_name
FROM employees
WHERE first_name LIKE 'S%' ;
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ; 

ESCAPE

回避特殊符号的: 使用转义符 : \  。例:将 [%] 转为 [$%] [] 转为 [$] ,然后再加上 [ESCAPE‘$’] 即可
SELECT job_id
FROM jobs
WHERE job_id LIKE ‘IT\_%‘;

12. REGEXP运算符

REGEXP 运算符用来匹配字符串,语法格式为: expr REGEXP 匹配条件 。如果 expr 满足匹配条件,返回1;如果不满足,则返回 0 。若 expr 或匹配条件任意一个为 NULL ,则结果为 NULL

REGEXP运算符在进行匹配时,常用的有下面几种通配符:  

1 ‘^’ 匹配以该字符后面的字符开头的字符串。
2 ‘$’ 匹配以该字符前面的字符结尾的字符串。
3 ‘.’ 匹配任何一个单字符。
4 “[...]” 匹配在方括号内的任何字符。例如, “[abc]” 匹配 “a” “b” “c” 。为了命名字符的范围,使用一
‘-’ “[a-z]” 匹配任何字母,而 “[0-9]” 匹配任何数字。
5 ‘*’ 匹配零个或多个在它前面的字符。例如, “x*” 匹配任何数量的 ‘x’ 字符, “[0-9]*” 匹配任何数量的数字,
“*” 匹配任何数量的任何字符。 

 SQL语句示例如下:

 

3. 逻辑运算符

逻辑运算符主要用来判断表达式的真假,在 MySQL 中,逻辑运算符的返回结果为 1 0 或者 NULL
MySQL 中支持 4 种逻辑运算符如下:

1.逻辑非运算符

逻辑非( NOT ! )运算符表示当给定的值为 0 时返回 1 ;当给定的值为非 0 值时返回 0 ; 当给定的值为NULL 时,返回 NULL

SELECT last_name, job_id
FROM employees
WHERE job_id NOT IN ( 'IT_PROG' , 'ST_CLERK' , 'SA_REP' );  

2.逻辑与运算符

逻辑与(AND或 && )运算符是当给定的所有值均为非 0 值,并且都不为 NULL 时,返回1;当给定的一个值或者多个值为 0 时则返回 0 ;否则返回 NULL

SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
AND job_id LIKE '%MAN%' ; 

3.逻辑或运算符

逻辑或(OR或 || )运算符是当给定的值都不为 NULL ,并且任何一个值为非 0 值时,则返回1 ,否则返回 0 ;当一个值为 NULL ,并且另一个值为非 0 值时,返回 1 ,否则返回 NULL ;当两个值都为 NULL时,返回 NULL

# 查询基本薪资不在 9000-12000 之间的员工编号和基本薪资
SELECT employee_id,salary FROM employees
WHERE NOT (salary >= 9000 AND salary <= 12000 );
SELECT employee_id,salary FROM employees
WHERE salary < 9000 OR salary > 12000 ;
SELECT employee_id,salary FROM employees
WHERE salary NOT BETWEEN 9000 AND 12000 ;
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%' ; 
注意:
OR 可以和 AND 一起使用,但是在使用时要注意两者的优先级,由于 AND 的优先级高于 OR ,因此先对AND 两边的操作数进行操作,再与 OR 中的操作数结合 

4.逻辑异或运算符

逻辑异或(XOR)运算符是当给定的值中任意一个值为 NULL 时,则返回 NULL ;如果 两个非NULL 的值都是 0 或者都不等于 0 时,则返回 0 ;如果一个值为 0 ,另一个值不为 0 时,则返回 1

 

select last_name,department_id,salary
from employees
where department_id in ( 10 , 20 ) XOR salary > 8000 ;  

4. 位运算符

位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制数。 MySQL支持的位运算符如下:

1.按位与运算符

按位与(&)运算符将给定值对应的二进制数逐位进行逻辑与运算。当给定值对应的二进制位的数值都为1 时,则该位返回 1 ,否则返回 0

1 的二进制数为 0001 10 的二进制数为 1010 ,所以 1 & 10 的结果为 0000 ,对应的十进制数为 0 20 的二进制数为10100 30 的二进制数为 11110 ,所以 20 & 30 的结果为 10100 ,对应的十进制数为 20

2. 按位或运算符

按位或(|)运算符将给定的值对应的二进制数逐位进行逻辑或运算。当给定值对应的二进制位的数值有一个或两个为1 时,则该位返回 1 ,否则返回 0

1 的二进制数为 0001 10 的二进制数为 1010 ,所以 1 | 10 的结果为 1011 ,对应的十进制数为 11 20 的二进制数为10100 30 的二进制数为 11110 ,所以 20 | 30 的结果为 11110 ,对应的十进制数为 30

3. 按位异或运算符

按位异或(^)运算符将给定的值对应的二进制数逐位进行逻辑异或运算。当给定值对应的二进制位的数值不同时,则该位返回1 ,否则返回 0

 

1 的二进制数为 0001 10 的二进制数为 1010 ,所以 1 ^ 10 的结果为 1011 ,对应的十进制数为 11 20 的二进制数为10100 30 的二进制数为 11110 ,所以 20 ^ 30 的结果为 01010 ,对应的十进制数为 10
再举例

 4. 按位取反运算符

按位取反(~)运算符将给定的值的二进制数逐位进行取反操作,即将1变为0,将0变为1

由于按位取反(~)运算符的优先级高于按位与(&)运算符的优先级,所以 10 & ~1 ,首先,对数字 1 进 行按位取反操作,结果除了最低位为0 ,其他位都为 1 ,然后与 10 进行按位与操作,结果为 10

5. 按位右移运算符

按位右移(>>)运算符将给定的值的二进制数的所有位右移指定的位数。右移指定的位数后,右边低位的数值被移出并丢弃,左边高位空出的位置用0 补齐。

1 的二进制数为 0000 0001 ,右移 2 位为 0000 0000 ,对应的十进制数为 0 4 的二进制数为 0000 0100 ,右移 2位为0000 0001 ,对应的十进制数为 1

6. 按位左移运算符

按位左移(<<)运算符将给定的值的二进制数的所有位左移指定的位数。左移指定的位数后,左边高位的数值被移出并丢弃,右边低位空出的位置用0 补齐。

1 的二进制数为 0000 0001 ,左移两位为 0000 0100 ,对应的十进制数为 4 4 的二进制数为 0000 0100 ,左移两位为0001 0000 ,对应的十进制数为 16

5. 运算符的优先级

拓展:使用正则表达式查询 

正则表达式通常被用来检索或替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合 要求的特殊字符串。例如,从一个文本文件中提取电话号码,查找一篇文章中重复的单词或者替换用户 输入的某些敏感词语等,这些地方都可以使用正则表达式。正则表达式强大而且灵活,可以应用于非常 复杂的查询。
MySQL 中使用 REGEXP 关键字指定正则表达式的字符匹配模式。下表列出了 REGEXP 操作符中常用字符匹配列表

1. 查询以特定字符或字符串开头的记录

 字符‘^’匹配以特定字符或者字符串开头的文本。

fruits 表中,查询 f_name 字段以字母 ‘b’ 开头的记录, SQL 语句如下:

mysql> SELECT * FROM fruits WHERE f_name REGEXP '^b';  

2. 查询以特定字符或字符串结尾的记录

字符‘$’匹配以特定字符或者字符串结尾的文本。

fruits 表中,查询 f_name 字段以字母 ‘y’ 结尾的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP 'y$' ;

3. 用符号"."来替代字符串中的任意一个字符

 字符‘.’匹配任意一个字符。 在fruits表中,查询f_name字段值

包含字母 ‘a’ ‘g’ 且两个字母之间只有一个字母的记录, SQL 语句如下:

mysql> SELECT * FROM fruits WHERE f_name REGEXP 'a.g'; 

4. 使用"*""+"来匹配多个字符

星号‘*’匹配前面的字符任意多次,包括0次。加号‘+’匹配前面的字符至少一次。

fruits 表中,查询 f_name 字段值以字母 ‘b’ 开头且 ‘b’ 后面出现字母 ‘a’ 的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP '^ba*' ;
fruits 表中,查询 f_name 字段值以字母 ‘b’ 开头且 ‘b’ 后面出现字母 ‘a’ 至少一次的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP '^ba+' ;

5. 匹配指定字符串

正则表达式可以匹配指定字符串,只要这个字符串在查询文本中即可,如要匹配多个字符串,多个字符串之间使用分隔符‘|’隔开。

fruits 表中,查询 f_name 字段值包含字符串 “on” 的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP 'on' ;
fruits 表中,查询 f_name 字段值包含字符串 “on” 或者 “ap” 的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP 'on|ap' ;
之前介绍过, LIKE 运算符也可以匹配指定的字符串,但与 REGEXP 不同, LIKE 匹配的字符串如果在文本中间出现,则找不到它,相应的行也不会返回。REGEXP 在文本内进行匹配,如果被匹配的字符串在文本中出现,REGEXP 将会找到它,相应的行也会被返回。对比结果如下所示。
fruits 表中,使用 LIKE 运算符查询 f_name 字段值为 “on” 的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name like 'on' ;
Empty set ( 0.00 sec)

6. 匹配指定字符中的任意一个

方括号“[]”指​​​​​​​定一个字符集合,只匹配其中任何一个字符,即为所查找的文本。

fruits 表中,查找 f_name 字段中包含字母 ‘o’ 或者 ‘t’ 的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP '[ot]' ;
fruits 表中,查询 s_id 字段中包含 4 5 或者 6 的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE s_id REGEXP '[456]' ;

7. 匹配指定字符以外的字符

 “[^字符集合]” 匹配不在指定集合中的任何​​​​​​​字符。

fruits 表中,查询 f_id 字段中包含字母 a~e 和数字 1~2 以外字符的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_id REGEXP '[^a-e1-2]' ;

8. 使用{n,}或者{n,m}来指定字符串连续出现的次数

字符串{n,}”表示至少匹配n次前面的字符;字符串 {n,m}”表示匹配前面的字符串不少于n次,不多于m次。例如,a{2,}表示字母a连续出现至少2次,也可以大于2次;a{2,4}表示字母a连续出现最少2次,最多不能超过4次。

fruits 表中,查询 f_name 字段值出现字母 ‘x’ 至少 2 次的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP 'x{2,}' ;
fruits 表中,查询 f_name 字段值出现字符串 “ba” 最少 1 次、最多 3 次的记录, SQL 语句如下:
mysql> SELECT * FROM fruits WHERE f_name REGEXP 'ba{1,3}' ;

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

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

相关文章

Unity 工具控件 之 Text 文本字间距调整(老版本的Unity编写工具控件/新版本Unity使用TMP)

Unity 工具控件 之 Text 文本字间距调整(老版本的Unity编写工具控件/新版本Unity使用TMP) 目录 Unity 工具控件 之 Text 文本字间距调整(老版本的Unity编写工具控件/新版本Unity使用TMP) 一、简单介绍 二、老版本 Unity Text 使用工具控件调整行间距 三、新版本 Unity Text…

站在程序猿的角度理解:UDP 协议

哈喽&#xff0c;大家好~我是你们的老朋友&#xff1a; 保护小周ღ&#xff0c;本期为大家带来的是 网络基础原理中的 UDP 协议&#xff0c;从什么协议&#xff1f;&#xff0c;认识 UDP 协议&#xff0c;UDP 的报文格式&#xff0c;UDP 传输大文件时的策略&#xff0c;以及 UD…

VS code 插件之中英文间自动添加空格

前言 不知道大家在开发过程中是不是会遇到写代码注释或者文本内容时中英文之间没有空格的情况&#xff0c;很多时候在写代码尤其是写注释的时候容易忘记加空格&#xff0c;但回过头来看又难以忍受&#xff0c;于是我就想着自己写一个 vscode 插件来解决这个问题&#xff0c;希…

展会邀请 | 虹科诚邀您4月26-28日前来参观成都国际工业博览会

HONGKE NEWS 2023 成都国际工业博览会精准聚焦中国智能制造&#xff0c;将通过展示自动化和工业机器人技术、新一代信息技术、金属加工、节能与工业配套、新材料等全行业最新技术和解决方案&#xff0c;完美呈现智能工业产业链中的创新技术及产品的有效融合。 2023年4月26日-…

高效编程----VSCode+ChatGPT插件

VSCode中使用ChatGPT插件 首先在VSCode中打开扩展面板&#xff0c;搜索ChatGPT&#xff0c;安装蓝色圈出插件&#xff0c;如图所示&#xff1a; 安装完成后&#xff0c;需要重启VSCode 注册账号&#xff0c;如图所示&#xff1a; 然后在ChatGPT对话框中输入信息即可使用&#…

Python 实验四 常用数据结构(1)

1.从键盘输入一个正整数列表&#xff0c;以一1结束&#xff0c;分别计算列表中奇数和偶数的和。 n int(input("请输入一个正整数&#xff1a;")) list [] while n ! -1:list.append(n)n int(input("请输入一个正整数&#xff1a;")) else:print("…

【Linux网络】部署YUM仓库及NFS服务

部署YUM仓库及NSF服务 一、YUM仓库1.1、YUM仓库概述1.2准备安装来源1.3在软件仓库加载非官方RPM包组1.4yum与apt 二、配置yam源与制作索引表2.1配置FTP源2.2配置国内在线yum源2.3在线源与本地源同时使用2.4建立软件包索引关系表的三种方法 三、nfs共享存储服务3.1安装软件&…

Django框架之创建项目、应用并配置数据库

django3.0框架创建项目、应用并配置数据库 创建项目 进入命令行 新建一个全英文的目录 进入目录 输入命令 django-admin startproject project 项目目录层级 查看当前目录层级 tree /f 目录文件说明 创建数据库 做一个学生管理系统做演示&#xff0c;使用navicat创建数据…

ML之DR:sklearn.manifold(流形学习和降维的算法模块)的简介、部分源码解读、案例应用之详细攻略

ML之DR&#xff1a;sklearn.manifold(流形学习和降维的算法模块)的简介、部分源码解读、案例应用之详细攻略 目录 sklearn.manifold的简介 sklearn.manifold(流形学习和降维的算法模块)的概述 外文翻译 sklearn.manifold的部分源码解读 sklearn.manifold的简介 sklearn.ma…

Bugku——应急加固1

来打一下bugku的应急加固靶场&#xff0c;靶场链接&#xff1a;https://ctf.bugku.com/ctfplus/detail/id/2.html 启动环境 1、JS劫持域名 直接访问ip地址&#xff0c;发现是xxx学院二手交易市场&#xff0c;随后被劫持跳转到了一个博客页面。 博客地址就是第一个flag&…

Android音视频开发-OpenGL ES正交投影实现方法

本文实例为大家分享了OpenGL ES正交投影展示的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 绘制正方形 在最开始绘制的六边形里面好像看起来挺容易的&#xff0c;也没有出现什么问题&#xff0c;接下来不妨忘记前面绘制六边形的代码&#xff0c;让我们按照自己的…

Ubuntu下打开QtCreator,环境变量(PATH、LD_LIBRARY_PATH等)与预期不一致的问题

现象展示 在Ubuntu中&#xff0c;安装好Qt之后&#xff0c;可以在系统桌面的左下角找到启动图标 但是&#xff0c;这种方式启动的QtCreator所读取到的环境变量和我们从命令行读取到的不一致&#xff1a; 可以看到&#xff0c;明显少了这个&#xff1a;/opt/ros/humble/bin 因…

很合适新手入门使用的Python游戏开发包pygame实例教程-02[如何控制飞行]

前面一篇博文&#xff0c;我们让飞机动起来了&#xff0c;但不是那么完美&#xff0c;我们继续来完善我们的游戏代码&#xff0c;本篇博文主要介绍获取按键的方式已经飞行的控制。 文章目录 一、获取按键的三种方式1、通过event.get配合pygame.key枚举2、通过event.get配合ord…

微积分入门

文章目录 前言初期积分微分微积分问题 后期极限 ε \varepsilon ε- δ \delta δ极限勒贝格积分 结语 前言 微积分总共走过了两个时期。首先是牛顿和莱布尼茨利用无穷小量定义微分和积分&#xff0c;并且发现了微分和积分的关系&#xff0c;这是第一个时期&#xff0c;这时的…

设计模式——组件协作模式之模板方法模式

文章目录 前言一、“组件协作” 模式二、模板方法模式1、动机2、源码分析讲解①、结构化软件设计②、面向对象软件设计 三、模板方法模式定义四、结构要点总结 前言 一、“组件协作” 模式 现代软件专业分工之后的第一个结果是 “框架与应用程序的划分”&#xff0c;“组件协作…

Cuckoo Filter

其他判重数据结构 Bloom Filter 无法支持删除和计数的功能&#xff0c;需要更多的存储空间来存储数据 因为在CS中&#xff0c;删除和计数是常见的操作&#xff0c;但是这会对布隆过滤器的存储空间产生影响&#xff0c;同样为了实现这一操作&#xff0c;需要更多的存储空间 数…

ArcGIS Pro导航工具

主要导航工具为浏览工具 、屏幕导航器 、书签 、转到XY工具 。 其它还包括链接视图、地图比例&#xff08;2D&#xff09;、场景高度&#xff08;3D&#xff09;、暂停并刷新绘制、照相机属性、在3D模式下导航、键盘快捷键等。 1 主要导航工具 地图和场景的默认工具为浏览工具…

C++ “类与对象”

类与对象的概念 类相当于是结构体的声明&#xff0c;是结构体的设计图&#xff0c;而对象是利用设计图的创造的产物. &#xff08;1&#xff09;.类的大小计算 类的大小计算时与结构体类似&#xff0c;但函数是不计入大小的&#xff08;函数放在单独的公共空间&#xff09;. 在…

Unity API详解——Object类

Object类是Unity中所有对象的基类&#xff0c;例如GameObject、Component、Material、Shader、Texture、Mesh、Font等都是Object的子类。本博客介绍Object类的一些实例方法和静态方法。 一、Object类实例方法 在Object类中&#xff0c;涉及的实例方法主要有GetInstanceID方法…

8. 优先队列

8. 优先队列 普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。在某些情况下&#xff0c;我们可能需要找出队列中的最大值或者最小值&#xff0c;例如使用一个队列保存计算机的任务&#xff0c;一般情况下计算机的任务都是有优先级…