当前位置: 首页 > news >正文

一篇文章解决Mysql8

基于尚硅谷的Mysql8.0视频,修修改改。提取了一些精炼的内容。

首先需要在数据库内引入一张表。链接地址如下。

链接:https://pan.baidu.com/s/1DD83on3J1a2INI7vrqPe4A 
提取码:68jy

会进行持续更新。。


1. Mysql目录结构

Mysql的目录结构说明
bin目录所有Mysql的可执行文件,比如mysql.exe

MySQLInstanceConfig.exe

数据库的配置向导,在安装时出现的内容
data目录系统数据库所在的目录
my.ini文件MySQL的主要配置文件
C:\ProgramData\MySQL\MySQL Server8.0\data\用户创建的数据库所在的目录


2. 基本的SELECT语句

2.1 SQL分类

Sql语言在功能上主要分为以下三大类:

  • DDL(Data Definition Languages,数据定义语言),这些语句定义了不同的据库,表,视图,索引等数据库对象,还可以用来创建,删除,修改数据库和数据表的结构。
    • 主要的语句关键字包括 CREATE, DROP, ALTER等。
  • DML(Data Manipulation Languages,数据库操作语言),用于 增,删,改,查。并检查数据库完整性。
    • 主要的关键字包括:Insert,Delete,Update,Select
    • Select是Sql语言的基础,最为重要。
  • DCL(Data Control Languages,数据库控制语言),用于定义数据库,表,字段,用户的访问权限和安全级别。
    • 主要的语句关键字包括:Grant,REVOKE,COMMIT,ROLLBACK,SAVEPOINT等。

因为查询语句使用的非常频繁,所以很多人把查询语句拎出来单独作为:DQL(数据库查询语言)

还有单独将COMMIT,ROLLBACK,取出来称为TCL(事务控制语言)

2.2 SQL语言的规范

2.2.1 基本规则

  1. SQL可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
  2. 每条命令以 ;或者 \g   \G 结尾
  3. 关键字不能被缩写也不能被分行
  4. 关于标点符号
    1. 必须保证所有的(),单引号,双引号 是成双成对的
    2. 必须使用英文状态下的半角输入方式
    3. 字符串和日期类型的数据类型可以使用单引号表示 (' ')
    4. 列的别名,尽量使用双引号(" "),而且不建议忽略 as

2.2.2 SQL大小写规范

  1. Mysql在Window环境下是大小写不敏感的
  2. Mysql在Linux环境下是大小写敏感的
  3. 数据库类名,表名,表的别名,变量名是严格区分大小写的
  4. 关键字,函数名,列名,字段名,列的别名,字段的别名,是忽略大小写的
  5. 推荐采用统一的规范
    1. 数据库名,表名,表别名,字段名,字段别名等都小写
    2. SQL关键字,函数名,绑定变量等都大写

2.3 最基本的SELECT ... FROM结构

2.3.1 最基本的SELECT语句

SELECT 1;   // 1SELECT 1 + 1;  // 2

这种语句只有一个SELECT,没有后面的语句结构,也是一样可以进行查询出来的,查询出来的内容就是结果。列名就是 SELECT后面跟的内容。其实他的表结构就类似于以下

SELECT 1 + 1 FROM DUAL;

DUAL: 伪表。

也就是说,SELECT语句的最基本的构成是以下内容

SELECT * FROM table;

SELECT 字段1, 字段2... FROM 表名

查询一张完整的表,在上面提供过数据库,查询库内的employees表。

-- 使用数据库
USE atguigudb;-- 查询所有的员工表下的信息SELECT * from employees;

如果只想查询特定的列,则可以把*改为想要查的列名 

SELECT email FROM employees;

如果有多个列,则可以使用 逗号隔开。

SELECT email, employee_id FROM employees;

2.3.2 列的别名的定义

  1. 重命名一个列
  2. 便于计算
  3. 紧跟列名,也可以在列名和别名中间加上关键字AS,别名使用双引号,以便在别名中包含空格或者特殊的字符并且区分大小写。
  4. AS可以省略
  5. 建议别名见名知意。

以下举例说明。

-- 原有的sql
SELECT email, employee_id FROM employees;-- 使用别名后的sql
SELECT email AS em, employee_id emp_id FROM employees;

2.3.3 去除重复行 DISTINCT

查询所有的数据,可能会出现重复的内容,就可以使用取出重复行,比如有以下一个需求。

我需要查询所有的department_id,但是我不希望看见重复的。就可以使用这个关键字

DISTINCT 

SELECT DISTINCT department_id FROM employees;

2.3.4 空值参与运算 IFNULL()

在MySQL查询中,常常遇到某些元组的字段为NULL,其参与的运算就全都为NULL。如何让字段为NULL的元组能按照我们指定的值参与运算呢?本篇博客将教你IFNULL() 函数的使用。

给定一张员工表 employees ,现在的需求是根据表中的 salary 和 commission_pct (即绩效奖金比例,乘工资即为奖金) ,计算每个员工的年总工资。

IFNULL 函数表示:如果字段 commission_pct 不是 (NULL) ,就按 commission_pct 本来的值计算;而如果 commission_pct 为 (NULL) ,就按 0 计算。如下代码所示:

SELECT employee_id, last_name, salary, commission_pct, salary * (1 + IFNULL(commission_pct, 0) * 12) AS "annual salary"
FROM employees; 

有了 IFNULL 函数,在 commission_pct 为 (NULL) 时,就可以按照我们指定的值进行计算。

【结论】

只要在运算中,带有 (NULL) 的元组,在没有其他措施的干预下,其运算结果必为 (NULL) 。
运用 IFNULL 函数,在碰到字段为 (NULL) 的元组时能够按照我们指定的值参与运算。从而保证我们计算的结果不会出现 (NULL) 。

2.3.5 着重号

必须保证你的字段没有和保留字、数据库系统或常见方法冲突。如果坚持使用,在SQL语句中使用 ` ` 引起来。

SELECT * from `order`;

2.3.6 查询常数

用处:我想查询员工表里的employee_id和last_name并且要带上公司名称。我就可以用查询常数来实现。

SELECT 'xxxx有限公司' AS "公司名", employee_id, last_name FROM employees;

2.4 显示表结构 DESC

DESCRIBE employees;
或
DESC employees;mysql> desc employees;
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| employee_id | int(6) | NO | PRI | 0 | |
| first_name | varchar(20) | YES | | NULL | |
| last_name | varchar(25) | NO | | NULL | |
| email | varchar(25) | NO | UNI | NULL | |
| phone_number | varchar(20) | YES | | NULL | |
| hire_date | date | NO | | NULL | |
| job_id | varchar(10) | NO | MUL | NULL | |
| salary | double(8,2) | YES | | NULL | |
| commission_pct | double(2,2) | YES | | NULL | |
| manager_id | int(6) | YES | MUL | NULL | |
| department_id | int(4) | YES | MUL | NULL | |
+----------------+-------------+------+-----+---------+-------+
11 rows in set (0.00 sec)

其中,各个字段的含义分别解释如下:

  • Field:表示字段名称。
  • Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。
  • Null:表示该列是否可以存储NULL值。
  • Key:表示该列是否已编制索引。
  • PRI表示该列是表主键的一部分;
  • UNI表示该列是UNIQUE索引的一 部分;
  • MUL表示在列中某个给定值允许出现多次。
  • Default:表示该列是否有默认值,如果有,那么值是多少。
  • Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

2.5 过滤数据 WHERE

以下格式来机械能过滤数据,也就是筛选数据,使用关键字WHERE

SELECT 字段1,字段2 FROM 表名 WHERE 过滤条件;

使用WHERE 子句,将不满足条件的行过滤掉。WHERE子句紧随 FROM子句。

SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90;

3. 运算符

这一章节主要是运算,用到了开始提到的一个概念,伪表 DUAL

3.1 算数运算符

SELECT 10 + 0, 30 + 50 * 10, 100 - 99.5 FROM DUAL;
  • 一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;
  • 一个整数类型的值对浮点数进行加法和减法操作,结果是一个浮点数;
  • 在Java中, + 的左右两边如果有字符串,那么表示字符串的拼接。但是在MySQL中 + 只表示数值相加。如果遇到非数值类型,先尝试转成数值,如果转失败,就按0计算。(注:MySQL 中字符串拼接要使用字符串函数CONCAT()实现)
  • 在数学运算中,0不能用作除数,在MySQL中,一个数除以0为NULL。

3.2 比较运算符

3.2.1 等号运算符

比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回1,比较的结果 为假则返回0,其他情况则返回NULL。

比较运算符经常被用来作为SELECT查询语句的条件来使用,返回符合条件的结果记录。

如果等号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。

SELECT 1 = 1, 1 = '1', 1 = 0, 'a' = 'a', (5 + 3) = (2 + 6), '' = NULL 
, NULL = NULL;+-------+---------+-------+-----------+-------------------+-----------+-------------+
| 1 = 1 | 1 = '1' | 1 = 0 | 'a' = 'a' | (5 + 3) = (2 + 6) | '' = NULL | NULL = NULL |
+-------+---------+-------+-----------+-------------------+-----------+-------------+
|   1   |    1    |   0   |     1     |          1        |    NULL   |     NULL    |
+-------+---------+-------+-----------+-------------------+-----------+-------------+
1 row in set (0.00 sec)
  • 如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进行比较,其比较的 是每个字符串中字符的ANSI编码是否相等。
  • 如果等号两边的值都是整数,则MySQL会按照整数来比较两个值的大小。
  • 如果等号两边的值一个是整数,另一个是字符串,则MySQL会将字符串转化为数字进行比较。
  • 如果等号两边的值、字符串或表达式中有一个为NULL,则比较结果为NULL。
    SELECT 1 <=> '1', 1 <=> 0, 'a' <=> 'a', (5 + 3) <=> (2 + 6), '' <=> NULL,NULL <=> NULL FROM dual;+-----------+---------+-------------+---------------------+-------------+---------------+
    | 1 <=> '1' | 1 <=> 0 | 'a' <=> 'a' | (5 + 3) <=> (2 + 6) | '' <=> NULL | NULL <=> NULL |
    +-----------+---------+-------------+---------------------+-------------+---------------+
    |     1     |    0    |      1      |           1         |      0      |       1       |
    +-----------+---------+-------------+---------------------+-------------+---------------+
    1 row in set (0.00 sec)

    可以看到,使用安全等于运算符时,两边的操作数的值都为NULL时,返回的结果为1而不是NULL,其他返回结果与等于运算符相同

 在MySQL中,字符串和数字类型的比较规则可能会引起一些问题。下面列举几个需要注意的事项:
1)如果字符串中包含非数字字符,那么MySQL将无法将其转换成数字类型,比较结果可能会出现异常。
2)当一个字符串被转换成数字类型时,如果其开头是0,那么MySQL会将其视为八进制数进行转换。因此,如果字符串中包含八进制数,可能会导致比较结果出现异常。
3)当进行字符串和数字类型的比较时,MySQL会先将字符串类型的操作数转换成数字类型,这可能会导致一些不必要的性能损失。


总结
当进行比较时,需要注意字符串中是否存在非数字字符和八进制数,以及字符串和数字类型的转换可能会导致性能损失。

3.2.2 不等于运算符

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

mysql> SELECT 1 <> 1, 1 != 2, 'a' != 'b', (3+4) <> (2+6), 'a' != NULL, NULL <> NULL;+--------+--------+------------+----------------+-------------+--------------+
| 1 <> 1 | 1 != 2 | 'a' != 'b' | (3+4) <> (2+6) | 'a' != NULL | NULL <> NULL |
+--------+--------+------------+----------------+-------------+--------------+
|    0   |    1   |      1     |        1       |     NULL    |      NULL    |
+--------+--------+------------+----------------+-------------+--------------+
1 row in set (0.00 sec)

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

3.2.3 空运算符

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

SELECT NULL IS NULL, ISNULL(NULL), ISNULL('a'), 1 IS NULL;+--------------+--------------+-------------+-----------+
| NULL IS NULL | ISNULL(NULL) | ISNULL('a') | 1 IS NULL |
+--------------+--------------+-------------+-----------+
|      1       |       1      |      0      |     0     |
+--------------+--------------+-------------+-----------+
1 row in set (0.00 sec)

3.2.4 非空运算符

非空运算符(IS NOT NULL)判断一个值是否不为NULL,如果不为NULL则返回1,否则返回0。

3.2.5 最小值运算符

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

SELECT LEAST (1,0,2), LEAST('b','a','c'), LEAST(1,NULL,2)+---------------+--------------------+-----------------+
| LEAST (1,0,2) | LEAST('b','a','c') | LEAST(1,NULL,2) |
+---------------+--------------------+-----------------+
|       0       |          a         |        NULL     |
+---------------+--------------------+-----------------+
1 row in set (0.00 sec)

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

3.2.6 最大值运算符

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

SELECT GREATEST(1,0,2), GREATEST('b','a','c'), GREATEST(1,NULL,2);+-----------------+-----------------------+--------------------+
| GREATEST(1,0,2) | GREATEST('b','a','c') | GREATEST(1,NULL,2) |
+-----------------+-----------------------+--------------------+
|         2       |             c         |         NULL       |
+-----------------+-----------------------+--------------------+
1 row in set (0.00 sec)

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

3.2.7 BETWEEN AND运算符

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

3.2.8 IN运算符

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

SELECT 'a' IN ('a','b','c'), 1 IN (2,3), NULL IN ('a','b'), 'a' IN ('a', NULL);+----------------------+------------+-------------------+--------------------+
| 'a' IN ('a','b','c') | 1 IN (2,3) | NULL IN ('a','b') | 'a' IN ('a', NULL) |
+----------------------+------------+-------------------+--------------------+
|            1         |      0     |         NULL      |          1         |
+----------------------+------------+-------------------+--------------------+

3.2.9 NOT IN运算符

NOT IN运算符用于判断给定的值是否不是IN列表中的一个值,如果不是IN列表中的一 个值,则返回1,否则返回0。 与IN运算符相反。

3.2.10 LIKE 运算符

LIKE运算符主要用来匹配字符串,通常用于模糊匹配,如果满足条件则返回1,否则返回 0。如果给定的值或者匹配条件为NULL,则返回结果为NULL。

“%”:匹配0个或多个字符。
“_”:只能匹配一个字符。

3.2.11 ESCAPE

回避特殊符号的:使用转义符。例如:将[%]转为[],然后再加上[ESCAPE‘$’]即可。

SELECT job_id
FROM jobs
WHERE job_id LIKE ‘IT\_%‘;

如果使用\表示转义,要省略ESCAPE。如果不是\,则要加上ESCAPE。

SELECT job_id
FROM jobs
WHERE job_id LIKE ‘IT$_%‘ escape ‘$‘;

3.2.12 REGEXP运算符

REGEXP运算符用来匹配字符串,语法格式为: expr REGEXP 匹配条件 。

(1)‘^’匹配以该字符后面的字符开头的字符串。

(2)‘$’匹配以该字符前面的字符结尾的字符串。

(3)‘.’匹配任何一个单字符。

(4)“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。为了命名字符的范围,使用一 个‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。

(5)‘’匹配零个或多个在它前面的字符。例如,“x”匹配任何数量的‘x’字符,“[0-9]”匹配任何数量的数字, 而“”匹配任何数量的任何字符。

3.3. 逻辑运算符

逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1、0或者NULL。

MySQL中支持4种逻辑运算符如下:

3.4. 位运算 

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

MySQL支持的位运算符如下:

3.5 运算符的优先级

数字编号越大,优先级越高,优先级高的运算符先进行计算。

3.6 扩展 使用正则表达式查询

4. 排序与分页

4.1 排序规则

  1. 使用 ORDER BY 子句排序
    1. ASC(ascend)升序排序
    2. DESC(descend)降序排序
  2. ORDER BY 的子句在 SELECT语句的结尾

4.1.1 单列排序

-- 如果查询employees表,根据id进行升序或者降序排序,应该如下-- 降序排序
SELECT * FROM employees ORDER BY employee_id DESC; -- 升序排序 
SELECT * FROM employees ORDER BY employee_id ASC;

4.1.2 多列排序

  • 可以使用不在SELECT列表中的列排序。
  • 在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第 一列数据中所有值都是唯一的,将不再对第二列进行排序。

就是排序字段可以使用当前表的所有字段,并不是只能使用select中所查找的字段

4.2 分页

格式:

LIMIT [位置偏移量,] 行数
  • 举例:
--前10条记录:
SELECT * FROM 表名 LIMIT 0,10;
或者
SELECT * FROM 表名 LIMIT 10;
--第11至20条记录:
SELECT * FROM 表名 LIMIT 10,10;
--第21至30条记录:
SELECT * FROM 表名 LIMIT 20,10;

LIMIT 后面跟的第一个数字是从哪个位置开始,他有点类似于下标的概念。limit索引从0开始,后面跟的数字是步长,就是从前面哪个下标开始,向后查询几条。如果是 10,5。则是从下标为10的位置开始算,查询五条数出来。

MySQL 8.0中可以使用“LIMIT 3 OFFSET 4”,意思是获取从第5条记录开始后面的3条记录,和“LIMIT 4,3;”返回的结果相同。

  • 分页显式公式:(当前页数-1)* 每页条数,每页条数
SELECT * FROM table
LIMIT(PageNo - 1) * PageSize, PageSize;
  • 注意:LIMIT 子句必须放在整个SELECT语句的最后!

  • 使用LIMIT的好处

约束返回结果的数量可以 减少数据表的网络传输量 ,也可以 提升查询效率 。如果我们知道返回结果只有 1 条,就可以使用 LIMIT 1 ,告诉 SELECT 语句只需要返回一条记录即可。这样的好处就是 SELECT 不需 要扫描完整的表,只需要检索到一条符合条件的记录即可返回。

 

5.多表查询

5.1 多表查询分类

5.1.1 自链接

题目:查询employees表,返回 <员工 works for 老板>

相关文章:

一篇文章解决Mysql8

基于尚硅谷的Mysql8.0视频&#xff0c;修修改改。提取了一些精炼的内容。 首先需要在数据库内引入一张表。链接地址如下。 链接&#xff1a;https://pan.baidu.com/s/1DD83on3J1a2INI7vrqPe4A 提取码&#xff1a;68jy 会进行持续更新。。 1. Mysql目录结构 Mysql的目录结构…...

【Python】【进阶篇】6、Django视图函数

目录 6、Django视图函数1. 第一个视图函数1&#xff09;HttpResponse视图响应类型2&#xff09;视图函数参数request3&#xff09;return视图响应 2. 视图函数执行过程 6、Django视图函数 视图是 MTV 设计模式中的 V 层&#xff0c;它是实现业务逻辑的关键层&#xff0c;可以用…...

Latex常用符号和功能记录

公式下括号 \underbrace & \overbrace \begin{equation} \underbrace{L_1L_2}_{loss ~ 1} \overbrace{L_3L_4}^{loss ~ 2} \end{equation}L L 1 L 2 ⏟ l o s s 1 L 3 L 4 ⏞ l o s s 2 L \underbrace{L_1L_2}_{loss ~ 1} \overbrace{L_3L_4}^{loss ~ 2} Lloss 1…...

MySQL高级篇——索引的创建与设计原则

导航&#xff1a; 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 一、索引的分类与使用 1.1 索引的分类 1.1.1. 普通索引 1.1.2. 唯一性索引 1.1.3. 主键索引&#xff08;唯一非空&#xff09; 1.1.4…...

王一茗: “大数据能力提升项目”与我的成长之路 | 提升之路系列(三)

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…...

MySQL:数据库的基本操作

MySQL是一个客户端服务器结构的程序, 一.关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上&#xff0c;一般面向于记录。 主流的关系型数据库包括 Oracle、MySQL、SQL Server、Microsoft Access、DB2 等. …...

银行系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址&#xff1a;​​​​​​​https://download.csdn.net/download/qq_50954361/87708777 …...

【社区图书馆】-《科技服务与价值链》总结

【为什么研究价值链】 价值链及价值链协同体系是现代产业集群的核心枢纽&#xff0c;是推进城市群及产业集群化、服务化、生态化发展的纽带。因而推进价值链协同&#xff0c;创新发展价值链协同业务科技资源体系&#xff0c;既是科技服务业创新的重要方向&#xff0c;也是重塑生…...

工具链和其他-异步模块加载

目录 CMD/AMD Asynchronous Module Definition(AMD异步模块定义&#xff0c;语法风格) Common Module Definition ES6/CommonJS CommonJS ES6 Module 加载器示例 总结 cmd和amd的区别 现在有哪些异步加载方式 整体结构 编程&#xff1a;commonjs es6 module (有可能解…...

第一次使用R语言

在R语言中&#xff0c;“<-”符号与“”意义一样。另一种奇怪的R语言的等号表示方法&#xff0c;是以“->”表示&#xff0c;但是用得少。 有些计算机语言&#xff0c;变量在使用前要先定义&#xff0c;R语言则不需先定义&#xff0c;可在程序中直接设定使用。 若在Con…...

《语文教学通讯》栏目 收稿范围

《语文教学通讯》创刊于1978年&#xff0c;是由山西师范大学主管&#xff0c;山西师大教育科技传媒集团主办的期刊。历年被人民大学书报资料中心转载、复印的篇幅数量均居同类报刊之首。国内刊号&#xff1a;CN 14-1017/G4&#xff0c;国际刊号&#xff1a;ISSN 1004-6097&…...

Towards Principled Disentanglement for Domain Generalization

本文用大量的理论论述了基于解纠缠约束优化的域泛化问题。 这篇文章认为以往的文章在解决域泛化问题时所用的方法都是non-trivial的&#xff0c;也就是说没有作严格的证明&#xff0c;是不可解释的&#xff0c;而本文用到大量的定理和推论证明了方法的有效性。 动机 因为域泛…...

计算机网络学习02

1、TCP 与 UDP 的区别&#xff1f; 是否面向连接 &#xff1a; UDP 在传送数据之前不需要先建立连接。而 TCP 提供面向连接的服务&#xff0c;在传送数据之前必须先建立连接&#xff0c;数据传送结束后要释放连接。是否是可靠传输&#xff1a; 远地主机在收到 UDP 报文后&…...

网络交换机端口管理工具

如今&#xff0c;企业或组织级网络使用数百个交换机端口作为其 IT 基础架构的一部分来实现网络连接。这使得交换机端口管理成为日常网络管理任务的一部分。传统上&#xff0c;网络管理员必须依靠手动网络交换机端口管理技术来跟踪交换机及其端口连接状态。这种手动任务弊大于利…...

redis五大命令kv设计建议内存淘汰

什么是redis&#xff1f;主要作用&#xff1f; redis(remote dictionary server)远程字典服务&#xff1a;是一个开源的使用ANSI C语言编写&#xff0c;支持网络、可基于内存可持久化的日志型、key-value数据库&#xff0c;并提供多种语言的api redis的数据存在内存中&#xff…...

如何真正认识 Linux 系统结构?这篇文章告诉你

Linux 系统一般有 4 个主要部分&#xff1a;内核、shell、文件系统和应用程序。内核、shell 和文件系统一起形成了基本的操作系统结构&#xff0c;它们使得用户可以运行程序、管理文件并使用系统。 Linux内核 内核是操作系统的核心&#xff0c;具有很多最基本功能&#xff0c;…...

【移动端网页布局】流式布局案例 ① ( 视口标签设置 | CSS 样式文件设置 | 布局宽度设置 | 设置最大宽度 | 设置最小宽度 )

文章目录 一、视口标签设置二、CSS 样式文件设置三、布局宽度设置1、设置布局宽度2、设置布局最大宽度3、设置布局最小宽度4、查看网页最大最小宽度5、布局宽度设置 四、代码示例1、主界面标签2、CSS 布局设置 一、视口标签设置 参考 【移动端网页布局】移动端网页布局基础概念…...

力扣---LeetCode88. 合并两个有序数组

文章目录 前言88. 合并两个有序数组链接&#xff1a;方法一&#xff1a;三指针(后插)1.2 代码&#xff1a;1.2 流程图&#xff1a;方法二&#xff1a;开辟新空间2.1 代码&#xff1a;2.2 流程图&#xff1a;2.3 注意&#xff1a; 总结 前言 “或许你并不熠熠生辉甚至有点木讷但…...

H7-TOOL的CANFD Trace全解析功能制作完成,历时一个月(2023-04-28)

为了完成这个功能&#xff0c;差不多耗费了一个月时间&#xff0c;精神状态基本已经被磨平了。 当前已经支持&#xff1a; 1、LUA小程序控制&#xff0c;使用灵活。 2、采用SWD接口直接访问目标板芯片的CANFD外设寄存器和CANFD RAM区实现&#xff0c;支持USB&#xff0c;以太网…...

探析Android中的四类性能优化

作者&#xff1a;Yj家的孺子牛 流畅性优化 主线程模型 了解 Android 的流畅性优化之前&#xff0c;我们需要先了解Android的线程结构。在 Android 中&#xff0c;有一个主线程模型&#xff0c;其中所有的绘制以及交互都是在主线程中进行的&#xff0c;所以&#xff0c;当我们…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

&#x1f525; 推荐一个高质量的Java LSM Tree开源项目&#xff01; https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree&#xff0c;专为高并发写入场景设计。 核心亮点&#xff1a; ⚡ 极致性能&#xff1a;写入速度超…...

Spring事务传播机制有哪些?

导语&#xff1a; Spring事务传播机制是后端面试中的必考知识点&#xff0c;特别容易出现在“项目细节挖掘”阶段。面试官通过它来判断你是否真正理解事务控制的本质与异常传播机制。本文将从实战与源码角度出发&#xff0c;全面剖析Spring事务传播机制&#xff0c;帮助你答得有…...

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...

多模态大语言模型arxiv论文略读(110)

CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文标题&#xff1a;CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文作者&#xff1a;Hidehisa Arai, Keita Miwa, Kento Sasaki, Yu Yamaguchi, …...