- 博客(52)
- 收藏
- 关注
原创 MySQL数据库:C语言连接MySQL教程
本文为新手友好型C语言连接MySQL教程,涵盖环境搭建、SDK配置、编译调试及底层原理。从安装MySQL Connector/C、配置头文件与库文件路径,到编写最小可运行程序验证环境;深入解析MYSQL与MYSQL_RES核心结构体,揭示函数指针实现的多态机制;详述连接流程:初始化→连接→设置字符集→执行SQL→获取结果集→释放资源,全程覆盖API使用细节与常见问题(如动态库找不到),确保从零起步快速掌握C语言操作MySQL的完整链路。
2026-10-09 21:10:07
402
1
原创 MySQL数据库:用户管理
本文系统讲解MySQL用户管理核心知识,揭示“root裸奔”风险,详解用户账号由用户名+Host唯一确定的机制。通过分析user表结构、Host字段取值(如localhost、%、IP网段)及权限分配(GRANT),手把手指导创建安全账号、删除用户、修改密码,并强调生产环境应避免'%'通配符,实现“按需授权、最小权限”,彻底告别数据库安全隐患。
2026-10-09 20:10:27
145
原创 MySQL数据库:事务管理
本文以12306超卖惨案切入,详解MySQL事务的ACID特性:原子性确保操作全成或全败,一致性是最终目标,隔离性防止并发干扰,持久性保障提交不丢失。通过实操演示事务开启、提交、回滚及保存点机制,揭示autocommit默认开启的原理与误区,强调InnoDB引擎支持事务,手动事务需显式commit。深入剖析MVCC底层原理,帮助开发者写出高并发下安全可靠的业务代码,兼具实战与面试深度。
2026-10-09 10:44:03
327
原创 MySQL数据库:索引
还在被慢 SQL、全表扫描困扰?本文保姆式讲解 MySQL 索引,从磁盘 IO 底层原理讲起,通俗拆解 B + 树、聚簇与非聚簇索引,理清主键、唯一索引、普通索引、外键容易混淆的概念。提供全套可直接复制的小写 MySQL 实操语法,详解联合索引最左匹配、回表、索引覆盖,盘点索引失效高频场景,教你用`explain`分析 SQL 执行计划。拒绝死记硬背,兼顾原理与实战,帮初学者搞懂索引利弊,掌握索引设计原则,避开建索引各种坑,提升数据库查询性能。
2026-10-07 10:31:43
458
原创 MySQL数据库:内外连接
本文以“拼桌子”比喻通俗讲解MySQL连接查询,揭示所有连接的本质是“笛卡尔积+筛选”。内连接(INNER JOIN)仅保留双方匹配的记录,推荐使用显式JOIN ... ON写法以避免踩坑;外连接(LEFT/RIGHT JOIN)则确保一方表数据全保留,缺失部分补NULL,左连接更常用。关键提醒:ON用于匹配逻辑,WHERE用于结果过滤,二者位置不同结果天差地别。新手应掌握规范写法,避开隐式连接陷阱,轻松应对多表查询。
2026-10-07 10:30:14
518
原创 MySQL数据库:复合查询
本文以实战案例详解MySQL复合查询,从单表基础操作(条件筛选、排序、分组统计)过渡到多表关联查询。通过员工、部门、工资等级三张表,演示了JOIN连接、笛卡尔积陷阱及实际应用,强调WHERE与HAVING区别、别名使用与嵌套逻辑,帮助新手掌握多表联动核心技能,实现数据“组队开黑”。
2026-10-06 21:23:32
410
原创 MySQL数据库:内置函数
本文系统介绍MySQL常用内置函数,涵盖日期时间、字符串、数学及实用函数四大类。通过实例演示current_date()、concat()、datediff()、replace()、abs()等核心函数的用法,并重点提醒length()与char_length()差异、substring起始位置从1开始等常见坑点。结合实战场景如计算生日差、拼接字段、处理空值,帮助零基础用户快速掌握SQL函数,提升数据处理效率。
2026-10-06 20:43:25
249
原创 MySQL数据库:基本查询
本文以“班级花名册”类比,通俗讲解MySQL基础操作:建表(create)、插入数据(insert)、查询(select)、更新与删除(update/delete)。通过学生成绩表实例,详解字段类型、主键自增、约束条件等核心概念,并重点提醒新手避坑:避免使用select *、正确处理null值、合理使用where条件及逻辑运算符优先级。内容实用,代码可直接运行,适合零基础快速上手。
2026-10-06 20:26:10
731
原创 MySQL数据库:表约束
# 博客简介MySQL表约束是数据库建表的核心基本功,很多新手只关注字段类型,却忽略约束带来的数据校验能力。本文通俗讲解`not null`、default、主键、唯一键、外键等常用约束,拆解NULL陷阱、主键与唯一键的本质区别,厘清复合主键、隐式默认值等高频易错点。配套可直接复制的实操SQL,理论结合动手演练,同时梳理alter修改约束命令与企业开发规范。避开面试与工作中的常见坑,帮你写出健壮合规的建表语句,快速吃透表约束核心知识。(字数:168)
2026-10-05 20:54:55
174
原创 MySQL数据库:数据类型
本文系统梳理MySQL数据类型,涵盖数值、字符串、日期时间及枚举集合四大类,通过完整可运行案例实测各类别边界值与常见误区。重点解析tinyint、int、bigint主键选型规范,澄清tinyint(4)括号非长度限制的误解,强调合理选择类型对存储效率与数据安全的关键作用,助力开发者从入门到企业级建表规范。
2026-10-03 16:36:31
333
原创 MySQL数据库:表操作
本文面向 MySQL 零基础小白,用 Excel 类比讲解数据表核心概念,系统梳理建表、查表、改表、删表全套 DDL 语法。重点区分讲义伪语法与 MySQL 真实运行语法,拆解`ALTER`系列高频踩坑点,详解存储引擎、字符集、字段约束。包含复制表实操、报错速查表与完整可复制练习脚本,帮你避开表名拼写、括号误用、误删数据等常见问题,夯实 MySQL 表操作基础,适配学习复习与面试备考。
2026-10-02 16:13:20
357
原创 MySQL数据库:库操作
本篇保姆级 MySQL 入门教程,聚焦数据库库操作,帮新手快速理解基础概念。将 MySQL 比作物流园区,数据库就是独立仓库。文中讲解建库、查库、改库、删库常用命令,拆解 utf8mb4 字符集与校验规则,区分_ci 大小写不敏感、_bin 二进制匹配。提醒大家改库字符集不会同步更新旧表,删库属于高危操作。附带 mysqldump 备份方法,以及 1064 报错、Xshell 掉线等实操排坑,适合零基础动手练习。
2026-10-02 15:03:18
355
原创 MySQL数据库:MySQL基础概要
本文从“为何不用文件存数据”切入,系统讲解MySQL入门知识:剖析文件存储的局限性,对比主流数据库特点,手把手演示连接、建库建表、写SQL等操作,并重点解析MySQL四层架构(连接池、SQL处理层、存储引擎、文件系统),厘清DDL/DML/DCL三大语言分类,深入对比InnoDB与MyISAM存储引擎,帮助初学者快速掌握核心概念,实现从零到能用的跨越。
2026-10-01 21:28:12
196
原创 Linux网络编程:数据链路层
本文从快递小哥视角通俗解析数据链路层核心原理:网络分层实现分工解耦,逐层封装形成帧;以太网作为主流链路层技术,通过MAC地址、CSMA/CD与交换机实现局域网高效通信;以太网帧结构包含目的/源MAC、类型字段及CRC校验,最小帧长64字节保障冲突检测;MAC地址全球唯一,用于局域网节点定位,与IP地址分工协作;MTU限制帧大小,超限则触发IP分片,但分片代价高,应尽量避免。全文揭示“为何需要多层协议”的底层逻辑。
2026-09-22 20:37:42
221
原创 Liunx网络编程:网络基础
本文以“快递配送”类比网络层,通俗解析IP、子网、路由等核心概念。网络层如快递调度中心,负责跨网寻址与路由;IP报文头包含源/目的地址、TTL、分片信息等,实现数据包逐跳转发;通过子网掩码与CIDR技术灵活划分网络,解决传统分类编址的地址浪费问题;分片机制保障大包传输,但现代网络倾向避免分片以提升效率与安全。全文强调网络层“尽力而为”的特性,厘清其与传输层职责边界,助新手轻松掌握网络层精髓。
2026-09-22 09:32:50
324
原创 Linux网络:UDP&TCP原理
本文从问题出发,深入解析传输层的必要性:IP仅定位主机,需端口号区分应用。通过五元组实现数据精准交付。对比UDP与TCP,UDP极简高效,无连接、无确认,适用于实时场景;TCP则通过三次握手同步序列号、滑动窗口提升吞吐、超时重传保障可靠、流量与拥塞控制兼顾接收方与网络负载,最终实现可靠字节流传输。
2026-09-20 14:11:35
342
原创 Linux网络编程:HTTPS协议(加密解密初阶)
HTTPS 通过在 HTTP 上叠加 TLS/SSL 加密层,解决明文传输带来的窃听、劫持等安全问题。其核心原理为:利用非对称加密协商会话密钥,再以对称加密高效加密数据;结合 CA 证书验证服务器身份,防止中间人攻击。最终实现数据机密性、完整性与身份真实性。但 HTTPS 仅保障传输安全,无法防范钓鱼网站或用户主动泄露信息,有小锁≠网站安全。
2026-09-19 11:09:29
444
原创 Linux网络编程:HTTP协议
本文以通俗易懂的方式解析HTTP协议,将其比作互联网的“点单规则”,帮助网络新手理解其核心机制。文章涵盖HTTP本质、URL结构、请求响应报文格式、9种请求方法(如GET/POST)的区别与使用场景,以及状态码分类与常见含义。强调无连接、无状态特性,解释Cookie如何弥补状态缺失,并指出报文仅为一次交互数据,非完整网页。通过生活化比喻和实操示例,扫清初学者对协议的误解,实现从“看不懂”到“真明白”的跨越。
2026-09-19 09:30:39
415
原创 Linux网络编程:Socket UDP
本文为Linux UDP Socket C++实战踩坑笔记,详解套接字本质、UDP核心API(socket/bind/recvfrom/sendto),重点剖析bind作用、地址转换(inet_pton)、回环地址127.0.0.1使用及云服务器部署误区。提供完整服务端与客户端代码,强调阻塞非缓冲区问题,帮助初学者避开“代码无错却收不到包”的常见陷阱。
2026-09-18 09:07:19
299
1
原创 Linux网络编程:Linux Socket TCP
本文以“饭店经营”为比喻,从基础TCP Socket API入手,逐步演进四版服务器:单进程回声服务器、多进程并发模型(两次fork)、僵尸进程处理与信号机制。通过对比监听套接字与连接套接字的职责,解析accept阻塞机制、fork资源管理、SIGCHLD信号处理及两次fork防僵尸原理,深入浅出揭示网络编程底层逻辑,帮助初学者理解“一切皆文件”的Linux哲学与并发设计精髓。
2026-09-18 09:06:19
107
原创 Linux网络编程:网络知识基础概要
本文以“快递系统”类比TCP/IP网络,通俗解析Linux网络基础:从局域网到广域网的演进,用OSI与TCP/IP四层模型阐释协议分层逻辑,通过封装解包、MAC/IP地址、端口与Socket等概念,结合ip、ss等实战命令,手把手教你理解数据传输全过程,轻松掌握网络排查核心技能。
2026-09-12 16:36:47
322
原创 Linux基础:线程同步与互斥
<think>我们只需要根据内容生成摘要,≤150字。内容是关于多线程抢票bug,竞态条件,互斥锁解决,锁原理,RAII封装。摘要需简洁概括核心。</think>多线程抢票超卖源于竞态条件,ticket--非原子操作。互斥锁(mutex)保护临界区可解决,加锁操作依赖硬件原子指令xchg,锁不干扰时间片调度。RAII封装可避免忘记解锁。
2026-09-08 10:52:14
307
原创 Linux基础:线程概念与控制
<think>我们只需要根据内容生成摘要,不超过150字。内容是关于Linux进程与线程的讲解,涉及用户态、内核态、硬件机制等。摘要应概括核心观点:进程是资源容器,线程是执行实体;内核统一用task_struct,通过clone标志区分;地址翻译等硬件机制。语言简洁。</think>Linux中进程是资源容器,线程是执行实体;CPU调度的是线程(内核task)。进程与线程底层均为clone系统调用,区别仅在是否共享mm_struct。用户态pthread_t、内核TID/TGID、硬件页表/MMU共同构成完
2026-09-07 09:32:26
334
原创 Linux基础:进程信号
<think>我们只需要根据用户提供的文章内容生成一篇不超过150字的摘要。用户要求“根据以下内容,生成≤150字的文章摘要”,需要简洁概括文章主要内容。文章讲Linux信号机制,用快递比喻,介绍信号概念、来源、内核处理机制。摘要要包含关键点:信号是软中断异步通知;产生方式有键盘、kill、函数、软件条件、硬件异常;PCB中有三张表(阻塞、未决、处理函数)决定信号递达。需控制在150字内。</think>Linux信号本质是进程间软中断异步通知,类似快递通知机制。信号可从键盘、kill命令、函数调用、软件条
2026-09-03 17:22:37
367
原创 Linux基础:进程间通信
<think>我们根据要求生成摘要:根据内容,不超过150字。需要提炼核心:Linux IPC,从管道到共享内存,概念和目的,关键问题。</think>本文介绍Linux进程间通信(IPC),从独立进程为何需通信入手,依次讲解匿名管道、fork后父子进程如何通过管道传输、命名管道、进程池、System V共享内存、消息队列、信号量及内核管理。重点不是记忆接口,而是理解“操作系统提供双方可访问的公共资源”这一本质,以及共享内存为何快、信号量解决什么问题。
2026-09-03 11:34:23
179
原创 Linux基础:动静态库制作与原理
本文从实战与底层原理双维度讲解Linux动静态库。先通过手搓自定义函数库,演示静态库(.a)与动态库(.so)的制作、发布及三种使用方式,解析动态库运行时路径缺失的常见问题。随后深入ELF文件结构,阐释section链接视图与segment执行视图的差异,拆解动态链接核心的PIC位置无关代码、GOT全局偏移表与PLT延迟绑定机制,厘清代码段只读约束下的重定位逻辑。最后对比动静态库特性,附命令速查与报错排查,帮助读者从原理层面解决链接类问题。
2026-08-27 10:55:16
333
原创 Linux基础:Ext系列文件系统
本文深入浅出地讲解了Linux Ext系列文件系统的核心原理。从机械硬盘的物理结构(CHS寻址)到逻辑块地址(LBA),阐述了文件系统作为"硬盘物业"的管理机制,重点解析了inode这一核心概念:文件属性与内容分离存储,inode存储元数据但不含文件名,文件名实际存在于目录文件的映射表中。文章详细剖析了Ext2文件系统的结构布局,包括超级块、块组、位图、inode表等组件,并解释了inode通过多级指针查找数据块的机制。最后通过文件打开流程,说明了内核如何利用dentry缓存和inode缓存优化性能。全文通
2026-08-16 10:07:32
293
原创 Linux基础:基础IO
本文深入解析Linux基础IO机制,从C标准库到系统调用,重点剖析文件描述符(fd)的本质和工作原理。主要内容包括: C标准IO与系统调用IO的关系 C库函数如fopen/printf是封装系统调用的"中间层" 标准流(stdin/stdout/stderr)对应的文件描述符 系统调用核心接口 open/read/write/close的基本用法 位运算标志位传递的设计思想 文件描述符深度解析 fd是进程文件描述符表的数组下标 内核数据结构:files_struct、struct file、inode的关系
2026-08-14 14:49:15
332
原创 Linux基础:进程控制
本文深入浅出地讲解了Linux进程控制的四大核心机制:fork创建进程、进程终止方式、进程等待回收和exec程序替换。通过生动比喻和代码示例,详细剖析了fork的写时拷贝原理、僵尸进程的危害、wait/waitpid的使用区别,以及exec函数家族的特点。最后通过手写迷你Shell的实践,完整展示了命令执行流程:fork创建子进程→exec替换为命令程序→父进程wait回收。全文采用通俗易懂的语言,适合系统编程入门学习,帮助读者透彻理解Linux进程生命周期管理。
2026-08-13 16:43:59
340
原创 Linux基础:进程概念
本文深入浅出地讲解了Linux进程的核心概念。首先介绍了冯·诺依曼体系结构,说明计算机硬件的基本组成和工作原理。其次阐述了操作系统的管理机制,重点解析了"先描述,再组织"的管理思想。然后详细剖析了进程的本质,包括PCB(进程控制块)的结构和内容,并比较了cwd与exe的区别。最后通过fork()系统调用演示了进程创建的过程,解释了写时拷贝机制,并介绍了进程的各种状态及其转换关系。全文通过生动的比喻和代码示例,帮助读者深入理解Linux进程的核心原理。
2026-08-11 16:09:33
315
原创 linux基础:开发工具(下)
文章摘要:本文介绍了Git版本控制工具和gdb/cgdb调试工具的基础使用。Git部分涵盖安装配置、基础操作(克隆、add/commit/push)、进阶命令(状态查看、暂存、分支管理、版本回退),以及.gitignore文件配置和企业开发规范。gdb调试部分强调编译时加-g参数的重要性,并列出常用调试命令(断点设置、单步执行、变量查看等),帮助开发者提升代码管理和调试效率。(150字)
2026-08-09 16:27:41
194
原创 Linux系统编程:C语言从零设计Linux基础终端进度条
本文详细讲解如何在Linux环境下用C语言实现终端动态进度条,涵盖核心原理和实战避坑指南。主要内容包括: 核心原理:解释Linux终端\r与\n的区别、stdout行缓冲机制、内存缓冲区设计等关键技术点 实现方案:提供多文件工程架构,包含进度条渲染、业务逻辑和Makefile编译脚本 常见问题:分析缓冲区刷屏、SSH终端滚动、内存乱码等Linux特有问题的解决方案 代码实现:给出完整可编译运行的代码,包含格式化输出、延时控制和强制刷新等关键实现 扩展功能:介绍使用ANSI转义序列实现彩色进度条的方法 文章特
2026-08-09 10:58:55
628
原创 linux基础:开发工具(上)
本文全面介绍了Linux开发必备的四大基础工具: yum包管理器 - 讲解软件安装/卸载/搜索操作,对比Ubuntu的apt命令 vim编辑器 - 详解三大模式切换、高频命令、基础配置方案 gcc/g++编译器 - 解析编译四阶段(预处理/编译/汇编/链接),对比动态/静态库 Makefile - 演示单文件/多文件项目的自动化构建规则 所有工具均提供可直接运行的示例命令,特别适合Linux初学者快速掌握开发环境配置与基础工具使用。文中包含vim快捷键速查表、gcc编译选项说明、Makefile变量语法等实
2026-08-08 16:21:03
365
原创 C++基础:C++11部分内容
本文摘要介绍了C++11标准的核心特性改进,重点包括:1)C++11发展历程,这是自C++98后最重要的升级,确立了三年一更新的标准周期;2)统一初始化语法({})支持所有类型初始化,并引入initializer_list机制简化容器初始化;3)右值引用与移动语义,通过区分左值/右值、实现移动构造/赋值来提升深拷贝效率;4)万能引用与完美转发机制。这些特性显著提升了C++的编码效率与运行性能,是现代C++编程的基础。(149字)
2026-08-07 10:38:10
321
原创 C++基础:模板进阶
C++模板进阶全解:本文系统解析三大核心进阶技术——非类型参数、模板特化与分离编译问题。非类型参数允许传递编译期常量(如整型值),实现静态数组等场景;模板特化分为函数全特化与类模板的全/偏特化,用于定制特定类型的处理逻辑;分离编译问题源于模板实例化机制,需将声明与实现合并到头文件以避免链接错误。文章指出C++20放宽了对非类型参数的限制(支持浮点数),并强调函数模板应优先用重载而非特化。最后总结模板的优缺点(代码复用vs.膨胀)及高频面试题要点,提供清晰的解决方案与技术演进洞察。
2026-08-06 14:38:01
378
原创 C++基础:内存管理&模版泛型
本文总结了C++两大核心知识点:内存管理与模板编程。第一部分详细讲解了C/C++程序内存五大分区(栈、堆、静态区、常量区、内存映射段),对比分析了malloc/free与new/delete的七大关键区别,重点说明new/delete会自动调用构造/析构函数的特性。第二部分介绍模板泛型编程,通过函数模板和类模板实现代码复用,解析了隐式/显式实例化机制,并指出typename与class在模板定义中的等价性。全文涵盖内存管理常见面试题解析和模板编程的核心语法,适合作为C++面试复习和期末备考的核心资料。
2026-08-06 10:57:06
336
原创 C++基础:类和对象
本文介绍了C++中类和对象的基础知识,主要内容包括: 类定义格式:使用class关键字定义类,包含成员变量和成员函数,结尾需加分号。成员变量常用_前缀或m开头命名。 访问限定符:public、private(默认)和protected,实现封装的核心机制。类域概念和::作用域操作符的使用。 实例化过程:类相当于图纸,对象是具体实例,分配实际内存空间。一个类可实例化多个独立对象。 对象存储特点:对象仅存储成员变量,成员函数存放在公共代码段。空类对象占1字节作为占位标识。 this指针原理:编译器自动添加隐式指
2026-08-05 15:38:11
532
原创 C++:哈希表
哈希表核心概念与实现摘要 哈希表是一种通过哈希函数将关键字映射到存储位置的高效数据结构,核心包含: 哈希函数:关键是将关键字均匀分散到表中。直接定址法简单高效但适用场景有限;除留余数法(取模)最常用,建议表长为质数以减少冲突。 冲突处理: 开放定址法(线性/二次探测)直接在表中寻找空位 链地址法通过链表链接冲突元素 性能优化: 负载因子(元素数/表长)超过阈值(如0.7)时扩容 扩容时选择大于当前容量的最小质数(SGI STL方案) 实现细节: 支持字符串等非整型关键字(如BKDR哈希) 通过状态标记(存在
2026-06-11 14:41:34
210
原创 C++:红黑树实现
红黑树是一种自平衡二叉搜索树,通过节点颜色(红/黑)和五大规则保证近似平衡:根节点为黑色、无连续红节点、每条路径黑节点数相同。插入时,若父节点为红,需根据叔叔节点颜色调整——叔叔为红则仅变色,叔叔为黑或不存在则旋转(单旋或双旋)后变色。核心代码包括左右旋操作及插入后的颜色调整逻辑,确保最长路径不超过最短路径两倍,维持高效查找性能。
2026-06-01 16:10:20
203
原创 Linux权限
本文系统介绍了Linux权限管理的核心概念与操作。主要内容包括:1)用户分类(root超级用户与普通用户)及切换方法;2)文件权限的9位标识体系(所有者/组/其他用户)与rwx权限含义;3)常用权限命令chmod/chown/chgrp的使用及数值表示法;4)特殊权限设置如粘滞位(防止非所有者删除文件);5)用户管理相关操作(useradd/passwd/su/sudo等)。通过权限数值计算、递归修改、umask设置等实用技巧,帮助读者全面掌握Linux系统的权限控制机制。文章配有详细命令示例和权限示意图,
2026-05-25 15:38:12
397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅