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

MySQL数据库基础合集

MySQL数据库基础合集

目录

  • MySQL数据库基础合集
    • SQL关键字
        • DDL关键字
        • DML关键字
        • DQL关键字
        • DCL关键字
        • 约束关键字
    • SQL基础数据类型
        • 整数类型
        • 字符类型
        • 浮点类型
        • 时间类型
    • 数据定义语言DDL
        • 1.查看数据库
        • 2.创建库
        • 3.删除库
        • 4.切换库
        • 5.创建表
        • 6.删除表
        • 7.查看表
        • 8.查看表属性
        • 9.插入列
        • 10.修改列
        • 11.设置主键
        • 12.设置外键并绑定主键
        • 13.设置自增
        • 14.删除列
        • 15.重命名
        • 16.设定默认值
        • 17.添加备注
        • 18.设置是否可为空
    • 数据操纵语言DML
        • 1.查表
        • 2.插入数据
        • 3.更新数据
        • 4.删除数据
    • 数据查询语言DQL
        • 1.子查询
        • 2.联表查询
        • 3.GROUP BY
        • 4.HAVING
        • 5.分页查询
        • 6.排序查询
    • 数据控制语言DCL
        • 1.事务
        • 2.用户权限
        • 2.用户权限

SQL关键字

DDL关键字
DDL关键字含义
CREATE TABLE创建一个新的数据库表
ALTER TABLE修改现有数据库表的结构或属性
DROP TABLE删除数据库中的表
MODIFY COLUMN修改列
ADD COLUMN新增列
CREATE INDEX创建索引
DROP INDEX删除索引
CREATE VIEW创建视图
DROP VIEW删除视图
CREATE FUNCTION创建函数
ALTER FUNCTION修改已存在的函数
DROP FUNCTION删除函数
ENUM()枚举(多选多)
SET()集合(多选一)
DML关键字
DML关键字含义
SELECT从数据库中检索数据
INSERT INTO向数据库表中插入新的行或数据
UPDATE更新数据库表中的现有行或数据
DELETE FROM从数据库表中删除行或数据
DQL关键字
DQL关键字含义
SELECTSELECT 字段列表,查询检索的列或表达式,它指定了最终结果包含的列
FROMFROM 表名,指定了要查询的列表或视图,例FROM table_name
WHEREWHERE 条件列表,筛选查询结果,通常是列(字段)的条件表达式,例:WHERE id = 10
GROUP BYGROUP BY 分组字段列表,根据一个或多个列对结果进行分组,但是通常需要满足聚合条件
HAVINGHAVING 分组后的条件列表,用于在GROUP BY子句的结果上进行过滤筛选
ORDER BYORDER BY 排序字段列表,用于按照一个或多个列对结果进行排序,它可以按升序(ASC)或降序(DESC)对查询结果进行排序
LIMITLIMIT 分页参数,一般在语句的最后,用于限制查询结果的数量
DQL执行顺序FROM -> WHERE -> GROUP BY -> HAVING ->SELECT -> ORDER BY -> LIMIT
DCL关键字
DCL关键字含义
GRANT授予用户或角色特定的权限
REVOKE撤销用户或角色的权限
COMMIT提交当前事务
ROLLBACK回滚当前事务
SAVEPOINT在事务中设置保存点
SET设置会话级别的参数
约束关键字
约束关键字含义
DEFAULT默认约束:为列设置默认值
AUTO_INCREMENT自增约束:自动递增生成唯一标识符
UNIQUE唯一约束:唯一约束确保列中的值是唯一的,但允许为空值
NOT NULL非空约束:非空约束要求列中的值不能为空
CHECK检查约束:检查约束定义了对列值的条件限制
PRIMARY KEY主键约束:主键必须是唯一且非空的,每个表只能有一个主键
FOREIGN KEY外键约束:用于建立表与表之间的关联关系,确保引用的数据存在于其他表中的主键列中
ZEROFILL填充约束:以0填充,int(4) ZEROFILL 赋值1结果= 0001
UNSIGNED非负约束:只能存储非负整数类型

SQL基础数据类型

整数类型
类型含义
TINYINT占用1个字节,范围-128-127,无符号范围0-255
SMALLINT占用2个字节,范围-32768-32767,无符号范围0-65535
MEDIUMINT占用3个字节,范围-8388608-8388607,无符号范围0-16777215
INT占用4个字节,范围-2147483648-2147483647,无符号范围0-4294967295
BIGINT占用8个字节,范围-9223372036854775808-9223372036854775807,无符号范围0-18446744073709551615
字符类型
类型含义
CHAR默认长度为1,可指定长度,例如CHAR(10)为长度10
VARCHAR默认长度为1,可指定长度,例如VARCHAR(32)为长度32
TINYTEXT最多可容纳255个字符
TEXT无固定长度限制,可以容纳更大的字符数量,最多可容纳65535个字符(约64KB)
MEDIUMTEXT最多容纳16777215个字符(约16MB)
LONGTEXT最多可容纳4294967295个字符(约4GB)
ENUM用于存储预定义的枚举值之一。需要定义可选的枚举值,例如ENUM('A', 'B', 'C')
SET用于存储从一个或多个预定义选项集合中选择的值。需要定义可选的集合,例如SET('option1', 'option2', 'option3')
浮点类型
类型含义
FLOAT单精度浮点数,精度约为6-7位有效数字
DOUBLE双精度浮点数,精度约为15-16位有效数字
DECIMAL用于存储高精度的十进制数,精度由用户指定
时间类型
类型含义
DATE格式为’YYYY-MM-DD’
TIME格式为’HH:MM:SS’
DATETIME格式为’YYYY-MM-DD HH:MM:SS’
TIMESTAMP类似于DATETIME,格式为’YYYY-MM-DD HH:MM:SS’,用DEFAULT将默认值设置为CURRENT_TIMESTAMP可以默认当前时间
YEAR用于存储年份值,表示四位数的年份

数据定义语言DDL

主要分为

  • CREAT:创建
  • DROP:删除
  • ALTER:修改

登录MySQL

mysql -uroot -p
Enter password: ****
1.查看数据库
show databases;

image-20240123211131623

2.创建库
create database emp;

image-20240123211431191

3.删除库
drop database users;

image-20240123211955194

4.切换库
use emp;

image-20240123211507715

5.创建表
create table emp(id int,name varchar(32),age int);

image-20240123211809372

  • enum插入数据时只能是enum中包含的数据
  • set插入数据时必须是set数据中的一个
create table emp(id int,name varchar(32),hobby enum('read','run','listen'), gender set('male','female'));
6.删除表

注意要先use选择数据库

drop table emp;

image-20240123212137664

7.查看表
show tables;

image-20240123212607182

8.查看表属性
desc emp;

image-20240123212639207

9.插入列
alter table emp add(sex varchar(2));

image-20240123212912014

image-20240123212959931

10.修改列

必须是当前表中存在的属性

alter table emp modify column name varchar(24);

image-20240123213315673

11.设置主键

修改

alter table emp modify column id int primary key;

新建

create table emp1(id int primary key);

image-20240123213616383

12.设置外键并绑定主键

表1

create table dep (id int primary key auto_increment,name varchar(32) comment'部门名');

表2

create table emp (id int primary key auto_increment,name varchar(32) comment'员工名',dep_id int, foreign key(dep_id) references dep(id));
  • 当外键表2试图添加表1主键中不存在的数据时便会报错

image-20240126163922606

  • 当表1企图删除表2所在的行时也会报错(修改同理)

image-20240126164401992

13.设置自增
alter table emp modify column id int auto_increment;

image-20240123214011338

14.删除列
alter table emp drop column sex;

image-20240123214337573

15.重命名

RENAME

rename table emp to stu;
16.设定默认值

DEFAULT

create table emp3(id int,name varchar(32),age varchar(3) default "男");
17.添加备注

COMMENT

为表添加备注:

create table emp4(id int,name varchar(32)) COMMENT '员工表';

为字段添加备注:

create table emp4(id int COMMENT '员工编号',name varchar(32) COMMENT '员工姓名');
ALTER table emp4 modify column name varchar(32) COMMENT '员工名';
18.设置是否可为空

默认情况都是可以为空

NULL:可以为空

create table emp4(id int COMMENT '员工编号',name varchar(32) NULL COMMENT '员工姓名');

NOT NULL:不可为空

create table emp4(id int COMMENT '员工编号',name varchar(32) NOT NULL COMMENT '员工姓名');

数据操纵语言DML

  • SELECT:查表,SELECT在官方文档中隶属于DML,但是我们一般将其当做DQL操作
  • INSERT:插入数据
  • UPDATE:更新数据
  • DELETE:删除数据
1.查表

查表之前首先要选择库use database_name

查看emp表全部列

select * from emp5;

查看name字段

select name from emp5

image-20240124214136961

2.插入数据

insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...);

insert into emp5(name) value("李四");
3.更新数据
update emp5 set name="王五" where id=1;

image-20240124214736419

4.删除数据
delete from emp5 where id=4;

image-20240124215604517

删除表中所有数据

delete from emp5 ;

或者

truncate emp5;

image-20240124215803787

数据查询语言DQL

1.子查询
  • 将一个查询语句的结果当做另外一个查询语句的条件使用
+----+--------+---------------------+------+-------+
| id | name   | time                | age  | wages |
+----+--------+---------------------+------+-------+
|  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |
|  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |
|  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |
|  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |
|  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |
|  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |
|  7 | 竖八   | 2024-01-25 16:14:19 |   20 |  2200 |
+----+--------+---------------------+------+-------+
-- 查询最大工资
select max(wages) from emp5;
+------------+
| max(wages) |
+------------+
|       2200 |
+------------+
-- 将最大工资作为条件插入查询name字段的语句中
select name from emp5 where wages = (select max(wages) from emp5);
+--------+
| name   |
+--------+
| 竖八   |
+--------+
-- 多个字段同理
select name,age,wages from emp5 where wages = (select max(wages) from emp5);
+--------+------+-------+
| name   | age  | wages |
+--------+------+-------+
| 竖八   |   20 |  2200 |
+--------+------+-------+
2.联表查询
-- 查询部门表
select * from dep
+-----+--------------+
| id  | name         |
+-----+--------------+
| 200 | 技术部       |
| 201 | 人力资源     |
| 202 | 销售部       |
| 203 | 运营部       |
| 204 | 售后部       |
+-----+--------------+-- 查询员工表
select * from emp5;
+----+--------+---------------------+------+-------+--------+
| id | name   | time                | age  | wages | dep_id |
+----+--------+---------------------+------+-------+--------+
|  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |    203 |
|  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |    201 |
|  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |    202 |
|  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |    203 |
|  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |    201 |
|  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |    200 |
|  7 | 竖八   | 2024-01-25 16:14:19 |   20 |  2200 |    205 |
+----+--------+---------------------+------+-------+--------+-- 联表查询dep和emp5
select * from dep,emp5;
+-----+--------------+----+--------+---------------------+------+-------+--------+
| id  | name         | id | name   | time                | age  | wages | dep_id |
+-----+--------------+----+--------+---------------------+------+-------+--------+
| 204 | 售后部       |  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |    203 |
| 203 | 运营部       |  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |    203 |
| 202 | 销售部       |  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |    203 |
| 201 | 人力资源     |  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |    203 |
| 200 | 技术部       |  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |    203 |
| 204 | 售后部       |  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |    201 |
| 203 | 运营部       |  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |    201 |
| 202 | 销售部       |  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |    201 |
| 201 | 人力资源     |  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |    201 |
| 200 | 技术部       |  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |    201 |
| 204 | 售后部       |  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |    202 |
| 203 | 运营部       |  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |    202 |
| 202 | 销售部       |  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |    202 |
| 201 | 人力资源     |  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |    202 |
| 200 | 技术部       |  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |    202 |
| 204 | 售后部       |  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |    203 |
| 203 | 运营部       |  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |    203 |
| 202 | 销售部       |  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |    203 |
| 201 | 人力资源     |  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |    203 |
| 200 | 技术部       |  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |    203 |
| 204 | 售后部       |  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |    201 |
| 203 | 运营部       |  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |    201 |
| 202 | 销售部       |  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |    201 |
| 201 | 人力资源     |  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |    201 |
| 200 | 技术部       |  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |    201 |
| 204 | 售后部       |  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |    200 |
| 203 | 运营部       |  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |    200 |
| 202 | 销售部       |  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |    200 |
| 201 | 人力资源     |  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |    200 |
| 200 | 技术部       |  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |    200 |
| 204 | 售后部       |  7 | 竖八   | 2024-01-25 16:14:19 |   20 |  2200 |    205 |
| 203 | 运营部       |  7 | 竖八   | 2024-01-25 16:14:19 |   20 |  2200 |    205 |
| 202 | 销售部       |  7 | 竖八   | 2024-01-25 16:14:19 |   20 |  2200 |    205 |
| 201 | 人力资源     |  7 | 竖八   | 2024-01-25 16:14:19 |   20 |  2200 |    205 |
| 200 | 技术部       |  7 | 竖八   | 2024-01-25 16:14:19 |   20 |  2200 |    205 |
+-----+--------------+----+--------+---------------------+------+-------+--------+-- 添加条件限制,当员工表中的部门id = 部门表中id时,如果不存在对应的部门则不打印(比如id7的205部门)
select * from dep,emp5 where emp5.dep_id=dep.id;
+-----+--------------+----+--------+---------------------+------+-------+--------+
| id  | name         | id | name   | time                | age  | wages | dep_id |
+-----+--------------+----+--------+---------------------+------+-------+--------+
| 203 | 运营部       |  1 | 张三   | 2024-01-25 15:24:19 |   18 |  2000 |    203 |
| 201 | 人力资源     |  2 | 倪哥   | 2024-01-25 15:34:11 |   20 |  1000 |    201 |
| 202 | 销售部       |  3 | 李四   | 2024-01-25 16:14:19 |   18 |  2000 |    202 |
| 203 | 运营部       |  4 | 陈五   | 2024-01-25 16:14:19 |   19 |  1000 |    203 |
| 201 | 人力资源     |  5 | 王六   | 2024-01-25 16:14:19 |   19 |  2000 |    201 |
| 200 | 技术部       |  6 | 横七   | 2024-01-25 16:14:19 |   20 |  1000 |    200 |
+-----+--------------+----+--------+---------------------+------+-------+--------+
  • 例:打印各个部门中最高工资的员工信息
select * from emp5 where wages in (select max(wages) from emp5 group by dep_id);

image-20240125194221662

3.GROUP BY
  • group by 作用于where之后,order by 之前
  • 不适用group by的场景:查询后显示所有数据,且没有分组需要,例如当表中基本没有重复数据时就没必要分组

将表格emp5wages(工资)分组(2000,1000,2200)

select wages from emp5 group by wages;

image-20240125191222964

  • 例:我想查询各个部门的最高工资:
select dep_id,max(wages) from emp5 group by dep_id;

image-20240125191257691

  • 配合函数作用列,如summaxavgcount
select dep_id,sum(wages) from emp5 group by dep_id;
select dep_id,max(wages) from emp5 group by dep_id;
select dep_id,avg(wages) from emp5 group by dep_id;
select dep_id,count(*) from emp5 group by dep_id;
  • group_concat可以查看到组内所有人的属性
    • 根据部门(dep_id)分组,并且显示各个部门的人员
select group_concat(name), dep_id from emp5 group by dep_id;

image-20240126090824755

  • group_concat也可以查看进行字符的拼接
    • 根据部门(dep_id)分组,并且显示各个部门的人员以及其工资
select group_concat(name,":",wages), dep_id from emp5 group by dep_id;

image-20240126090943001

4.HAVING
  • HAVING一般紧随GROUP BY之后,一般用于限定SELECT筛选的字段
  • 查询各个部门的最高工资,并且排除薪资低于2000的
select dep_id,max(wages) from emp5 group by dep_id having max(wages)>2000;

image-20240125215505179

  • 查询各个部门的最高工资,并且只要202和203部门的
select dep_id,max(wages) from emp5 group by dep_id having dep_id in (202,203);

image-20240125215533299

5.分页查询
  • limit 0,2从第0页开始,往后每页2条数据
  • limit 2,2每页两条数据从第二页开始查询
select * from emp5 limit 0,2

image-20240125211023994

image-20240125211152056

6.排序查询
  • 升序:ASC
  • 降序:DESC
  • 按照员工的工资升序排序
select * from emp5 order by wages ASC;

image-20240125214218936

  • 按照员工的部门排序,当部门相同时按照工资升序排序
select * from emp5 order by dep_id ASC, wages ASC;

image-20240125214328490

数据控制语言DCL

1.事务

事务的四大特性:原子性,一致性,隔离性,持久性

  • START TRANSACTION:开始事务
start transaction;
  • ROLLBACK:回滚
rollback

image-20240129162916933

  • COMMIT:提交事务

提交事务后意味着改部分sql语句已运行结束,不能再执行回滚操作

start transaction;
insert into emp(name) values("王五");
commit;	# 提交事务后无法再进行回滚
2.用户权限
  • CREATE USER:创建新的用户并指定权限

username为用户名,password为密码,IDENTIFIED为指定用户密码的关键字

create user username IDENTIFIED by 'password';
  • DROP USER:删除用户
DROP USER username;
  • ALTER USER:更改用户权限或属性
ALTER USER username SET PASSWORD = 'new_password';
  • GRANT:赋予用户权限

赋予user用户 SELECTINSERT等权限,table_name为权限生效的表名(修改权限之前要use库)

GRANT SELECT, INSERT ON table_name TO user;
  • REVOKE:取消用户权限

用法与grant相同

REVOKE SELECT, INSERT ON table_name FROM user;

6518652337)]

  • COMMIT:提交事务

提交事务后意味着改部分sql语句已运行结束,不能再执行回滚操作

start transaction;
insert into emp(name) values("王五");
commit;	# 提交事务后无法再进行回滚
2.用户权限
  • CREATE USER:创建新的用户并指定权限

username为用户名,password为密码,IDENTIFIED为指定用户密码的关键字

create user username IDENTIFIED by 'password';
  • DROP USER:删除用户
DROP USER username;
  • ALTER USER:更改用户权限或属性
ALTER USER username SET PASSWORD = 'new_password';
  • GRANT:赋予用户权限

赋予user用户 SELECTINSERT等权限,table_name为权限生效的表名(修改权限之前要use库)

GRANT SELECT, INSERT ON table_name TO user;
  • REVOKE:取消用户权限

用法与grant相同

REVOKE SELECT, INSERT ON table_name FROM user;

相关文章:

MySQL数据库基础合集

MySQL数据库基础合集 目录 MySQL数据库基础合集SQL关键字DDL关键字DML关键字DQL关键字DCL关键字约束关键字 SQL基础数据类型整数类型字符类型浮点类型时间类型 数据定义语言DDL1.查看数据库2.创建库3.删除库4.切换库5.创建表6.删除表7.查看表8.查看表属性9.插入列10.修改列11.设…...

oracle19.22的patch已发布

2024年01月16日,oracle发布了19.22的patch 具体patch如下 Reserved for Database - Do not edit or delete (Doc ID 19202401.9) 文档ID规则如下 19(版本)年份(202x)(季度首月01,04,07,10).9 往期patch no信息和下…...

HTML+CSS:3D轮播卡片

效果演示 实现了一个3D翻转的卡片动画&#xff0c;其中每个卡片都有不同的图片和不同的旋转角度。整个动画循环播放&#xff0c;无限次。整个页面的背景是一个占据整个屏幕的背景图片&#xff0c;并且页面内容被隐藏在背景图片之下。 Code <div class"container"…...

ES 分词器

概述 分词器的主要作用将用户输入的一段文本&#xff0c;按照一定逻辑&#xff0c;分析成多个词语的一种工具 什么是分词器 顾名思义&#xff0c;文本分析就是把全文本转换成一系列单词&#xff08;term/token&#xff09;的过程&#xff0c;也叫分词。在 ES 中&#xff0c;Ana…...

从0开始搭建若依微服务项目 RuoYi-Cloud(保姆式教程完结)

文章接上一章&#xff1a; 从0开始搭建若依微服务项目 RuoYi-Cloud&#xff08;保姆式教程 一&#xff09;-CSDN博客 四. 项目配置与启动 当上面环境全部准备好之后&#xff0c;接下来就是项目配置。需要将项目相关配置修改成当前相关环境。 数据库配置 新建数据库&#xff…...

Linux true/false区分

bash的数值代表和其它代表相反&#xff1a;0表示true&#xff1b;非0代表false。 #!/bin/sh PIDFILE"pid"# truenginx进程运行 falsenginx进程未运行 checkRunning(){# -f true表示普通文件if [ -f "$PIDFILE" ]; then# -z 字符串长度为0trueif [ -z &qu…...

一些著名的软件都用什么语言编写?

1、操作系统 Microsoft Windows &#xff1a;汇编 -> C -> C 备注&#xff1a;曾经在智能手机的操作系统&#xff08;Windows Mobile&#xff09;考虑掺点C#写的程序&#xff0c;比如软键盘&#xff0c;结果因为写出来的程序太慢&#xff0c;实在无法和别的模块合并&…...

外卖跑腿系统开发:构建高效、安全的服务平台

在当今快节奏的生活中&#xff0c;外卖跑腿系统的开发已成为技术领域的一个重要课题。本文将介绍如何使用一些常见的编程语言和技术框架&#xff0c;构建一个高效、安全的外卖跑腿系统。 1. 技术选择 在开始开发之前&#xff0c;我们需要选择适合的技术栈。常用的技术包括&a…...

【MQ02】基础简单消息队列应用

基础简单消息队列应用 在上一课中&#xff0c;我们已经学习到了什么是消息队列&#xff0c;有哪些消息队列&#xff0c;以及我们会用到哪个消息队列。今天&#xff0c;就直接进入主题&#xff0c;学习第一种&#xff0c;最简单&#xff0c;但也是最常用&#xff0c;最好用的消息…...

CTF CRYPTO 密码学-7

题目名称&#xff1a;敲击 题目描述&#xff1a; 让我们回到最开始的地方 0110011001101100011000010110011101111011011000110110010100110011011001010011010100110000001100100110001100101101001101000011100001100011001110010010110100110100011001000011010100110000…...

随机森林和决策树区别

随机森林&#xff08;Random Forest&#xff09;和决策树&#xff08;Decision Tree&#xff09;是两种不同的机器学习算法&#xff0c;其中随机森林是基于决策树构建的一种集成学习方法。以下是它们之间的主要区别&#xff1a; 决策树: 单一模型: 决策树是一种单一模型&#…...

新建VM虚拟机-安装centOS7-连接finalshell调试

原文 这里有问题 首先进入/etc/sysconfig/network-scripts/目录 cd /etc/sysconfig/network-scripts/ 然后编辑文件 ifcfg-ens33 vi ifcfg-ens33...

936. 戳印序列

Problem: 936. 戳印序列 文章目录 思路解题方法复杂度Code 思路 这道题目要求我们通过使用印章来印刷目标字符串&#xff0c;使得目标字符串最终变成全为’?‘的字符串。我们可以使用贪心的思想来解决这个问题。 首先&#xff0c;我们需要找到所有可以匹配印章的位置&#xff…...

20240129收获

今天终于发现《八部金刚功》第五部我一直做的是错的&#xff0c;嗨。这里这个写法非常聪明&#xff0c;创立的数组&#xff0c;以及用obj[key] item[key]这样的写法&#xff0c;这个写法充分展示了js常规写法中只有等号右边会去参与运算&#xff0c;等号左边就是普通的键的写法…...

【虚拟机数据恢复】异常断电导致虚拟机无法启动的数据恢复案例

虚拟机数据恢复环境&#xff1a; 某品牌R710服务器MD3200存储&#xff0c;上层是ESXI虚拟机和虚拟机文件&#xff0c;虚拟机中存放有SQL Server数据库。 虚拟机故障&#xff1a; 机房非正常断电导致虚拟机无法启动。服务器管理员检查后发现虚拟机配置文件丢失&#xff0c;所幸…...

vue3 + antd 封装动态表单组件(三)

传送带&#xff1a; vue3 antd 封装动态表单组件&#xff08;一&#xff09; vue3 antd 封装动态表单组件&#xff08;二&#xff09; 前置条件&#xff1a; vue版本 v3.3.11 ant-design-vue版本 v4.1.1 我们发现ant-design-vue Input组件和FormItem组件某些属性支持slot插…...

【算法专题】贪心算法

贪心算法 贪心算法介绍1. 柠檬水找零2. 将数组和减半的最少操作次数3. 最大数4. 摆动序列(贪心思路)5. 最长递增子序列(贪心算法)6. 递增的三元子序列7. 最长连续递增序列8. 买卖股票的最佳时机9. 买卖股票的最佳时机Ⅱ(贪心算法)10. K 次取反后最大化的数组和11. 按身高排序12…...

x-cmd pkg | sqlite3 - 轻量级的嵌入式关系型数据库

目录 简介首次用户 技术特点竞品和相关产品sqlite 与 x-cmd进一步阅读 简介 sqlite3 是一个轻量级的文件数据库&#xff0c;体积非常小&#xff0c;提供简单优雅而功能强大的 sql 化的数据查询。 通常情况下&#xff0c;sqlite 指的是 SQLite 2.x 版本&#xff0c;而 sqlite3 …...

LeetCode —— 43. 字符串相乘

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…...

PalWorld/幻兽帕鲁Ubuntu 22.04 LTS 一键部署脚本

上去就是干&#xff01; 创建install.sh文件 #!/bin/bashsteam_usersteam log_path/tmp/pal_server.logif getent passwd "$steam_user" >/dev/null 2>&1; thenecho "User $steam_user exists." elseecho "User $steam_user does not exi…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...