MySQL
未读表的增删改查下 1. update(修改) 1. 语法 UPDATE 用于修改已有数据,必须配合 WHERE 精确更新;并发场景下要用原子更新和事务,避免先查再改。 1234UPDATE 表名SET 列1 = 值1, 列2 = 值2WHERE 条件; 注意:UPDATE 会对 WHERE 条件匹配到的「所有行」,统一执行同一套修改,匹配多少行,就改多少行。没有 WHERE = 全表修改(极其危险)。 2. 示例 1. 按主键更新(常用、安全) 12345# 按主键更新(常用、安全):通过主键id精准定位,只改1行UPDATE usersSET name = '张三', # 把name改成“张三” age = 20 # 把age改成20WHERE id = 1; # 只改id=1的所有行 2. 更新单个字段 1234# 更新单个字段:只修改一个字段的值UPDATE usersSET age = 18 # 仅把age改成18WHERE id = 100; # 只改id=100的所有行 3. 条件更新多行 1234# ...
浏览器小技巧 1. Chrome / Edge 开启高速多线程下载 地址栏输入: Chrome: chrome://flags/#enable-parallel-downloading Edge: edge://flags/#enable-parallel-downloading 效果:启用此选项后,浏览器将支持多线程下载(如果服务器支持),从而提高下载速度。根据服务器的支持情况,提速幅度通常为 1.5–3 倍。但在极少数情况下,可能不会有任何提升,甚至可能略微降低下载速度。 推荐:开启此功能对下载速度有显著的提升,尤其在下载大文件时。适用于支持 Range 请求的服务器。 2. Smooth Scrolling 滚动更顺滑 在上面打开的页面中搜索:smooth-scrolling → Enabled 效果:开启平滑滚动后,网页滚动更加流畅,尤其在浏览长网页时,滚动体验会显得更加自然。 推荐:非常适合提升浏览网页时的体验,尤其是对于需要频繁滚动的网页。几乎没有负面影响,推荐开启。 3. Zero-Copy Video Capture 同样的搜索:enable-zero-copy → ...
免费白嫖 ChatGPT Go 套餐 12 个月(一年) 1. 前提说明 官方说明: 什么是 ChatGPT Go? ChatGPT Go 推广活动(印度) ChatGPT Go 是 OpenAI 于 2025 年 11 月 4 日在印度地区推出的全新套餐服务,据说使用额度限制是免费版的 10 倍左右,上下文窗口是免费版的 2 倍左右,官方套餐说明: 对 GPT-5 的扩展访问权限 扩展的消息和上传限额 扩展且较快的图片生成 更全面的记忆和背景信息 有限的深度研究 项目、任务、自定义 GPT 1. 基本条件 PayPal 账户 印度 IP GPT 的新注册用户/免费用户/状态良好的 ChatGPT Go 的订阅者 2. 疑难解答 Q1: 获得套餐后是否需要持续使用印度节点? A: 实测验证,成功订阅 ChatGPT Go 套餐后,可使用 任意地区 节点访问。网页界面会持续显示 ChatGPT Go 套餐状态,所有功能正常使用,无任何限制影响。 Q2: 免费使用的关键注意事项? A: ChatGPT Go 套餐采用每月自动续订模式。若提前取消订阅,套餐权益将立即终止。套餐到期 ...
MySQL
未读表的增删改查上 1. Create(创建) 1. 单行插入 + 全列插入(最基础) 1. 语法格式 1INSERT INTO 表名 VALUES (值1, 值2, ..., 值N); 省略列名时,必须按表定义的列顺序且写齐所有列(可用 NULL 或 DEFAULT 占位)。 2. 示例 12345678CREATE TABLE t ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT);# 全列插入(省略列名),id 用 NULL 占位触发自增INSERT INTO t VALUES (NULL, '张三', 20); 注意: 简短但 易错(列顺序变动或新增列会导致问题)。 若主键自增,用 NULL 或 DEFAULT 占位。 若某列 NOT NULL 且无 DEFAULT,必须提供值。 2. 多行插入 + 指定列插入(高效写法) 1. 语法格式(指定列,支持多行) 1234INSERT INTO 表名 (列1, 列2, ...) VALUES (值11, 值12, ...), ...
表的约束 1. 什么是表的约束? 表的约束就是 限制字段中能存什么数据、不能存什么数据 的规则,目的:防止脏数据进入数据库。举例理解: 不允许“性别”列里填手机号。 不允许“年龄”列为空或写成负数。 不允许两个人用同一个账号。 …… 2. 空属性(NULL / NOT NULL) 1. 空属性介绍 属性 含义 特点 NULL 可以不填 默认状态 NOT NULL 必须有值 插入时没写就会报错 注意: 空值 NULL 不等于空字符串 '',也不等于 0。 NULL 参与运算的结果仍是 NULL,比如:NULL + 1 = NULL。 实际开发中:能不为空的字段尽量设置 NOT NULL。 2. 语法格式 1列名 数据类型 [NULL | NOT NULL] 3. 基本使用 1234567891011121314151617181920212223242526272829# 创建表t1,字段约束说明:name:非空(not null),必须提供值;age和room:允许为null(默认可省略null关键字)create table t1( name v ...
回调函数 3 分钟彻底理解回调函数 | B 站 3 分钟搞懂回调函数 每个开发者都具备的基础能力 | B 站 『教程』回调函数是个啥? | B 站 1. 认识回调函数? 1. 什么是回调函数? 回调函数(Callback Function)是 函数指针的一种应用形式,它的核心思想是:“把函数作为参数传给另一个函数,由那个函数在合适的时机再调用它。” 通常用于 “别人调用你自己的函数”,你把函数地址传给某个函数,等它内部逻辑执行到某个阶段时,再“反过来”调用你传入的函数。换句话说: 你写函数 A(定义了“要做什么”)。 别人写函数 B(控制“什么时候做”)。 你把 A 的函数地址交给 B,B 内部“回头”去调用 A。这就是“回调”。 如果你还是不理解,那么我先在这里埋一个伏笔:对于我来说,回调函数虽然从英文翻译过来回调不太好理解,但是用过函数传参就能直接上手回调函数,它的用法就是将函数作为参数进行传递,传到对方函数中,类比变量一样被调用,这!就是回调函数,还是很好理解吧,后面来几个示例就能深入理解和上手啦。 2. 使用场景 回调函数常用于以下几种情况: 事件驱动:如网络库 mu ...
C++ 语言层面上的多线程 C++11 多线程 | 行码棋 1. C++11 的线程模型 vs pthread 的对应关系 pthread API C++11 对应写法 说明 pthread_create() std::thread(func, args...) 创建并启动线程 pthread_self() std::this_thread::get_id() 获取当前线程 ID pthread_join() t.join() 等待线程结束 pthread_detach() t.detach() 分离线程 pthread_exit() return 即可 函数返回自动结束线程 pthread_cancel() 无直接等价(需自定义退出标志) C++ 不建议 强制终止线程 pthread_mutex_* std::mutex / std::lock_guard 自动 RAII 锁管理 pthread_cond_* std::condition_variable 条件变量 2. 线程的使用 1. 语法 12std::thread t(fu ...
epoll 和 CMake 的使用 1. epoll 简介 epoll 是 Linux 系统提供的一种 IO 多路复用机制,用来替代传统的 select 和 poll。它的核心优势是: 高效:性能不会随着监听的文件描述符数量增加而下降。 内存友好:只返回就绪的事件,而不是遍历所有文件描述符。 支持边缘触发:可以更灵活地控制事件触发方式。 2. epoll 的三大函数 epoll_create、epoll_ctl 和 epoll_wait 是 epoll 机制的三个核心函数,可以类比为: epoll_create():创建一个 epoll 实例(相当于创建一个事件监听器)。 epoll_ctl():管理要监听的文件描述符(添加、修改、删除监听列表中的 fd)。 epoll_wait():等待事件发生(阻塞等待,直到有事件发生或超时)。 这三兄弟的关系就像一个管理系统的三个操作: epoll_create():创建一个管理办公室。 epoll_ctl():向办公室登记/修改/删除要监控的员工(文件描述符)。 epoll_wait():在办公室等待,当有员工出事(事件发生)时进行 ...
数据类型 1. 常用数据类型一览 分类 数据类型 说明 数值类型 BIT(M) 位类型。M 指定位数,默认值 1,范围 1–64。 TINYINT [UNSIGNED] 很小的整数。带符号范围:-128 ~ 127;无符号范围:0 ~ 255。默认为有符号。 BOOL / BOOLEAN 布尔类型,是 TINYINT(1) 的同义词,0 表示 FALSE,非 0 表示 TRUE。 SMALLINT [UNSIGNED] 小整数。带符号范围:-32,768 ~ 32,767;无符号范围:0 ~ 65,535。 INT / INTEGER [UNSIGNED] 最常用的整数类型。带符号范围:-2,147,483,648 ~ 2,147,483,647;无符号范围:0 ~ 4,294,967,295。 BIGINT [UNSIGNED] 大整数。带符号范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807;无符号范围:0 ~ 18,446,744,073,709,551,615。 F ...
高级 IO Linux 高级 IO | CSDN 1. 正确认识 IO 1. IO 的本质 I/O(Input / Output)指的是 CPU 与外设之间的数据交互过程。在冯·诺依曼结构中,系统由:CPU(运算与控制)、内存(暂存数据与指令)、外设(磁盘、网卡、显示器、键盘等)组成。 I/O 就是:数据在「内存 ↔ 外设」之间的传输。所以: 输入(Input):外设 → 内存(例如:键盘输入、磁盘读文件、网卡收包)。 输出(Output):内存 → 外设(例如:屏幕显示、磁盘写文件、网卡发包)。 2. IO 的关键特征 慢:外设的速度远慢于 CPU 和内存。因此,IO 通常是性能瓶颈。 异步性:外设工作时 CPU 可去做别的事。操作系统通过 中断、DMA(直接内存访问) 来提高效率。 3. 文件 IO 与 网络 IO IO 类型 外设 操作系统抽象 本质 文件 IO 磁盘 文件描述符(fd) 把数据从磁盘读入内存或写出 网络 IO 网卡 套接字(socket) 把数据从网卡缓冲区读入内存或写出 对操作系统来说,一切皆文件,无论是磁盘文件、管道、套 ...











