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

python_Day20_mysql(1)

今日内容大纲介绍

  • 数据库的相关概述
  • 环境搭建
  • SQL语句分类
    • DDL
    • DML
    • DCL
    • DQL
  • DDL语句之操作数据库
  • DDL语句之操作数据表
  • DML语句之操作表数据(增删改)
  • DQL语句之操作表数据(查)

1.数据库的相关概述

  • 问1: 你知道的存储数据的方式有哪些?

    -- 方式1: 变量, 列表, 字典...
    只能对数据临时存储, 程序执行结束, 数据就丢失了.-- 方式2: 文件存储
    可以对数据永久存储, 但是不方便用户进行精细化管理.-- 方式3: 数据库存储
    数据库才是实际开发中, 真正存储数据的地方.
    数据库指的是存储数据的仓库, 本质是一个文件系统, 可以有规律的对数据进行存储, 方便用户进行CURD操作.
    -- C: Create, 增
    -- U: Update, 改
    -- R: Read,   查
    -- D: Delete, 删
    
  • 问2: 我们常说的数据库指的是DMBS(数据库管理系统), 那么DBMS和数据库之间有什么关系?

    -- 包含关系.
    DBMS: DataBase Management System, 数据库管理系统, 即: 软件, 例如: MySQL, Oracle...
    DB:   DataBase, 数据库, 即: 一个项目 = 1个数据库.
    

    1713144789850

  • 问3: 我们常用的数据库, 大多都是关系型数据库, 那么什么是关系型数据库, 什么是非关系型数据库?

    -- 关系型数据库(RDBMS, Relationship DataBase Management System)
    即: 以数据表的形式来存储数据, 且表与表之间有关系, 例如: 一对多, 多对多, 一对一...-- 非关系型数据库(NoSQL, Not Only SQL, 不仅仅是SQL)
    即: 大多采用 键值对 的形式来存储数据, 没有一对多, 多对多, 一对一等关系...
    
  • 问4: 常见的数据库有哪些?

    -- 关系型数据库
    MySQL, Oracle, SQLServer, DB2, SQLite...-- 非关系型数据库
    Redis, HBase, MongoDB...
    

2.MySQL的基本介绍

  • 概述

    它属于关系型数据库的一种, 最早属于瑞典的MySQLAB公司, 后来被Sun公司收购, 后来被Oracle收购.

    MySQL6.X版起, 开始收费了.

  • 安装

    -- 方式1: 直接使用我给大家的Linux虚拟机即可, 已经安装好了.-- 方式2: 在你的windows本机, 安装MySQL, 使用即可.
    思路1: 去MySQL官网下载 mysql的安装包, 然后下一步下一步安装即可.
    下载链接:https://dev.mysql.com/downloads/mysql/思路2: 安装小皮软件(Phpstudy, 运维工具, 可以帮助我们快速安装MySQL)
    推荐使用.
    

    1713147524871

    1713147568120

    1713147625296

    1713147718770

  • 配置path环境变量(如果你是在windows中安装MySQL)

1713148239615

3.MySQL的登陆方式

  • 登陆方式

    -- 方式1: 暗文方式, 格式如下:
    mysql -u root -p		-- 敲回车
    输入密码				 -- 敲回车-- 方式2: 明文方式, 格式如下:
    mysql -uroot -p密码	   -- 敲回车-- 方式3: 远程连接, 格式如下:
    mysql --host=ip地址 --user=账号 --password=密码-- 登出
    1. 直接点右上角的 ×
    2. exit
    3. quit
    
  • 常见的两个问题

    -- ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    -- 产生原因: MySQL服务没有启动.
    -- 解决方案: 启动MySQL即可.-- using password: YES
    -- 产生原因: 用户名或者密码错误.
    -- 解决方案: 输入正确的账号或者密码即可.
    

    1713148629186

4.MySQL的可视化工具

  • 解释

    MySQL的可视化工具, 指的是可以远程连接MySQL, 快速编写SQL语句, 有提示, 排错等一些列功能.

  • 常用的MySQL可视化工具如下

    • Navicat
    • SQLYog
    • DataGrip
    • ..........
  • DataGrip软件介绍

    它是JetBrains公司推出的, 专门用来连接 各种数据库的 工具, 功能强大, 稳定, 推荐使用.

    当然, 你要是不想装DataGrip, 你可以直接使用PyCharm来连接MySQL数据库, 也是一样的.

    前提, 你的PyCharm必须是专业版, 不能是社区版.

    • 下载

      https://www.jetbrains.com/datagrip/download/other.html

    • 安装

      和 PyCharm的安装方式一模一样, 这里: 略.

  • 配置DataGrip 或者 PyCharm连接MySQL

    • 连接本地(例如: windows系统)的MySQL

      1713150696161

    1713151184658

    • 连接虚拟机(例如: Linux系统)的MySQL

    1713151771809

5.SQL语句分类

  • 概述

    全称叫: Structured Query Language, 结构化查询语言, 即: 通过SQL语句可以实现操作数据库

  • 特点

    目前我们所学的SQL语句, 是标准的SQL语句, 即: 所有的关系型数据库基本都支持, 未来大家主要用哪种数据库, 再单独学习下该数据库的 独有语法即可.

  • 分类

    • DDL语句, DataBase Definition Language, 数据定义语言

      主要是操作: 数据库, 数据表, 列的, 进行: CURD.

      关键字: create, drop, alter, show

    • DML语句, DataBase Manipulation Language, 数据操作语言.

      主要是操作: 表数据的, 进行: 增删改操作, 统称为: 更新语句

      关键字: insert, delete, update

    • DQL语句, DataBase Query Language, 数据查询语言.

      主要是操作: 表数据的, 进行: 查询操作.

      关键字: select, from, where...

    • DCL语句, DataBase Control Language, 数据控制语言.

      主要是: 设置权限, 访问级别(隔离级别), 创建用户等的...

      1713154037433

6.SQL语句-通用语法

-- 1. SQL语句可以写单行, 也可以写多行, 最后以 分号; 结尾.-- 2. 为了阅读方便, 我们可以用 \t 或者 空格来隔开SQL语句. -- 3. SQL语句不区分大小写, 为了阅读方便, 建议: 关键字大写, 其它小写.-- 4. SQL的注释写法如下-- 单行注释# 单行注释/*多行注释*/-- 5. 我们目前在PyCharm或者DataGrip中写SQL语句, 是选中执行的, 即: 你不要漏选, 防止出错.

7.SQL中常用的数据类型

-- SQL中也是有数据类型的概念的, 根据每列值的不同, 数据类型也不同, 常用的如下.
整数: 	int
小数; 	decimal, float, double
字符串:   varchar(长度), char(长度)
日期:		date, datetime

8.DDL语句-操作数据库

-- ------------------------------- 案例1: DDL语句 操作数据库 -------------------------------
-- 1. 查看所有的数据库.
show databases;         # ctrl + 回车, 执行该行代.-- 2. 删除数据.
drop database day01;            # 删除数据库, 如果数据库存在就删除, 不存在就: 报错.
drop database if exists day01;  # 删除数据库, 如果数据库存在就删除, 不存在就: 啥也不做.# 3. 创建数据库.
create database day01 character set 'utf8';                 # 创建day01数据库, 采用: utf8 码表.  库不存在就创建, 存在就: 报错.
create database if not exists day01 character set 'utf8';   # 创建day01数据库, 采用: utf8 码表.  库不存在就创建, 存在就: 啥也不做.# 上述格式, 语法糖1: character set => 可以写成 charset
create database day02 charset 'utf8';# 上述格式, 语法糖2: 可以不指定码表, 会采用默认码表.  windows系统: MySQL默认码表是 utf8,   Linux系统: MySQL默认码表是 latin1
create database day03;# 4. 查看数据库.
show create database day01;     # utf8
show create database day03;     # utf8# 5. 修改数据库的码表.
alter database day03 charset ='gbk';# 6. 切换数据库, 之后: 建表, 查表, 查数据等操作, 都是基于数据库完成的.
use day01;

9.DDL语句-操作数据表

-- ------------------------------- 案例2: DDL语句 操作数据表 -------------------------------
-- 细节: 记得先切库.
use day01;-- 1. 查看当前库中, 所有的数据表.
show tables;-- 2. 查看表结构.
show create table student;      # 查看建表的详细过程.describe student;               # 语法糖,  desc student;-- 3. 创建数据表.
/*
格式:create table [if not exists] 数据表名(列名 数据类型(长度) [约束],列名 数据类型(长度) [约束],列名 数据类型(长度) [约束],......);
格式解释:1. varchar类型, 表示变长字符串, 需要指定长度.  例如: varchar(20), 表示该列, (每行)至多存储20个字符.2. 上述的 [] 表示可选的意思, 即: if not exists 判断表不存在 和 约束, 都是可选项.3. 约束简单介绍:就是用来限定该列值的, 能加啥, 不能加啥, 例如: 不能重复, 不能为空...后续详解, 目前先了解. 先写几个基础的.primary key     主键约束, 一般修饰id列, 且: 一张表中, 主键约束最多只能有1个.not null        非空约束, 即: 该列值不能为空.*/
# 需求: 创建学生表, 字段有: 学号(主键), 姓名(非空), 性别, 年龄.
create table if not exists student(sid int primary key,        # 学生id, primary key: 主键约束, 特点为: 唯一, 非空.name varchar(20) not null,  # 学生姓名, 非空约束(即: 不能为空)gender varchar(2),          # 学生性别age int                     # 学生年龄, 整数.
);# 4. 删除数据表.
drop table if exists student;# 5. 修改表(名字)
# 格式: rename table 旧表名 to 新表名;
rename table student to stu;

10.DDL语句-操作列

-- ------------------------------- 案例3: DDL语句 操作 字段 -------------------------------
-- 1. 查看表结构.
desc stu;-- 2. 给表新增一列, desc varchar(200), 非空约束.
-- 格式: alter table 表名 add 新列名 数据类型 约束;
alter table stu add `desc` varchar(200) not null;       # 如果列名和关键字重名, 记得用 反引号包裹.-- 3. 修改表的字段(列), 只修改: 数据类型, 约束.  将desc列改为: int类型.
-- 格式: alter table 表名 modify 旧列名 数据类型 约束;
alter table stu modify `desc` int;      # 因为没有加非空约束, 所以本次会认为, 不要非空约束了, 即: 会删除它.# 4. 修改表的字段(列), 修改: 列名, 数据类型, 约束.  把 desc int 无约束 => address varchar(10) 非空约束
-- 格式: alter table 表名 change 旧列名 新列名 数据类型 约束;
alter table stu change `desc` address varchar(10) not null;# 5. 删除表的字段.
# 格式: alter table 表名 drop 旧列名;
alter table stu drop address;

11.DML语句-添加数据

/*
DML语句详解:概述:数据操作语言, 主要是: 操作表数据的, 对表数据进行更新操作, 例如: 增, 删, 改.细节:1. 在进行删除, 或者修改数据之前, 一定一定一定要先备份你的数据, 或者记得加where条件, 一个老屌丝的含泪忠告.2. 在添加数据的时候, 值的个数及类型, 必须和前边列的个数及对应保持一致.3. 添加数据时, 如果没有写列名, 则: 默认是全列名, 即:insert into stu values(这里要按照顺序, 给每一列, 填充值);
*/-- ------------------------------- 案例1: DML语句操作表数据 - 增 -------------------------------# 1. 切库.
use day01;# 2. 查表.
show tables;# 3. 查看表数据, 这个数据DQL语句, 我们先用一下, 稍后详解.
select * from stu;
# 查看表结构.
desc stu;# 4. 添加表数据.
# 4.1 场景1: 添加单条数据, 格式为: insert into 表名(列名1, 列名2, 列名3...) values(值1, 值2, 值3...);
insert into stu(sid, name, gender, age) values (1, '乔峰', null, 38);
insert into stu(sid, name, gender, age) values (2, null, null, 38);     # 报错, name列有非空约束, 不能为null# 4.2 场景2: 添加多条数据, 格式为: insert into 表名(列名1, 列名2, 列名3...) values(值1, 值2, 值3...), (...), (...);
insert into stu(sid, name, gender, age)
values(2, '虚竹', null, 26),(3, '段誉', '男', 21),(4, '阿朱', '女', 35),(5, '梦姑', '女', 23),(6, '钟灵儿', '女', 19);# 4.3 上述格式的变形版.  不一定非得是全列名, 只要值的个数, 类型 和 列名的个数, 类型保持一致即可.
insert into stu(sid, name) values (7, '木婉清');# 4.4 上述格式的语法糖, 掌握, 实际开发一般是用这个.
insert into stu values (8, '鸠摩智', '男', 49);      # 如果不写列名, 则默认是: 全列名, 需要给每一个列都要传入值.

12.DML语句-修改数据

-- ------------------------------- 案例2: DML语句操作表数据 - 改 -------------------------------
# 格式: update 表名 set 字段名=值, 字段名=值, 字段名=值... where 条件
# 1. 查表.
select * from stu;# 2. 修改 sid为3的数据, 姓名为: 段氏小王子, 渣男
update stu set name='段氏小王子', gender='渣男' where sid = 3;# 3. 危险操作, 修改数据时, 没有写 where条件, 则会一次性修改表中所有的数据.
update stu set name='段氏小王子', gender='渣男';

13.DML语句-删除数据


-- ------------------------------- 案例3: DML语句操作表数据 - 删 -------------------------------
/*
删除表数据:方式1: delete from 表名 where 条件;方式2: truncate table 表名;面试题: delete from 和 truncate table之间的区别是什么?区别1: 是否会重置主键iddelete from:    仅仅是清空表数据, 不会重置主键idtruncate table: 会重置主键id, 相当于把表摧毁了, 然后创建一张和该表一模一样的表.区别2: 本质不同.truncate table 属于 DDL语句, 一般不结合 事务 一起使用.delete from 属于 DM L语句, 一般可以结合 事务 一起使用.
*/# 1. 查看表数据.
select * from stu;# 2. 正常删除数据, 删除id > 3的数据.
delete from stu where sid > 3;# 3. 需求: 删除表中所有的数据.
# 方式1: delete from
delete from stu;# 方式2: truncate table
truncate table stu;# 4. 深入研究下 上述的两种删除方式, 看: 是否会重置主键id.
# 主键约束 如果结合了 自增一起使用, 则一会传入主键的时候, 不需要在手动传值了, 传入null即可, 因为主键会根据最大值+1, 即: 自增存储.
# 4.1 建表
create table hero(      # 英雄表hid int primary key auto_increment,     # 英雄id, 主键(唯一, 非空), auto_increment表示自动增长.    主键约束不参与具体业务, 仅仅是标记数据的唯一性的.name varchar(10),   # 英雄名role varchar(10)    # 角色定位
);# 4.2 添加表数据.
insert into hero values(null, '钟无艳', '战士'), (null, '貂蝉', '法师'), (null, '百里玄策', '刺客'), (null, '孙尚香', '射手'), (null, '明世隐', '辅助');# 4.3 删除表数据.
delete from hero;       # 不会重置主键id,   DML语句.
truncate table hero;    # 会重置主键id, 相当于把表摧毁了, 然后创建了一张和该表一模一样的表.   DDL语句
# 上述格式语法糖.
truncate hero;      # table可以省略不写.# 4.4 查询表数据.
select * from hero;

14.备份表数据

-- ------------------------------- 案例4: 如何快速备份表数据 -------------------------------
# 1. 查看所有的数据表.
show tables;
# 2. 准备数据源表, 即: 英雄表.
select * from hero;
desc hero;# 细节: 备份表只备份字段名, 数据类型 和 表数据, 不会备份(主键)约束.
# 3. 演示如何备份表, 场景1: 备份表不存在.
# 格式: create table 备份表名 select * from 要备份的数据表名 where...;
create table hero_tmp select * from hero;# 4. 演示如何备份表, 场景2: 备份表存在.
# 格式: insert into 备份表名 select * from 要备份的数据表名 where...;
insert into hero_tmp select * from hero;# 5. 查看备份表的数据.
select * from hero_tmp;# 6. 查看备份表的数据结构.
desc hero_tmp;# 7. 清空备份表的数据.
truncate hero_tmp;

相关文章:

python_Day20_mysql(1)

今日内容大纲介绍数据库的相关概述 环境搭建 SQL语句分类DDL DML DCL DQLDDL语句之操作数据库 DDL语句之操作数据表 DML语句之操作表数据(增删改) DQL语句之操作表数据(查)1.数据库的相关概述问1: 你知道的存储数据的方式有哪些? -- 方式1: 变量, 列表, 字典... 只能对数据临时…...

确定调用 TargetData是否已发送-CallReplicatedTargetDataDelegatesIfSet()

example:const bool bCalledDelegate = AbilitySystemComponent.Get()->CallReplicatedTargetDataDelegatesIfSet(SpecHandle, ActivationPredictionKey);if (!bCalledDelegate){ SetWaitingOnRemotePlayerData();}...

二十三、流水线的起点为何无需指挥?深入理解IF与ID这两个“公共流水段”

目录一、时钟:流水线的同步心跳二、公共流水段:为何IF和ID无需“特殊关照”1. 取指阶段(IF):无差别的读取2. 译码阶段(ID):标准化的解析三、控制信号的诞生:时机决定一切四、控制信号为谁而生?总结:标准化与个性化的分工在我们深入探索CPU流水线的精妙世界时,一个看…...

来解剖 来平息你的颤抖 叫嚷着还不足够 还需要更多疼痛 才值得温柔

test4 不要在意这个诡异的标题。排序sort 快排的过程相当于以 \(a_r\) 为界限,更小的放到左边,更大的放在右边,我们还关心新的 \(a_r\) 是谁,左边是按顺序的填入,右边新的顺序只跟原本的顺序有关系素排列双射下去啦,所以就是唯一特定位置的值成为新的。 那么考虑 dp 一下…...

从客户端拿到缓存数据-ConsumeClientReplicatedTargetData()

1...

减少KVCache

减少KVCache:从MHA,MQA,GQA到MLA 参考链接 科学空间,苏神的blog 大模型推理加速:看图学KVCache 前言 也是终于到了稍微有一点时间的时候,也需要对看过的东西进行简单的总结了。这里就总结一下论文中最喜欢的attention,以及与KVCache之间的关系。 基础:什么是attention?…...

考研复习-操作系统-第三章-内存管理 - 详解

考研复习-操作系统-第三章-内存管理 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impo…...

python_Day18_linux(1)

今日内容大纲介绍计算机简介 Linux系统介绍 Linux环境搭建 Linux基础命令1.计算机简介概述 全称叫电子计算机, 英文名叫Computer, 俗称叫: 电脑, 简称叫: PC, 就是有硬件和软件组成的电子设备.组成计算机硬件CPU, 中央处理器, 由 运算器 + 控制器 组成 存储器内存: 内存条, DDR…...

机器人动力学-上交桂凯-睿慕课

1.1 绪论 1.2 数学基础已知系统的初始状态+速度->未来的变化状态均可知质量弹簧阻尼二阶系统也可以写成微分方程的形式,状态变量为位置,速度2 动力学系统建模2.1 理论力学回顾...

2 linux系统基础命令+文件操作命令

2.1 常见命令 2.1.1 查看当前登录用户信息的基础命令 last # 显示上次登录的用户列表信息 who # 显示当前所有登录到系统的用户信息 whoami # 查看当前登录的用户 who am i # 仅显示当前终端登录系统的用户名+终端+登录时间+来源主机,‘i’可以是任意字符,等同于who -m […...

支持国产cpu架构的nacos-2.4.3

nacos无法启动主要问题是依赖于RocksDBjni没有对应架构的动态链接库 RocksDB JNI 的多平台 native 动态库集合系统 (OS) 架构 (Arch) libc 类型 对应文件名Linux x86 (32位) glibc librocksdbjni-linux32.somusl librocksdbjni-linux32-musl.sox86_64 (64位) glibc librocksdbj…...

nc工具使用 - 谷粒

https://www.cnblogs.com/zhipeng-wang/p/14070431.html 测试端口 nc -nvz 127.0.0.1 8000 监听 nc -l 80 连接client nc 127.0.0.1 8000想要连接到某处: nc [-options] hostname port[s] [ports] …绑定端口等待连接: nc -l port [-options] [hostname] [port]-g<网关>…...

完整教程:【C++】22. 封装哈希表实现unordered_set和unordered_map

完整教程:【C++】22. 封装哈希表实现unordered_set和unordered_mappre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New…...

Azure App Service连接Azure SQL MI

前言最近,在研究云迁移,做了个测试如何使用App Service连接SQL MI。正文1.测试项目是Net Framework v4.8,核心代码如下图:1 StringBuilder message = new StringBuilder();2 try3 {4 string sqlstr = "Server=smi-test.c5c92fb776c2.database.windows.net;Databas…...

将目标数据复制到服务器-ServerSetReplicatedTargetData()

ServerSetReplicatedTargetData 通常是一个自定义的服务器端 RPC(远程过程调用)函数,用于将目标数据(如瞄准目标、交互目标等)从客户端发送到服务器,并让服务器更新相应的复制变量,以便在多台客户端之间同步该数据。...

不是说 PHP 不行了吗?为什么 Swoole 还在更新?

PHP不行了,或许只是大家的一个简单的调侃,但这个调侃也代表了PHP语言从巅峰到下滑一个变迁。然而,现如今还是有很多的程序员依靠它在吃饭,语言只是一门工具,赚钱才是王道大家好,我是码农先森。 在微信的水群里,经常有兄弟说:"PHP不行了,PHP是上古时代的语言,PHP…...

qoj1831 Bruteforce

SOLUTION FROM WUMIN4 题意 若长度为 \(n\) 的数组 \(a\) 排序后为 \(b\),定义 \(a\) 的权值为 \(\sum_{i=1}^n \lfloor\frac{b_i\cdot i^k}{w}\rfloor \bmod 998244353\)。 有 \(q\) 次操作,每次操作修改一个 \(a_i\),随后输出 \(a\) 的权值。 \(n,a_i\le 10^5,1\le k,w\le…...

C++数据结构和算法:链表

Q. 有序表和无序表(Hash表)区别?Key有无序的区别。 Q. map 和 set 区别:有无伴随数据的区别。 有序表:红黑树、AVL树、size-banlance-tree、跳表都是有序表哈希表:基础类型,值传递;非基础类,必须提供比较器,引用传递。【经典题目】反转链表。要求实现单链表、双链表结…...

CAI:开源网络安全AI框架,打造自主安全测试智能体

CAI是一个开源的网络安全AI框架,能够自主执行从侦察到权限提升的完整网络安全攻击链。它集成了多种专业AI智能体,支持红蓝对抗、漏洞评估、数字取证等安全任务,并提供了丰富的基准测试工具和评估体系。项目概述 CAI(Cybersecurity AI)是一个开源的网络安全AI框架,旨在构建…...

GAS中,负责封装技能所影响的目标数据(如 Actor、位置、碰撞结果等)-FGameplayAbilityTargetData

example://FGameplayAbilityTargetData_SingleTargetHit 继承自FGameplayAbilityTargetData FGameplayAbilityTargetData_SingleTargetHit 是用于表示单一目标命中信息的目标数据结构,常用于游戏技能系统(Gameplay Ability System, GAS)中传递目标信息。 它主要包含以下核心…...

详细介绍:Maven入门_简介、安装与配置

详细介绍:Maven入门_简介、安装与配置pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importan…...

实用指南:立体校正原理

实用指南:立体校正原理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: …...

train-labels.idx1-ubyte里是什么

train-labels.idx1-ubyte 是 MNIST 数据集中的一个文件。它不是一个普通的文本文件,而是一个经过特定格式编码的二进制文件。 简单来说,这个文件里只包含一个东西:MNIST 训练集图像的标签。 文件内容 这个文件的内容是一个字节序列,其中每个字节都代表一个手写数字的标签。…...

滑动窗口最大值-leetcode

题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] 解释…...

创建预测窗口-ScopedPredictionWindow();

ScopedPredictionWindow 是一个与网络预测(Network Prediction)相关的工具类,主要用于在多人游戏中管理预测窗口的生命周期,确保客户端预测和服务器验证的一致性。 网络预测上下文管理:在客户端预测期间,ScopedPredictionWindow 会创建一个临时的 "预测窗口",…...

95. 不同的二叉搜索树 II

题目链接:https://leetcode.cn/problems/unique-binary-search-trees-ii/description/?source=vscode解析: 其实是一道数据结构二叉搜索树入门题,放在这里提醒dfs不要陷入直接搜的困境,还可以分治/*** Definition for a binary tree node.* struct TreeNode {* int va…...

lc1028-从先序遍历还原二叉树

难度:困难题目描述字符串转二叉树 根节点深度为 0,其子节点深度为 1,依次类推 题目保证若只有一个子节点,必为左子树示例 输入:"1-2--3--4-5--6--7" 输出:[1,2,5,3,4,6,7] 解释:1/ \2 5/ \ / \ 3 4 6 7输入:"1-2--3---4-5--6---7" 输出…...

P12558 [UOI 2024] Heroes and Monsters 题解

Description 有 \(n\) 个英雄和 \(n\) 个怪物。英雄和怪物分别编号为 \(1\) 到 \(n\) 的整数。第 \(i\) 个英雄的战斗力为 \(a_i\),第 \(i\) 个怪物的战斗力为 \(b_i\)。保证所有 \(a_1, a_2, \ldots, a_n, b_1, b_2, \ldots, b_n\) 的值都是两两不同的。 将进行总共 \(n\) 场…...

AbilitySystemComponent和AbilityTask

AbilityTask 是 Gameplay Ability System(GAS)框架的核心组件之一,用于处理能力(Ability)执行过程中的异步操作。它允许开发者在能力激活后创建可中断、可暂停的任务,处理如动画播放、特效生成、输入响应等耗时或需要等待的操作。 example:比如下方的两个不同时态的接口…...

AT_arc171_c [ARC171C] Swap on Tree

有一个很强的性质是,当两个结束序列相等,当且仅当:割掉的边集相等。 对于每个点,割掉的边的相对顺序一样。设 \(f_{x, i, 0/1}\) 为 \(x\) 相连的边割掉了 \(i\) 条,父亲那条边有没有被割掉(要计算子树里的方案数)。 然后输出显然是 \(\sum_i f_{1, i, 0}\)。...

202509_QQ_冷门的Base家族

Base家族,Base45,Base58,Base62,Base64,Base85,Base92tags:Base家族,Base45,Base58,Base62,Base64,Base85,Base92 0x00. 题目 flag.txt 6L;y>cYh?)m->!yBH;/\>Yx9lA8liLp:cjYpb.2E;J8j_B7BjPig.[sV}ojTN!yB01.#bc5@0J}?eix70R+>T,g??Fh={+JJSFWeT]_9lA7&X3…...

SpawnActorDeferred()和SpawnActorOfClass()

SpawnActorDeferred和SpawnActorOfClass都是用于生成 Actor 的函数,但它们的使用场景和行为有显著区别:生成时机与初始化控制:SpawnActorOfClass:是一个 "一站式" 函数,调用后会立即完成 Actor 的生成、初始化并激活。所有构造函数、BeginPlay等生命周期函数会被…...

学习日报|线程池专题学习总结 - 详解

学习日报|线程池专题学习总结 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…...

如何设计业务架构 - 智慧园区

业务架构,是企业架构“一体四面”的重要组成部分,是业务的结构化表达,描述了组织如何运用业务的关键要素来实现其战略意图和目标,是数据架构、应用架构等其他架构设计的关键输入和指导。因此,要想设计好“企业架构”,首先必须设计好“业务架构”。业务架构的设计原则前面…...

snmp协议

Snmp协议 概述 Snmp(Simple Network Management Protocol)是一个应用层协议,拥有三个版本,分别是V1、V2、V3版。 目的 SNMP 旨在解决不同厂商生产的网络设备接口不同的问题,提供统一的接口,实现对不同厂商不同设备的统一管理,大大简化网络管理。 组件网络管理系统(NMS) …...

刷题复习(四)二分搜索

代码框架 int binarySearch(int[] nums, int target) {int left = 0, right = ...;while(...) {int mid = left + (right - left) / 2;if (nums[mid] == target) {...} else if (nums[mid] < target) {left = ...} else if (nums[mid] > target) {right = ...}}return ..…...

aardio | 通过点击checkbox复选框本身判断是否勾选

import win.ui;/* 创建窗体 */ var winformsetting = win.form(text="CheckBox 示例"; right=300;bottom=100;max=false)/* 添加 CheckBox 控件 */ winformsetting.add(cbox_startauto={text="开机自启"; left=10; top=10; width=100; height=30;cls="…...

项目介绍

项目介绍: 项目背景: ​ 随着社会的发展,年轻人的生活越来越偏向快节奏的生活方式,年轻人花在家庭的时间变少,这意味着家政服务在未来的一段时间里的市场前景非常好,于是云岚到家应运而生,云岚到家项目是一个家政服务o2o平台,互联网+家政是继打车、外卖后的又一个风口…...

新媒体运营用AI排版工具|10分钟搞定公众号图文的全流程指南

在当下的新媒体时代,AI写作+配图+排版+一键分发,全流程操作,已经成为提升运营效率的标配。公众号、知乎、小红书等平台对内容质量和视觉效果的要求越来越高,但传统方式下,排版往往要花上数小时,既耗时又容易出错。有些AI编辑器的出现(如有一云AI编辑器),彻底改写了这一…...

练习第一天学习的内容

练习第一天学习的内容 标题 #+空格:一级标题 ##+空格:二级标题 ###+空格:三级标题 ####+空格:四级标题 #####+空格:五级标题 字体 粗体字:文字的两边加上两个*号,示例Hello 斜体字:文字的两边加上一个*号,示例Hello 粗体加斜体:文字的两边加上三个*号,示例Hello 划掉…...

常见小错误 FREQUENTLY MADE MISTAKES IN OI

乘法(连乘每次都要取模),减法忘记取模a = ((a - b) % M + M) % M; // 减法 a = 1ll * a * b % M; // 乘法 c = 1ll * a * b % M * c % M * ... * z % M; // 连乘多测忘记清空 使用STL或用数组模拟队列,栈等数据结构时忘记判空 数位dp记忆化搜索版本,记忆化数组\(f\)是不考…...

ctf工具整理

CTF编码、杂项及算法CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码Ook!解码Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]线上CyberChefCyberChefSHA哈希加密在线 SHA 加密工具,支持 SHA 1、SHA 3、SHA 256 及 SHA 512 加密算法 - 在线工…...

详细介绍:Linux相关概念和易错知识点(44)(IP地址、子网和公网、NAPT、代理)

详细介绍:Linux相关概念和易错知识点(44)(IP地址、子网和公网、NAPT、代理)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...

详细解析为什么将 ThreadLocal 声明为 static final ?

一、基础概念...

力扣39题 组合总和

类型:回溯算法 无重复元素 重点:同一个数字可以无限制重复选取,但是有总和的限制,所以间接的也就是有个数的限制。 1.递归函数参数 result存放结果集,数组path存放符合条件的结果。集合candidates和目标值target,需要使用startindex来控制循环的起始位置,对于组合问题,…...

250915 jave se简单过完一遍

基本过完了java的基础语法 面相对象、集合,还剩下一些尾巴,多线程、泛型,明天看完之后开始mysql。因为时间紧张,准备边学前面的,边被学过的内容的八股。再推进一段时间开始做项目。...

AT_arc183_b [ARC183B] Near Assignment

一道很好的分类讨论题。 首先你想这个操作对于数的种类只会减少不会增多,所以如果 \(b\) 有的 \(a\) 一定有。 然后想,如果 \(b\) 有相同的段,显然段内只需要一个复位即可,剩下的都可以赋值得到。 你发现现在限制你的操作在什么,在与你不能将这些数很机动的排列,我们得出…...

0128_模板方法(Template Method)

模板方法(Template Method) 意图 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法结构的情况下,重新定义算法中的某些特定步骤。 UML 图优点代码复用:将公共行为移到父类中,避免代码重复 封装不变部分:固定算法结构,保护核心算法不被…...

kubectl 常用命令的分类汇总(一)

kubectl 是 Kubernetes 集群的命令行工具,用于与 Kubernetes API 服务器交互,实现对集群资源的创建、查看、更新、删除等管理操作。其核心用途包括:部署应用程序、查看和管理集群资源、检查集群状态、调试问题、配置集群参数等。以下是 kubectl 常用命令的分类汇总: 一、集…...

完整教程:C3P0连接池适配HGDB

完整教程:C3P0连接池适配HGDBpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-…...