MySQL——基础篇

news2024/11/25 2:40:28

学习视频链接:https://www.bilibili.com/video/BV1Kr4y1i7ru/?spm_id_from=333.999.0.0&vd_source=619f8ed6df662d99db4b3673d1d3ddcb

前言✴️

基础篇——MySQL概述、SQL、函数、约束、多表查询、事务

进阶篇——存储引擎、索引、SQL优化、视图/存储过程/触发器、锁、InnoDB核心、MySQL管理

运维篇——日志、主从赋值、分库分表、读写分离

一、基础篇

1. MySQL概述🍊

数据库(DataBase, DB):存储数据的仓库,数据在其中是有组织存储的

|

数据库管理系统(DataBase Management System, DBMS):操作和管理数据库的软件

|

SQL(Structured Query Language):操作数据库的语言,一套标准

主流的关系型数据库

在这里插入图片描述

1.1 安装及启动

安装

在这里插入图片描述

启动及停止

在这里插入图片描述

客户端进行连接

  • 开始菜单——MySQL Client
  • 命令行——mysql [-h 127.0.0.1] [-P 3306] -u root -p

数据模型

在这里插入图片描述

数据库分类

  • 关系型数据库(RDBMS):建立在关系模型基础上,是多张相互连接的二维表组成的数据库
  • 非关系型数据库:不是表结构存储的

1.2 SQL🍌

1.2.1 通用语法

注意事项:

  • SQL语句单行或多行书写,以分号结尾
  • SQL语句可以使用空格或缩进来增强语句的可读性,空格和缩进不限个数
  • MySQL数据库的SQL语句不区分大小写,关键字一般大写
  • 注释 --注释内容 #注释内容 /注释内容/

分类:

  • DDL(Data Definition Language, 数据定义语言)——定义/创建数据库对象(数据库,表,字段
  • DML(Data Manipulation Language, 数据操作语言)——增删改表中的数据
  • DQL(Data Query Language, 数据查询语言)——查询数据库中表的记录
  • DCL(Data Control Language, 数据控制语言)——创建数据库用户、控制数据库的访问权限
1.2.2 DDL

1)DDL-数据库操作

-- 查询所有的数据库
SHOW DATABASES;
-- 查询当前数据库
SELECT DATABASE();
# 创建  utf8mb4
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
# 删除
DROP DATABASE [IF EXISTS] 数据库名;
# 使用
USE 数据库名

2)DDL-表查询

-- 查询当前数据库的所有表
SHOW TABLES;
-- 查询表结构
DESC 表名;
-- 查询指定表的建表语句
SHOW CREATE TABLE 表名;

3)DDL-表创建

 create table tb_user(
    -> id int comment '编号',
    -> name varchar(50) comment '姓名',
    -> age int comment '年龄',
    -> gender varchar(1) comment '性别'
    -> )comment '用户表';
  
creat table 表名(
 字段名 字段类型 [comment 字段注释],
 ……
 字段名 字段类型 [comment 字段注释]
)[comment 表注释];

字段类型

数值类型

在这里插入图片描述

字符类型

在这里插入图片描述

日期时间类型

在这里插入图片描述

4)DDL-表操作-修改

# 字段
-- 添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
-- 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
-- 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
-- 删除
ALTER TABLE 表名 DROP 字段名;
# 表
-- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
-- 删除
DROP TABLE [IF EXISTS] 表名;
-- 删除指定表,并重新创建该表,保留表结构
TRUNCATE TABLE 表名;
1.2.3 DML
-- 添加数据 字符串和日期类型要用引号引起来
INSERT
# 给指定字段添加数据
INSERT INTO 表名(字段名1, 字段名2,……) VALUES (值1, 值2, ……);
# 给全部数据添加字段
INSERT INTO 表名 VALUES (值1, 值2, ……);
# 批量添加数据
INSERT INTO 表名(字段名1, 字段名2,……) VALUES (值1, 值2, ……), (值1, 值2, ……), (值1, 值2, ……);
INSERT INTO 表名 VALUES (值1, 值2, ……), (值1, 值2, ……), (值1, 值2, ……);


-- 修改数据;如果不加条件,就会修改整张表的所有数据。
UPDATE
UPDATE 表名 SET 字段名1=值1, 字段名2=值2, … [WHERE 条件];
-- 删除数据
DELETE
DELETE FROM 表名 [where 条件];

DELETE不能删除某个字段的值,可以使用UPDATE,使用UPDATA修改表中数据为NULL

1.2.4 DQL

语法

SELECT
	字段列表
FROM
	表名列表
WHERE
	条件列表
GROUP BY
	分组字段列表
HAVING
	分组后条件列表
ORDER BY
	排序字段列表
LIMIT
	分页参数

DQL-基本查询

# 查询多个字段
SELECT 字段1, 字段2, …… FROM 表名;
SELECT * FROM 表名;  # 效率低,不直观

# 设置别名
SELECT 字段1 [AS 别名1], 字段1 [AS 别名1], …… FROM 表名;

# 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

DQL-条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;

在这里插入图片描述

聚合函数

  • 概念: 将一列数据作为一个整体,进行纵向计算

  • 常见聚合函数: count——统计数量

    ​ max——最大值

    ​ min——最小值

    ​ avg——平均值

    ​ sum——求和

    注意:所有聚合函数不计算null值

    SELECT 聚合函数(字段列表) FROM 表名;
    

分组查询

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
/*
where 和 having 的区别
1. 执行时机:where是分组之前进行过滤,不满足where条件,不参与分组;having是分组之后对结果进行过滤
2. 判断条件不同:where不能对聚合函数进行判断,having可以
*/

-- 注意
-- 执行顺序:where > 聚合函数 > having
-- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义

排序查询

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2, ……;
# 排序方式
ASC  升序
DESC  降序
# 第一个字段排序后相等,才会执行第二个字段的排序

分页查询

# 语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;
# 起始索引是0开始, 起始索引=(查询页码-1)*每页显示记录数
# 如果查询的是第一页的数据,起始索引可以省略

DQL-执行顺序

在这里插入图片描述

起别名要在执行顺序之后才能使用

1.2.5 DCL

哪些用户可以访问,每个用户有访问数据库的什么权限

DCL-管理用户:SQL开发人员操作少,主要是DBA(Database Administrator 数据库管理员)使用

# 1. 查询用户
USE mysql;
SELECT * FROM user;

# 2. 创建用户  %表示任意主机,localhost表示本机
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

# 3. 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

# 4. 删除用户
DROP USER '用户名'@'主机名';

DCL-权限控制

在这里插入图片描述

# 1. 查询权限
SHOW GRANTS FOR '用户名'@'主机名';

# 2. 授予权限  所有数据库的表*.*
# 权限之间用逗号分隔
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

# 3. 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

1.3 函数🥭

概念: 一段可以直接被调用的代码或程序

1.3.1 字符串函数

在这里插入图片描述

1.3.2 数值函数

在这里插入图片描述

1.3.3 日期函数

在这里插入图片描述

select now();  # 2023-12-20 08:57:50
select curtime();  # 08:59:47
select YEAR(now());  # 2023
select MONTH(now());  # 12
select day(now());  #20

select date_add(now(), INTERVAL 70 YEAR);  # 2093-12-20 09:02:30
select date_add(now(), INTERVAL 70 MONTH);  # 2029-10-20 09:02:42
select date_add(now(), INTERVAL 70 DAY);  # 2024-02-28 09:02:53

select datediff('2023-1-10', '2023-1-1');  # 9
1.3.4 流程函数

实现条件筛选,从而提高语句的效率

在这里插入图片描述

create table score
(
    id int comment '编号',
    name varchar(50) comment '姓名',
    math double comment '数学成绩',
    english double comment '英语成绩',
    chinese double comment '语文成绩'
) comment '学员成绩表';

insert into score values (1, 'TOM', 67, 88, 95), (2, 'Rose', 23, 66, 90), (3, 'Jack', 56, 98, 76);

show create table score;
show tables;

select * from score;

select
    id,
    name,
    (case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end) as 'math',
    (case when english >= 85 then '优秀' when english >= 60 then '及格' else '不及格' end) as 'english',
    (case when chinese >= 85 then '优秀' when chinese >= 60 then '及格' else '不及格' end) as 'chinese'
from score;

1.4 约束🍓

概念: 作用于表中字段上的规则,用于限制存储在表中的数据

目的: 保证数据库中数据的正确、有效和完整

时机: 创建表/修改表的时候添加约束

分类: 在这里插入图片描述

自动增长:AUTO_INCREMENT

create table user (
  id int primary key auto_increment comment '主键',
  name varchar(10) not null unique comment '姓名',
  age int check ( age >0 and age <= 120 ) comment '年龄',
  status char(1) default '1' comment '状态',
  gender char(1) comment '性别'
) comment '用户表';

-- 什么情况下会使用那个默认值呢??  不写要插入这个字段
-- 插入数据
insert into user(name, age, status,gender) values ('Tom1', '19', '1', '男'), ('Tom2', '20', '2', '男');
insert into user(name, age,status,gender) values('Tom3','80','1','男');  # 上面语句执行了两次,这条记录的编号是从5开始的
insert into user(name, age,status,gender) values(null,'80','1','男');  # null不占用编号
insert into user(name, age,status,gender) values('Tom4','80','1','男');
# 外键约束
CREATE TABLE 表名(
    字段名 数据类型,
    ……
    [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名);
);

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名);

在这里插入图片描述

1.5 多表查询🍒

1.5.1 多表关系

一对多(多对一): 在多的一方建立外键,与少的一方的主键连接

多对多: 建立第三张中间表,中间表至少包含两个外键,分别关联两个主键

一对一: 用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,提升操作效率。在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)

1.5.2 多表查询概述

从多张表中查询数据——消除无效的笛卡尔积

需要限定条件where

1.5.3 内连接

查询A、B交集部分数据

# 隐式内连接
SELECT 字段列表 FROM 表1, 表2 WHERE 条件……;

# 显式内连接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON  连接条件;

-- 显式内连接减少扫描,速度更快

1.5.4 外连接

左外连接:查询左表所有数据,以及两张表交集部分数据

右外连接:查询右表所有数据,以及两张表交集部分数据

# 左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件……;

# 右外连接
SELECT 字段列表 FROM 表1 RIGHT[OUTER] JOIN 表2 ON 条件……;

-- 换一下表的位置就无所谓左外还是右外连接

1.5.5 自连接

当前表与自身的连接查询,自连接必须使用表别名

SELECT 字段列表 FROM 表1 别名1 JOIN 表1 别名2 ON 条件……;

1.5.6 联合查询

把多次查询的结果合并起来,形成一个新的查询结果集

# UNION 去重 UNION ALL 不去重
# 对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致
SELECT 字段列表 FROM 表A……
UNION/UNION ALL 
SELECT 字段列表 FROM 表B……;
/*
* 为什么不用or
  1. 联合查询效率更高,会使索引失效?
  2. 一张表or方便,多张呢?
*/

1.5.7 子查询

概念: SQL语句中嵌套SELECT语句,称为嵌套查询 ,又称子查询

SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

根据子查询结果分类

  • 标量子查询(子查询结果是单个值)

    # 子查询返回的结果是单个值(数字、字符串、日期等)
    # 常用操作符
    > >= < <= <> =
    
  • 列子查询(子查询结果为一列)

    # 常用操作符
    IN——在指定的集合范围之内
    NOT IN——不在指定的集合范围之内
    ANY——子查询返回列表中,有任意一个满足即可
    SOME——和ANY同
    ALL——子查询返回列表的所有值都必须满足
    
  • 行子查询(子查询结果为一行)

    # 常用操作
    =
    <>
    IN
    NOT IN
    SELECT * FROM emp WHERE (列1,列2) = (SELECT 列1, 列2 FROM ……)
    
  • 表子查询(子查询结果为多行多列)

    # 常用操作
    IN
    

根据子查询位置

  • WHERE之后
  • FROM之后
  • SELECT之后

1.6 事务🫐

1.6.1 事务简介

一组操作的集合,不可分割,要么同时成功,要么同时失败。——事务会把所有的操作作为一个整体一起向系统提交或撤销操作

默认MySQL的事务是自动提交的,也就是当执行一条DML语句,MySQL会立即隐式地提交事务

1.6.2 事务操作

方式一:修改事务的提交方式

# 查看/设置事务提交方式
SELECT @@autocommit;  # 查看当前事务的提交方式
SET @@autocommit=0;  # 0表示手动提交;1表示自动提交
# 提交事务
COMMIT;
# 回滚事务
ROLLBACK;
# 无论正确执行还是错误执行,提交了之后就不能回滚回去了;只要没提交就能回滚。
# 一般执行没问题就提交,执行出错就回滚。

方式二:手动开启事务

# 开启事务
START TRANSACTION 或 BEGIN;
# 提交事务
COMMIT;
# 回滚事务
ROLLBACK;
-- ---------------------------- 事务操作 ----------------------------
-- 数据准备
create table account(
    id int auto_increment primary key comment '主键ID',
    name varchar(10) comment '姓名',
    money int comment '余额'
) comment '账户表';
insert into account(id, name, money) VALUES (null,'张三',2000),(null,'李四',2000);


-- 恢复数据
update account set money = 2000 where name = '张三' or name = '李四';
#
#
select @@autocommit;
#
set @@autocommit = 0; -- 设置为手动提交

-- 转账操作 (张三给李四转账1000)
-- 1. 查询张三账户余额
select * from account where name = '张三';

-- 2. 将张三账户余额-1000
update account set money = money - 1000 where name = '张三';

...  # 不知道这里为什么加.就会程序出错,希望以后学完回来能补充起来

-- 3. 将李四账户余额+1000
update account set money = money + 1000 where name = '李四';


-- 提交事务
commit;

-- 回滚事务
rollback ;



-- 方式二
-- 转账操作 (张三给李四转账1000)
start transaction ;

-- 1. 查询张三账户余额
select * from account where name = '张三';

-- 2. 将张三账户余额-1000
update account set money = money - 1000 where name = '张三';

程序执行报错 ...

-- 3. 将李四账户余额+1000
update account set money = money + 1000 where name = '李四';


-- 提交事务
commit;

-- 回滚事务
rollback;

1.6.3 事务四大特性

事务的四大特性:

  • 原子性(Atomicity): 事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
  • 一致性(Consistency): 事务完成时,必须使所有的数据都保持一致状态。
  • 隔离性(Isolation): 数据库系统提供的隔离机制 ,保证事务在不受外部并发操作影响的独立环境下运行。
  • 持久性(Durability): 事务一旦提交或回滚,它对数据库中数据的改变是永久的。

1.6.4 并发事务问题

问题:

  • 脏读: 一个事务读到另一个事务还没提交的数据
  • 不可重复读: 一个事务先后读取同一条记录,但两次读取的数据不同
  • 幻读: 一个事务按照条件查询数据时,没有对应行,但是插入数据时,又发现这行数据已经存在

1.6.5 事务隔离级别

解决并发事务问题

级别分类:

在这里插入图片描述

# 查看事务隔离级别
SELECT @@TRANSACTION_ISOLATION;

# 设置事务隔离级别
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE};

数据隔离级别越高,数据越安全,性能越低。

总结

在这里插入图片描述

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

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

相关文章

磁盘类型选择对阿里云RDS MySQL的性能影响

测试说明 这是一个云数据库性能测试系列&#xff0c;旨在通过简单标准的性能测试&#xff0c;帮助开发者、企业了解云数据库的性能&#xff0c;以选择适合的规格与类型。这个系列还包括&#xff1a; * 云数据库(RDS MySQL)性能深度测评与对比 * 阿里云RDS标准版(x86) vs 经济…

GitHub two-factor authentication开启教程

问题描述 最近登录GitHub个人页面动不动就有一个提示框”… two-factor authentication will be required for your account starting Jan 4, 2024 …“&#xff0c;点击去看了一下原来是GitHub对所有的用户登录都要开启双重身份认证&#xff0c;要在1月4号前完成 解决办法 …

Jenkins + gitlab 持续集成和持续部署的学习笔记

1. Jenkins 介绍 软件开发生命周期(SLDC, Software Development Life Cycle)&#xff1a;它集合了计划、开发、测试、部署的集合。 软件开发瀑布模型 软件的敏捷开发 1.1 持续集成 持续集成 (Continuous integration 简称 CI): 指的是频繁的将代码集成到主干。 持续集成的流…

清风数学建模学习笔记-斯皮尔曼相关系数

内容&#xff1a;斯皮尔曼相关系数 一.原理&#xff1a; 二.算法&#xff1a; 1.MATLAB: 2.SPSS&#xff1a; 分析-相关-双变量相关-勾选标注显著性相关性 3. 相关性系数的选择&#xff1a;

三大主流前端框架介绍及选型

在前端项目中&#xff0c;可以借助某些框架&#xff08;如React、Vue、Angular等&#xff09;来实现组件化开发&#xff0c;使代码更容易复用。此时&#xff0c;一个网页不再是由一个个独立的HTML、CSS和JavaScript文件组成&#xff0c;而是按照组件的思想将网页划分成一个个组…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -SpringMVC搭建框架

第一章 初识SpringMVC 1.1 SpringMVC概述 SpringMVC是Spring子框架 SpringMVC是Spring 为**【展现层|表示层|表述层|控制层】**提供的基于 MVC 设计理念的优秀的 Web 框架&#xff0c;是目前最主流的MVC 框架。 SpringMVC是非侵入式&#xff1a;可以使用注解让普通java对象&…

自动化测试|Eolink Apikit 如何保存、使用测试用例

测试用例是测试过程中很重要的一类文档&#xff0c;它是测试工作的核心&#xff0c;是一组在测试时输入和输出的标准&#xff0c;是软件需求的具体对照。 测试用例可以帮助测试人员理清测试思路&#xff0c;确保测试覆盖率&#xff0c;发现需求漏洞&#xff0c;提高软件质量&a…

HarmonyOS 应用事件打点开发指导

简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志&#xff0c;难以识别其中的关键信息。因此&#xff0c;应用开发者需要一种数据打点机制&#xff0c;用来评估如访问数、日活、用户操作习惯以及影响用户使用的关键因素等关键信息。 HiAppEvent 是在系统层面…

计算机模拟仿真:技术与应用

计算机模拟仿真&#xff1a;技术与应用 一、引言 计算机模拟仿真是一种利用计算机技术对现实世界或系统进行模拟和仿真的方法。随着计算机技术的不断发展&#xff0c;计算机模拟仿真已经成为许多领域中不可或缺的技术工具。本文将介绍计算机模拟仿真的基本概念、技术原理、应用…

在做题中学习(34):两整数之和(不准用运算符+)

371. 两整数之和 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;异或&#xff08;两个数异或可看作无进位相加&#xff09; 当进位b为全0的时候&#xff0c;那异或的结果就是真正相加的结果。 class Solution { public:int getSum(int a, int b) {while(b!0){int…

2023年度佳作:AIGC、AGI、GhatGPT 与人工智能大模型的创新与前景展望

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 写在前面参与规则 ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论…

系统设计架构——互联网案例

Netflix 的技术栈 移动和网络:Netflix 采用 Swift 和 Kotlin 来构建原生移动应用。对于其 Web 应用程序,它使用 React。 前端/服务器通信:Netflix 使用 GraphQL。 后端服务:Netflix 依赖 ZUUL、Eureka、Spring Boot 框架和其他技术。 数据库:Netflix 使用 EV 缓存、Cas…

阿里推荐 LongAdder ,不推荐 AtomicLong !

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、CAS 1.1 CAS 全称 1.2 通俗理解CAS 1.3 CAS的问题 1.4 解决 ABA 问题 二、LongAdder 2.1 什么是 LongAdder 2.2 为什么推…

骨传导蓝牙耳机什么品牌音质好,最全盘点骨传导耳机品牌前五汇总

秋天到了&#xff0c;天气不那么热了&#xff0c;运动的感觉又回来了&#xff01;这时候&#xff0c;配上耳机里舒缓的音乐&#xff0c;简直是一种享受。说到运动耳机&#xff0c;大家知道吗&#xff1f;骨传导耳机可是运动的最佳拍档哦。它跟普通蓝牙耳机不一样&#xff0c;不…

【git学习笔记 01】打标签

文章目录 一、声明二、对标签的基本认知什么是标签&#xff1f;为什么要打标签&#xff1f;如何生成类似github中readme的图标 三、标签相关命令四、示例操作 一、声明 本帖持续更新中如有纰漏&#xff0c;望批评指正&#xff01;参考视频链接&#xff0c;非常感谢原作者&…

外贸SEO建站系统有哪些?海洋建站的优势?

外贸SEO建站怎么做比较好&#xff1f;如何做谷歌独立站SEO优化&#xff1f; 外贸企业越来越需要建立自己的在线形象&#xff0c;以吸引更多的潜在客户。而要实现这一目标&#xff0c;外贸SEO建站系统是一种非常有效的手段。那么&#xff0c;外贸SEO建站系统有哪些呢&#xff1…

BSWM 模式管理(一) 基本规则

BSWM 模式管理 基本规则 1 BSWM 模式管理2 AUTOSAR BSWM 的两种 operation 模式2.1 deferred opration2.2 immediate opration1 BSWM 模式管理 BSW 模式管理由 4 部分组成: Mode source: 模式仲裁的的触发器,可以由 APP/BSW 模块请求触发Mode Arbitration:当模式源出发的时候…

【已解决】修改了网站的class样式name值,会影响SEO,搜索引擎抓取网站及排名吗?

问题&#xff1a; 修改了网站的class样式name值&#xff0c;会影响搜索引擎抓取网站及排名吗&#xff1f; 解答&#xff1a; 如果你仅仅修改了网站class样式的名称&#xff0c;而没有改变网站的结构和内容&#xff0c;那么搜索引擎通常不会因此而影响它对网站的抓取和排名。但…

洗沙废水怎么处理

洗沙废水是指在沙石开采或洗刷过程中产生的含有大量悬浮物、沉淀物、重金属等污染物的废水。由于洗沙废水具有高浊度、高浓度和复杂成分的特点&#xff0c;直接排放会对水环境造成严重污染。因此&#xff0c;科学有效地处理洗沙废水至关重要。在处理洗沙废水时&#xff0c;我们…

常见可视化大屏编辑器有哪些?

前言&#xff1a; 在当今数字化时代&#xff0c;可视化大屏编辑器成为了数据展示和决策支持的重要工具。大屏编辑器不仅仅是数据的呈现&#xff0c;更是数据背后的故事的讲述者。它通过图表、图形和实时数据的呈现&#xff0c;为用户提供了全面的信息视图&#xff0c;帮助用户更…