Mysql的基本命令

1 服务相关命令

命令描述
systemctl status mysql查看MySQL服务的状态
systemctl stop mysql停止MySQL服务
systemctl start mysql启动MySQL服务
systemctl restart mysql重启MySQL服务
ps -ef | grep mysql查看mysql的进程
mysql -uroot -hlocalhost -p123456登录MySQL
help显示MySQL的帮助信息
quite退出当前数据库的连接

2 系统相关命令

命令描述
show status;查看MySQL的运行状态
show variables;查看MySQL的所有系统变量
show variables like “warning_count”;查看MySQL的某个系统变量
show processlist;查看客户端的连接线程
show engines;显示MySQL支持的引擎
show grants;显示当前连接的权限
show errors显示MySQL的错误信息
show warning显示MySQL的警告信息

3 数据库相关的命令

命令描述
show databases;显示所有的数据库
use db_name进入数据库中
create database test;创建数据库,存在相同的数据库报错
create database if not exists test;如果数据库不存在创建数据库,存在不操作
drop database test;删除数据库,不存在则报错
drop database if exists test;存在则删除数据库
show variable like “character_set”;查看当前的编码格式
show variables like “collation%”;查看当前的排序规则

1 显示所有的数据库
在这里插入图片描述
2 使用数据库
在这里插入图片描述
3 创建数据库

# 创建数据库,编码格式使用utf8mb4默认排序utf8mb4_unicode_ci
create database test character set utf8mb4 collate utf8mb4_unicode_ci

在这里插入图片描述
数据库存在报错
在这里插入图片描述

# 存在不会报错,不存在创建
create database if not exists test;

在这里插入图片描述
4 删除数据库

# 删除数据库,不存在则报错
drop database test;
# 删除数据库不存在不会报错,存在删除
drop database if exists test;

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

5 查看当前的编码格式

show variables like "character_set%"

在这里插入图片描述
6 查看当前的排序规则

show variables like "collation%"

在这里插入图片描述

4 表相关的命令

命令描述
show tables;查看该数据库中所有的表
desc sys_config;查看数据表的结构
show columns from sys_config;查看数据表的结构
explain sys_config;查看数据表的结构
create table_name (column1 datatype);创建表
alter table table_name column;修改表的字段
rename table table_name to new_table_name;修改表名
drop table table_name;删除表
truncate table table_name;清空表的数据
show create table table_name;显示创建表的语句

1 显示所有的表

show tables;

在这里插入图片描述
2 查看表结构

desc sys_config;
show columus from sys_config;
explain sys_config;

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
3 创建表

# 示例
create table [if not exists] table_name (
    column1 datatype,
    column2 datatype,
    ...
) engine=InnoDB default charset=utf-8;

字段选项(可以不写,不选使用默认值):

  • NULL:表示该字段可以为空。
  • NOT NULL:表示改字段不允许为空。
  • DEFAULT 默认值:插入数据时若未对该字段赋值,则使用这个默认值。
  • AUTO_INCREMENT:是否将该字段声明为一个自增列。
  • PRIMARY KEY:将当前字段声明为表的主键。
  • UNIQUE KEY:为当前字段设置唯一约束,表示不允许重复。
  • COMMENT 字段描述:为当前字段添加备注信息,类似于代码中的注释。

表选项(可以不写,不选使用默认值):

  • ENGINE = 存储引擎名称:指定表的存储引擎,如InnoDB、MyISAM等。
  • CHARACTER SET = 编码格式:指定表的编码格式,未指定使用库的编码格式。
  • COLLATE = 排序规则:指定表的排序规则,未指定则使用库的排序规则。
  • AUTO_INCREMENT = n:设置自增列的步长,默认为1
  • COMMENT 表描述:表的注释信息,可以在这里添加一张表的备注。
# 案例1
CREATE TABLE students (
  id int NOT NULL AUTO_INCREMENT,
  name varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  age int DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

在这里插入图片描述

# 案例2, 复制表的结构,但是不复制数据
create table students1 like students;

在这里插入图片描述

# 案例3, 复制表的结构同时复制表的数据
create table students2 as select * from students;

在这里插入图片描述
4 修改表的字段

# 示例1, 添加字段名称
# 创建表
create table test(id int, name varchar(100), age int);
# 添加字段
alter table test add  alias varchar(100);
# 删除表
drop table test;

在这里插入图片描述

# 示例2, 删除字段
# 创建表
create table test(id int, name varchar(100), age int, alias varchar(100));
# 删除字段
alter table test drop alias;
# 删除表
drop table test;

在这里插入图片描述

# 示例3, 添加主键
# 创建表
create table test(id int, name varchar(100), age int);
# 声明为主键
alter table test add constraint test_pk primary key (id);
# 删除表
drop table test

在这里插入图片描述

# 示例4, 添加为外键
# 创建表1
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 创建表2
create table class(id int not null auto_increment, name varchar(100), primary key(id));
# 添加外键
alter table students add constraint students_fK foreign key (id) references class(id);
# 查看表的创建语句
show create table students;
# 查看表的外键关系
select * from information_schema.key_column_usage where table_schema = 'test' and table_name = 'students' and referenced_table_name IS NOT NULL;
# 删除表
drop table students;
drop table class;

在这里插入图片描述

# 示例5, 删除外键
# 创建表2
create table class(id int not null auto_increment, name varchar(100), primary key(id));
# 创建表1
create table students(id int not null auto_increment, name varchar(100), primary key (id), constraint students_fk foreign key(id) references class(id));
# 删除外键
ALTER TABLE test.students DROP FOREIGN KEY students_FK;
# 查看表的创建语句
show create table students;
# 查看表的外键关系
select * from information_schema.key_column_usage where table_schema = 'test' and table_name = 'students' and referenced_table_name IS NOT NULL;
# 删除表
drop table students;
drop table class;

在这里插入图片描述

# 示例6, 添加唯一索引
# 创建表1
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 添加唯一索引
alter table students add constraint students_un unique key(name);
# 查看表的创建语句
show create table students;
# 删除表
drop table students;

在这里插入图片描述

# 示例7, 删除唯一索引
# 创建表1
create table students(id int not null auto_increment, name varchar(100), primary key (id), unique key students_un (name));
# 删除唯一索引
alter table students drop key students_un;
# 查看表的创建语句
show create table students;
# 删除表
drop table students;

在这里插入图片描述

# 示例7, 添加索引
# 创建表1
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 添加索引索引
alter table students add index idx_name(name);
# 查看表的创建语句
show create table students;
# 查看索引
show index from students;
# 删除表
drop table students;

在这里插入图片描述

# 示例8, 删除索引
# 创建表1
create table students(id int not null auto_increment, name varchar(100), primary key (id), key idx_name(name));
# 删除索引索引
alter table students drop index idx_name;
# 查看表的创建语句
show create table students;
# 查看索引
show index from students;
# 删除表
drop table students;

在这里插入图片描述

# 示例9, 修改列
# 创建表
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 修改字段数据类型
alter table students modify column name int null
# 修改字段名名称和数据类型
alter table students drop index idx_name;
# 修改字段数据类型
alter table students change name username varchar(255);
# 查看表结构
desc students;
# 删除表
drop table students;

在这里插入图片描述

# 示例10, 修改表名
# 创建表
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 修改表名
alter table students rename to new_students;
# 查看表名
show tables;
# 删除表
drop table new_students;

在这里插入图片描述

5 修改表名

# 示例1
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 修改表名
rename table students to new_students;
# 查看表
show tables;
# 删除表
drop table new_students;

在这里插入图片描述
6 删除表

# 示例1
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 查看表
show tables;
# 删除表
drop table students;

在这里插入图片描述
7 清空表的数据

# 示例1
create table students(id int not null auto_increment, name varchar(100), primary key (id));
# 添加数据
insert into students(name) values("test1"), ("test2");
# 查看数据
select * from students;
# 删除所有的数据
truncate table students;
# 删除表
drop table students;

在这里插入图片描述

5 操作数据

1 增

# 语法
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
# 创建表
REATE TABLE `users` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `email` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `birthdate` date DEFAULT NULL,
  `is_active` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) 
# 示例1 查看单行
INSERT INTO users (username, email, birthdate, is_active) VALUES('test1', '123', '1992-01-01', 1);
# 示例2 插入多行
insert into users(username, email, birthdate, is_active) values 
("test1", "test1@qq.com", "1992-01-01", 1),
("test2", "test2@qq.com", "1992-01-01", 1),
("test3", "test3@qq.com", "1992-01-01", 1);

# 示例3 
# 先清除数据
truncate table users;
# 将username修改为唯一主键
alter table users add constraint users_un unique key(username);
# 添加第一条
INSERT INTO users (username, email, birthdate, is_active) VALUES('test1', '123', '1992-01-01', 1);
# 添加唯一主键相同的数据报错
INSERT INTO users (username, email, birthdate, is_active) VALUES('test1', '123', '1992-01-01', 1);
# 使用IGNORE 插入时存在唯一主键相同的不会报错,也不会插入
INSERT IGNORE INTO users (username, email, birthdate, is_active) VALUES('test1', '123', '1992-01-01', 1);

# 示例4 
# 添加一个字段随着更新自动更新时间
ALTER TABLE your_table_name ADD COLUMN update_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
# 插入数据, 如果存在唯一索引的值,会先删除数据之后再更新,不存在正常插入
REPLACE INTO users (username, email, birthdate, is_active) VALUES('test1', '123', '1992-01-01', 1);
# 删除数据库
drop table users

INSERT IGNORE INTO操作
在这里插入图片描述
REPLACE INTO 操作
在这里插入图片描述

2 删

# 语法
DELETE FROM table_name WHERE condition;
# 创建数据表
CREATE TABLE `users` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `email` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `birthdate` date DEFAULT NULL,
  `is_active` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
# 创建待删除表
CREATE TABLE deletelist (
	id INT auto_increment NOT NULL,
	name varchar(100) NULL,
	CONSTRAINT deletelist_PK PRIMARY KEY (id)
);
# 插入测试数据
insert into users(username, email, birthdate, is_active) values 
("test1", "test1@qq.com", "1992-01-01", 1),
("test2", "test2@qq.com", "1992-01-02", 1),
("test3", "test3@qq.com", "1992-01-03", 1),
("test4", "test3@qq.com", "1992-01-04", 1),
("test5", "test3@qq.com", "1992-01-05", 1);
# 插入待删除数据
insert into deletelist(name) values 
("test1"),
("test2"),
("test3");
# 示例1, 删除符合条件的数据
DELETE FROM users WHERE username = "test1";
# 示例2 使用子查询删除符合条件的行:
DELETE FROM users WHERE id IN (SELECT id FROM users WHERE birthdate < '1992-01-03');
# 示例3,删除所有的数据
DELETE FROM orders;
# 删除表
drop table users;

删除指定条件的数据
在这里插入图片描述
删除子查询的条件
在这里插入图片描述
清空所有的数据
在这里插入图片描述

3 改

# 语法
UPDATE table_name SET column1 = value1, column2 = value2, ...WHERE condition;
# 创建数据表
CREATE TABLE `users` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `email` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `birthdate` date DEFAULT NULL,
  `age` int,
  `is_active` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
# 插入测试数据
insert into users(username, email, age, birthdate, is_active) values 
("test1", "test1@qq.com", 12,  "1992-01-01", 1),
("test2", "test2@qq.com", 14,  "1992-01-02", 1),
("test3", "test3@qq.com", 15,  "1992-01-03", 1),
("test4", "test3@qq.com", 16,  "1992-01-04", 1),
("test5", "test3@qq.com", 17,  "1992-01-05", 1);

# 示例1 更新单个列的值:
UPDATE users SET age = 6 WHERE username = 'test1';

# 示例2 更新多个列的值:
UPDATE users SET birthdate = '2000-01-01', age=20 WHERE username = "test2";

# 示例3 使用表达式更新值:
UPDATE users SET age = age * 2 WHERE username = 'test3';

# 示例4 更新所有的数据:
UPDATE users SET age = 12;

更新单例的值
在这里插入图片描述
更新多个列的值
在这里插入图片描述
利用表达式更新值
在这里插入图片描述

4 查询

基本使用

-- 语法
SELECT column1, column2, ...FROM table_name [WHERE condition] [ORDER BY column_name [ASC | DESC]] [LIMIT number];

-- 选择所有列的所有行
SELECT * FROM users;

-- 选择特定列的所有行
SELECT username, email FROM users;

-- 添加 WHERE 子句,选择满足条件的行
SELECT * FROM users WHERE is_active = TRUE;

-- 添加 ORDER BY 子句,按照某列的升序排序
SELECT * FROM users ORDER BY birthdate;

-- 添加 ORDER BY 子句,按照某列的降序排序
SELECT * FROM users ORDER BY birthdate DESC;

-- 添加 LIMIT 子句,限制返回的行数
SELECT * FROM users LIMIT 10;

-- 使用 AND 运算符和通配符
SELECT * FROM users WHERE username LIKE 'j%' AND is_active = TRUE;

-- 使用 OR 运算符
SELECT * FROM users WHERE is_active = TRUE OR birthdate < '1990-01-01';

-- 使用 IN 子句
SELECT * FROM users WHERE birthdate IN ('1990-01-01', '1992-03-15', '1993-05-03');

# 查询最后最后插入行的自增值
SELECT LAST_INSERT_ID();

where语句使用

--等于条件:
SELECT * FROM users WHERE username = 'test';

--不等于条件:
SELECT * FROM users WHERE username != 'runoob';

--大于条件:
SELECT * FROM products WHERE price > 50.00;

--小于条件:
SELECT * FROM orders WHERE order_date < '2023-01-01';

--大于等于条件:
SELECT * FROM employees WHERE salary >= 50000;

--小于等于条件:
SELECT * FROM students WHERE age <= 21;

--组合条件(AND、OR):
SELECT * FROM products WHERE category = 'Electronics' AND price > 100.00;
SELECT * FROM orders WHERE order_date >= '2023-01-01' OR total_amount > 1000.00;

--模糊匹配条件(LIKE):
SELECT * FROM customers WHERE first_name LIKE 'J%';

--IN 条件:
SELECT * FROM countries WHERE country_code IN ('US', 'CA', 'MX');

--NOT 条件:
SELECT * FROM products WHERE NOT category = 'Clothing';

--BETWEEN 条件:
SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

--IS NULL 条件
SELECT * FROM employees WHERE department IS NULL;

--IS NOT NULL 条件:
SELECT * FROM customers WHERE email IS NOT NULL;

5 模糊查询

IKE 子句是在 MySQL 中用于在 WHERE 子句中进行模糊匹配的关键字。它通常与通配符一起使用,用于搜索符合某种模式的字符串。

LIKE 子句中使用百分号 %字符来表示任意字符,如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。

--语法
SELECT column1, column2,FROM table_name WHERE column_name LIKE pattern;

--百分号通配符 %:
# % 通配符表示零个或多个字符。例如,'a%' 匹配以字母 'a' 开头的任何字符串。
SELECT * FROM customers WHERE last_name LIKE 'S%';

--下划线通配符 _:
-- _ 通配符表示一个字符。例如,'_r%' 匹配第二个字母为 'r' 的任何字符串。
SELECT * FROM products WHERE product_name LIKE '_a%';

-- 组合使用 % 和 _:
SELECT * FROM users WHERE username LIKE 'a%o_';

-- 不区分大小写的匹配:
SELECT * FROM employees WHERE last_name LIKE 'smi%' COLLATE utf8mb4_general_ci;

6 UNION查询

MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。

UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数和对应位置的数据类型必须相同。

-- 语法
SELECT column1, column2, ... FROM table1 WHERE condition1
UNION
SELECT column1, column2, ... FROM table2 WHERE condition2 [ORDER BY column1, column2, ...];

-- 将选择客户表和供应商表中所有城市的唯一值,并按城市名称升序排序。
ELECT city FROM customers 
UNION
SELECT city FROM suppliers ORDER BY city;

-- 将选择电子产品和服装类别的产品名称,并按产品名称升序排序。
SELECT product_name FROM products WHERE category = 'Electronics'
UNION
SELECT product_name FROM products WHERE category = 'Clothing' ORDER BY product_name;

-- UNION ALL 将客户表和供应商表中的所有城市合并在一起,不去除重复行。
SELECT city FROM customers
UNION ALL
SELECT city FROM suppliers ORDER BY city;

7 排序

如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

MySQL ORDER BY(排序) 语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序。

-- 语法
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...;

-- 单列排序:
SELECT * FROM products ORDER BY product_name ASC;

-- 多列排序:
SELECT * FROM employees ORDER BY department_id ASC, hire_date DESC;

-- 使用数字表示列的位置:
SELECT first_name, last_name, salary FROM employees ORDER BY 3 DESC, 1 ASC;

-- 使用表达式排序:
SELECT product_name, price * discount_rate AS discounted_price FROM products ORDER BY discounted_price DESC;

-- 使用 NULLS FIRST 或 NULLS LAST 处理 NULL 值:将 NULL 值排在最后。
SELECT product_name, price FROM products ORDER BY price DESC NULLS LAST;

8 分组查询

GROUP BY 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 聚合函数COUNT, SUM, AVG,等。

-- 语法
SELECT column1, aggregate_function(column2)
FROM table_name
WHERE condition
GROUP BY column1;

-- 根据customer_id分组,统计order_amount 
SELECT customer_id, SUM(order_amount) AS total_amount
FROM orders
GROUP BY customer_id;

-- 根据name分组统计name数量
SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;

9 连表查询

在这里插入图片描述
JOIN 按照功能大致分为如下三类:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • **LEFT JOIN(左连接):**获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
  • FULL OUTER JOIN(全连接): 两张表的数据数据全部连接,条件不相等的显示为空,一般不这样使用这个
# 语法
SELECT column1, column2, ...
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

10 正则查询

MySQL 中使用 REGEXP 和 RLIKE操作符来进行正则表达式匹配。

模式描述
^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
.匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像 ‘[.\n]’ 的模式。
[…]字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
[^…]负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p’。
p1|p2|p3匹配 p1 或 p2 或 p3。例如,‘z|food’ 能匹配 “z” 或 “food”。‘(z|f)ood’ 则匹配 “zood” 或 “food”。
*匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
{n}n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

正则表达式匹配的字符类

  • .:匹配任意单个字符。
  • ^:匹配字符串的开始。
  • $:匹配字符串的结束。
  • *:匹配零个或多个前面的元素。
  • +:匹配一个或多个前面的元素。
  • ?:匹配零个或一个前面的元素。
  • [abc]:匹配字符集中的任意一个字符。
  • [^abc]:匹配除了字符集中的任意一个字符以外的字符。
  • [a-z]:匹配范围内的任意一个小写字母。
  • \d:匹配一个数字字符。
  • \w:匹配一个字母数字字符(包括下划线)。
  • \s:匹配一个空白字符。
-- 语法
SELECT column1, column2, ...
FROM table_name
WHERE column_name REGEXP 'pattern';

--  查找 name 字段中以 'st' 为开头的所有数据:
SELECT name FROM person_tbl WHERE name REGEXP '^st';

-- 查找 name 字段中以 'ok' 为结尾的所有数据
SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

--  查找 name 字段中包含 'mar' 字符串的所有数据
SELECT name FROM person_tbl WHERE name REGEXP 'mar';

--  找 name 字段中以元音字符开头或以 'ok' 字符串结尾的所有数据:
SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

--  选择订单表中描述中包含 "item" 后跟一个或多个数字的记录。
SELECT * FROM orders WHERE order_description REGEXP 'item[0-9]+';

--  使用 BINARY 关键字,使得匹配区分大小写:
SELECT * FROM products WHERE product_name REGEXP BINARY 'apple';

--  使用 OR 进行多个匹配条件,以下将选择姓氏为 "Smith" 或 "Johnson" 的员工记录:
SELECT * FROM employees WHERE last_name REGEXP 'Smith|Johnson';

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

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

相关文章

【PRO3.0 】电子面单模版请求失败问题处理

注意&#xff1a;&#xff1a;改完重启守护进程 1、文件地址&#xff1a;crmeb/services/express/storage/Express.php 行数 202 行左右&#xff0c; 方法名&#xff1a;temp() 如下如图把 POST 改成 GET 2、crmeb/services/HttpService.php 行数&#xff1a;81 行左右 方…

多线程带来的的风险-线程安全、锁的问题

线程安全的概念 想给出一个线程安全的确切定义是复杂的&#xff0c;但我们可以这样认为&#xff1a; 如果多线程环境下代码运行的结果是符合我们预期的&#xff0c;即在单线程环境应该的结果&#xff0c;则说这个程序是线程安全的。 观察线程不安全 class Counter {public…

C++初阶 | [十一] priority_queue 优先级队列

摘要&#xff1a;priority_queue 优先级队列的使用和模拟实现&#xff0c;仿函数 前言——优先级队列介绍&#xff1a; 优先队列是一种容器适配器&#xff0c;根据严格的弱排序标准&#xff0c;它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆&#xff0c;在堆中…

OpenHarmony实战:用IPOP调试 OpenHarmony 内核

前言 我使用的是 IPOP V4.1&#xff0c;基于 OpenHarmony 开源系统和 RK3568 开发板&#xff0c;在 PC 上运行此软件&#xff0c;查看运行、错误日志来调试内核。作为网络、嵌入式式内核调试的必备工具&#xff0c;建议同学珍藏。IPOP 运行在 PC 上&#xff0c;操作系统是 Win…

真快乐APP抢购源码实现

支持多个平台的自动 滑动验证码、选字验证码。缺点就是需要自己找一个验证码识别服务器,可以自己用python写一个,或者使用超级鹰(本篇教程就是使用它) 下面是实现源码 "ui"; Date.prototype.Format = function (fmt) {var o = {"M+": this.getMonth() …

学习transformer模型-broadcast广播的简明介绍

broadcast的定义和目的&#xff1a; 广播发生在将较小的张量“拉伸”以具有与较大张量兼容的形状&#xff0c;以便执行操作时。 广播是一种有效执行张量操作而不创建重复数据的方式。 广播的处理过程&#xff1a; 1&#xff0c; 确定最右边的维度是否兼容 每…

前端性能优化-Table渲染速度优化

教务系统-排课页面性能优化总结 一、前言 在公司教务系统中,排课页面慢的令人发指,在某些情况由于数据量大导致页面主进程卡死,遂组织进行一次排查优化,现记录一下 二、效果对比 以下数据均为UAT环境 Performence对比 更改前: 主进程渲染时间为 8s 教务系统-排课页面性…

Intel FPGA (6):dac tlv5618a

Intel FPGA (6)&#xff1a;dac tlv5618a 前提摘要 个人说明&#xff1a; 限于时间紧迫以及作者水平有限&#xff0c;本文错误、疏漏之处恐不在少数&#xff0c;恳请读者批评指正。意见请留言或者发送邮件至&#xff1a;“Email:noahpanzzzgmail.com”。本博客的工程文件均存放…

探索DeFi元宇宙:NFT、Web3和DAPP的数藏Swap合约应用开发

随着区块链技术的发展和普及&#xff0c;DeFi&#xff08;去中心化金融&#xff09;和NFT&#xff08;非同质化代币&#xff09;等概念在数字经济中扮演着越来越重要的角色。而元宇宙、Web3、DAPP等概念也逐渐成为人们关注的焦点。在这个背景下&#xff0c;将这些概念融合在一起…

Flutter仿Boss-2.启动页、引导页

简述 在移动应用开发中&#xff0c;启动页和引导页是用户初次接触应用时的重要组成部分&#xff0c;能够提升用户体验和导航用户了解应用功能。本文将介绍如何使用Flutter实现启动页和引导页&#xff0c;并展示相关代码实现。 启动页 启动页是应用的第一个页面&#xff0c;首…

Excel 粘贴回筛选后的单元格不能完全粘老是少数据 ,有些单元格还是空的

环境&#xff1a; excel2021 Win10专业版 问题描述&#xff1a; excel 粘贴回筛选后的单元格不能完全粘老是少数据 有些单元格还是空的 复制选择筛选后A1-A10单元格 &#xff0c;定位条件&#xff09;&#xff08;仅可见单元格&#xff09;来访问&#xff0c;或者你可以使用…

Python接口自动化测试-篇1(postman+requests+pytest+allure)

Python接口自动化测试是一种使用Python编程语言来编写脚本以自动执行针对应用程序接口&#xff08;APIs&#xff09;的测试过程。这种测试方法专注于检查系统的不同组件或服务之间的交互&#xff0c;确保它们按照预期规范进行通信&#xff0c;而不涉及用户界面&#xff08;UI&a…

项目部署到线上byte[]转换中文乱码,本地是好的

项目部署到线上byte[]转换中文乱码&#xff0c;本地是好的 byte[]转换成中文乱码&#xff0c;在idea上面调试没有乱码&#xff0c;部署到线上就乱码&#xff0c;原因是idea启动项目是utf-8, 然后线上是windows环境不知道啥 vo.setJsonObject(JSONUtil.parseObj(Convert.toStr(…

uni app 扫雷

闲来无聊。做个扫雷玩玩吧&#xff0c;点击打开&#xff0c;长按标记&#xff0c;标记的点击两次或长按取消标记。所有打开结束 <template><view class"page_main"><view class"add_button" style"width: 100vw; margin-bottom: 20r…

瑞_23种设计模式_迭代器模式

文章目录 1 迭代器模式&#xff08;Iterator Pattern&#xff09;★★★1.1 介绍1.2 概述1.3 迭代器模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析 &#x1f64a; 前言&#xff1a;本文…

TypeScript语法快速上手

TypeScript语法 对比ts编译器类型注解新增类型数组自定义类型注解函数类型对象类型元组类型类型推断枚举类型 对比 最大区别&#xff1a;ts能在编译时就能发现类型错误的问题&#xff0c;而js只有在系统运行时再通过异常中断来发现 ts的底层仍是js&#xff0c;但ts能够有效减少…

思腾推出支持大规模深度学习训练的高性能AI服务器

近日人工智能研究公司OpenAI公布了其大型语言模型的最新版本——GPT-4&#xff0c;可10秒钟做出一个网站&#xff0c;60秒做出一个游戏&#xff0c;参加了多种基准考试测试&#xff0c;它的得分高于88%的应试者&#xff1b;随后百度CEO李彦宏宣布正式推出大语言模型“文心一言”…

element-ui message 组件源码分享

今日简单分享 message 组件的源码&#xff0c;主要从以下四个方面来分享&#xff1a; 1、message 组件的页面结构 2、message 组件的 options 配置 3、mesage 组件的方法 4、个人总结 一、message 组件的页面结构 二、message 组件的 options 配置 前置说明&#xff1a;m…

Meta Pixel:助你实现高效地Facebook广告追踪

Meta Pixel 像素代码是用來衡量Facebook广告效果的一个官方数据工具&#xff0c;只要商家有在Facebook上投放广告就需要串联Meta Pixel 像素代码来查看相关数据。 它本质上是一段 JavaScript 代码&#xff0c;安装后可以让用户在自己网站上查看到访客活动。它的工作原理是加载…

FPGA高端图像处理开发板-->鲲叔4EV:12G-SDI、4K HDMI2.0、MIPI等接口谁敢与我争锋?

目录 前言鲲叔4EV----高端FPGA图像处理开发板核心板描述底板描述配套例程源码描述配套服务描述开发板测试视频演示开发板获取 前言 在CSDN写博客传播FPGA开发经验已经一年多了&#xff0c;帮助了不少人&#xff0c;也得罪了不少人&#xff0c;有的人用我的代码赢得了某些比赛、…