MySQL
未读MySQL 索引特性 1. 索引的概念 索引就是帮 MySQL 快速查数据 的一种 数据结构,就像书的目录一样,不需要翻整本书,只查目录定位页码直接跳到目标,没有索引就得 全表扫,一条一条比对特征值,慢得很(有索引 → 快,无索引 → 慢)。任何便捷都是有代价的,索引也一样:占用空间 + 增删改变慢。 1. 索引的价值 为了测试索引效果,我们需要先准备一张包含大量数据的表(海量数据),这里创建一个名为 index_test 的数据库,并在其中创建 emp 员工表,插入 800 万条记录。这里的先看效果,SQL 语句后面会讲到。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364# 1. 创建数据库drop database if exists `index_test`;create database if not exists `index_test` default character set ut ...
计算机的颜色表示 1. 计算机为什么用 RGB 表示颜色? 1. 人眼如何感知颜色 计算机中颜色的表示主要基于 人眼感知颜色的方式 以及 硬件显示原理。人眼的视网膜上有三类锥体细胞,分别对三种波长范围最敏感: 对 红色(Red) 敏感 对 绿色(Green) 敏感 对 蓝色(Blue) 敏感 大脑会根据这三种刺激的强弱组合,感知出不同的颜色。这叫做 三色视觉理论。 2. 显示器如何发光 常见的显示器(LCD、LED、OLED)中,每个像素其实都由 三个子像素 组成: 红色子像素(R) 绿色子像素(G) 蓝色子像素(B) 通过控制这三个子像素的亮度,就能混合出各种颜色。 注意:RGB 是 红(Red)+ 绿(Green)+ 蓝(Blue),不是红、黄、蓝,红黄蓝(RYB) 是美术颜料体系,用于绘画。RGB 是发光体系,用于屏幕。 2. RGB 三个参数分别代表什么? 在 RGB 模型中,一个颜色由三个数值表示: 1RGB(R, G, B) R(Red):红色强度 G(Green):绿色强度 B(Blue):蓝色强度 1. 常见取值范围 最常见的是 8 位表示法(24 位真彩色 ...
表的内连和外连 多表查询时,数据怎么凑在一起看,就是连接。 内连接(INNER JOIN) → 只保留匹配上的 外连接(OUTER JOIN) → 保留一边,不管另一边有没有匹配 1. 内连接(INNER JOIN) 只显示 两个表都有匹配的行(交集),没匹配的行丢掉。示例场景:查“下了单的用户”,没下单的不要。 基本语法: 1234SELECT a.列, b.列FROM 表1 aINNER JOIN 表2 b ON a.关联列 = b.关联列; 1234567891011121314151617181920212223242526272829303132# 只有有部门的员工显示,OPERATIONS 部门不出现mysql> select e.ename, d.dname from emp e inner join dept d on e.deptno=d.deptno;+--------+------------+| ename | dname |+--------+------------+| SMITH | RESEARCH || ALLEN ...
灵光荟萃
未读解决代码文件中的乱码问题 你有没有遇到过:代码在 Visual Studio 中完美正常,在 VS Code 一打开却全是乱码?明明都是微软出品,却总在编码上“闹别扭”。别急,这个问题本质上是字符编码不一致,下面来详细说说。 1. 乱码的本质:编码不匹配 Visual Studio 默认保存为 GBK(代码页 936)或系统本地编码。 VS Code 默认以 UTF-8 无 BOM 方式解读文件。 当文件中含有中文或非 ASCII 字符时,VS Code 用 UTF-8 去解析 GBK 编码的文件,自然就乱码了。 2. 解决方案一:手动保存为 UTF-8 带 BOM 在 Visual Studio 中打开文件选择另存为。 点击保存按钮旁的下拉箭头 → “带编码保存”(Save with Encoding)。 选择 Unicode (UTF-8 带签名) - 代码页 65001。 保存。 处理完后,VS Code 打开即正常显示。 3. 解决方案二:设置默认编码(推荐) 什么?你说你用自动保存,每一次都要另存为太麻烦了。没关系,可以: 在 Visual Studio 顶部搜索框 ...
C++ IO 指南 1. 文件流 ifstream / ofstream / fstream(核心) 1. 一句话记住三个类 类名 作用 记忆口诀 ifstream 读文件(input) i = input ofstream 写文件(output) o = output fstream 读 + 写 全能型 工程建议:读写分离优先,用 ifstream + ofstream,可读性更好。 2. 读文件(最常用) 1. 标准写法 12345678910111213141516171819202122232425#include <fstream>#include <iostream>#include <string>int main(){ // 打开输入文件(默认文本模式) std::ifstream ifs("data.txt"); // 工程里第一件事:检查打开是否成功 if (!ifs) { std::cerr << &quo ...
复合查询下 1. 子查询 子查询就是 在一个查询里面套另一个查询,让内层查询先跑,结果再给外层查询用,可以理解成:先算出一个表/值,然后外层再用它做筛选、计算或关联。本质就是一个 SELECT 嵌在另一个 SELECT 里,里面的叫子查询,外面的叫主查询。 1. 单行子查询 子查询的结果只有 1 行 1 列,常用在 =、>、< 等比较操作: 12345678910111213mysql> select ename, sal from emp where sal > (select avg(sal) from emp); # 单行单列+-------+---------+| ename | sal |+-------+---------+| JONES | 2975.00 || BLAKE | 2850.00 || CLARK | 2450.00 || SCOTT | 3000.00 || KING | 5000.00 || FORD | 3000.00 |+-------+---------+ 2. 多行子查询 子查询返回 多行 1 列,用 IN / ...
C++异常处理 1. throw / try / catch 基本语法 1. 头文件 12345// 写异常最少要这两个:#include <iostream>#include <exception> // 用于标准异常类#include <stdexcept> // 如果用具体的错误类型(比如运行时错误),加这个标准异常类(runtime_error / invalid_argument / out_of_range) 2. 三个关键字格式 12345678910111213try{ // 可能抛异常的代码 throw std::runtime_error("出错了");}catch (const std::exception& e){ // 处理}catch (...){ // 捕获所有(尽量别用)} 1. throw(扔错误) 格式:throw 错误内容;,例子: 123throw "出错了"; ...
复合查询上 1. 基本查询回顾 首先我们先创建下面的表数据: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051mysql> create database Compound_query;mysql> use Compound_query;mysql> CREATE TABLE emp( -> empno CHAR(6), -> ename VARCHAR(20), -> job VARCHAR(20), -> mgr INT, -> hiredate DATE, -> sal DECIMAL(7,2), -> comm DECIMAL(7,2), -> deptno INT -> ); mysql> insert into emp values -> ('00 ...
内置函数下 1. 数学函数 函数名称 功能描述 参数说明 示例 ABS(number) 计算绝对值 number:任意数字。 SELECT ABS(-10); → 10 BIN(number) 转换为二进制 number:需要转换的数字。 SELECT BIN(10); → 1010 HEX(number) 转换为十六进制 number:需要转换的数字。 SELECT HEX(255); → FF CONV(number,from_base,to_base) 进制转换 number:要转换的数字, from_base:源进制, to_base:目标进制。 SELECT CONV('A', 16, 10); → 10 CEILING(number) 向上取整 number:需要取整的数字。 SELECT CEILING(4.3); → 5 FLOOR(number) 向下取整 number:需要取整的数字。 SELECT FLOOR(4.7); → 4 FORMAT(number,decimals) 格式化数字 number:需要格式化的数字, de ...
Ubuntu 22.04 中安装 thefuck 与 tldr 工具 作为一名经常使用终端的开发者,拥有高效的命令行工具能极大提升工作效率。本文将详细介绍如何在 Ubuntu 22.04 系统上安装和配置两款非常实用的终端工具:thefuck(命令纠错工具)和 tldr(简洁帮助文档工具),并分享安装过程中遇到的问题及解决方案。 1. 工具介绍 1. thefuck:智能命令纠错工具 thefuck 是一款神奇的命令行纠错工具,当你输入错误的命令时,只需输入 fuck,它就能智能分析并纠正你的命令错误。支持纠正拼写错误、权限问题、命令不存在等多种常见错误。 2. tldr:简洁明了的帮助文档 tldr(Too Long; Didn’t Read)是传统 man 命令的替代品,提供简洁明了的命令使用示例,特别适合快速查询命令用法。支持多语言,本文将配置为中文。 2. thefuck 安装与配置 第一步:安装依赖包 首先确保系统已安装必要的 Python 依赖: 12sudo apt updatesudo apt install python3-dev python3-pip python ...











