- 博客(94)
- 收藏
- 关注
原创 【MySQL】事务
本篇文章全面解析了数据库事务的概念、作用及其核心操作。事务作为数据库管理的基本单位,确保了数据操作的一致性、完整性和可靠性。文章详细探讨了事务的定义、版本支持、提交方式以及常见操作,并通过一系列实验演示了事务的回滚机制及在不同情况下的数据表现。同时,深入剖析了事务隔离级别的概念、分类及作用,帮助理解不同隔离级别对数据库一致性和并发性能的影响。
2025-03-27 01:04:09
1655
92
原创 【MySQL】索引
本篇文章详细讲解了MySQL索引的作用及其与磁盘存储的交互机制。首先,阐述了索引在数据库中的重要性,能够显著提高数据检索效率。接着,深入探讨了MySQL与磁盘存储的关系,以及MySQL与磁盘交互的基本单位——page。随后,通过详细解析索引的理解过程,包括单个page与多个page的理解、页目录的引入、B+树的选择等,让读者深入理解索引的底层原理。此外,文章还介绍了索引的创建、查询、删除操作,并给出了索引创建的实用原则。
2025-03-23 23:56:25
1523
73
原创 【MySQL】用户管理
本篇文章详细介绍了用户管理和数据库权限的相关内容。在用户管理方面,涵盖了用户信息的查看、新用户的创建、用户的删除以及用户密码的修改,其中密码修改又包括用户自行修改密码和root用户为其他用户修改密码两种情况。在数据库权限方面,本文讲解了如何给用户授权以访问或操作特定数据库资源,同时也阐述了如何回收用户的权限,以确保数据库的安全性和数据的完整性。
2025-03-23 23:55:39
668
29
原创 【MySQL】视图
本篇文章讲述了MySQL中的视图相关操作。首先,阐述了视图定义的重要性及其作用。接着,详细讲解了视图的基本使用方法,包括如何创建视图、修改视图对基表数据的影响、修改基表对视图的影响,以及删除视图的步骤。最后,还提到了视图在使用过程中的一些规则和限制。
2025-03-23 23:47:36
401
21
原创 【MySQL】内外连接
本篇文章讲述了MySQL查询中的内连接和外连接。内连接用于匹配两个表中的记录。外连接则分为左外连接和右外连接,分别用于确保在联合查询时,即使无匹配记录也能显示一方或双方的所有信息。
2025-03-23 23:47:16
634
26
原创 【MySQL】复合查询
本篇文章详细讲述了数据库的复合查询,首先复习了基本查询,然后讲解了多表查询、自连接和子查询。从基本查询开始,介绍了如何根据特定条件筛选数据,如工资、岗位和姓名等。随后,文章深入探讨了多表查询和自连接,展示了如何联合多个表的数据以获取更全面的信息。在子查询部分,详细讲解了单行子查询、多行子查询和多列子查询的使用,以及如何在from子句中使用子查询。最后,文章还介绍了合并查询的方法,用于组合多个查询结果。
2025-03-20 22:21:01
1446
43
原创 【MySQL】内置函数
本篇文章详细讲述了数据库操作中常用的几类函数,包括日期时间函数、字符串函数、数学函数以及其他函数。在日期时间函数部分,介绍了其基本使用方法和案例实操。字符串函数部分详细讲解了多个案例实践,如获取字符集、格式化显示考试结果、计算姓名占用的字节数、替换字符串中的特定字符、截取字符串以及转换首字母大小写等。数学函数部分简要介绍了其简单使用方法。最后,还提到了其他函数的简单使用。
2025-03-20 22:01:54
518
28
原创 【MySQL】基本查询(表的增删查改+聚合函数)
本篇文章详细讲述了SQL数据库操作的基础,包括创建(Create)、检索(Retrieve)、更新(Update)和删除(Delete)数据的各种操作,以及插入查询结果、聚合函数和GROUP BY子句的使用。文章详细列出了具体的SQL语法和案例实操,如单行多行数据插入、指定列查询、条件筛选、结果排序、分页、更新指定数据、删除记录、聚合统计等。此外,本篇文章还提供了OJ练习链接,涵盖了批量插入、薪水情况查询、最晚入职员工信息、入职时间排名倒数第三的员工信息等实际问题。
2025-03-19 20:01:00
1931
56
原创 【MySQL】表的约束
本篇文章详细讲述了关于数据库表设计关键属性的。文章依次探讨了空属性(允许字段为空或不允许),默认值(为新记录提供预设值),列描述(增强字段可读性),zerofill(数字字段前补零以满足格式),主键(唯一标识表中每行记录),自增长(自动生成唯一数字标识符),唯一键(确保字段或字段组合值唯一),以及外键(维护表间关系和数据完整性)等核心概念。
2025-03-19 20:00:13
1267
24
原创 【MySQL】数据类型
本篇文章全面介绍了数据库中的数据类型,包括数值类型、字符串类型、日期和时间类型,以及特殊的enum和set类型。在数值类型中,详细讲解了整数类型(以tinyint为例)、bit类型以及浮点数类型(float和decimal)。对于字符串类型,对比了char和varchar的异同。此外,还介绍了日期和时间类型以及enum和set这两种特殊的数据类型。
2025-03-18 10:36:41
1371
64
原创 【MySQL】表的操作
本篇文章讲述了数据库表的创建、查看、删除及修改等基础操作。首先,介绍了创建表的步骤,随后,详细阐述了如何查看当前数据库中的表列表、具体表的详细信息以及表的创建命令。在删除表方面,给出了明确的操作步骤。此外,还深入探讨了修改表的操作,包括增加、修改和删除字段,以及更改表名称。
2025-03-18 10:36:03
1188
24
原创 【MySQL】数据库的操作
本篇文章详细介绍了数据库创建、字符集与校验规则、数据库操作等关键内容。首先,讲述了创建数据库的语法和具体案例。接着,深入讲解了字符集和校验规则的定义、系统默认设置、数据库支持的字符集及其校验规则。此外,本篇文章还详细描述了数据库的基本操作,包括查看、删除、显示创建语句、修改以及备份和恢复等,并特别强调了备份和恢复过程中的注意事项。
2025-03-17 23:59:54
834
19
原创 【MySQL】数据库基础
本篇文章全面介绍了数据库的基本概念、主流类型、基本使用、MySQL架构、SQL分类以及存储引擎等相关知识。首先,阐述了数据库的定义、存在的必要性及其本质,即在计算机系统中用于存储和组织数据的重要工具。接着,介绍了当前主流的数据库类型。在基本使用部分,详细讲解了如何连接服务器,并解析了服务器、数据库和表之间的关联。此外,深入探讨了MySQL的架构和SQL的分类。最后,本篇文章还讲述了存储引擎的概念、查看方法以及不同存储引擎之间的对比。
2025-03-17 23:58:43
896
20
原创 【C++】IO流
本篇文章概述了C语言与C++中的输入输出机制。首先介绍了C语言的输入输出基础,随后解释了流的概念。接着详细探讨了C++中的IO流,包括标准IO流和文件IO流(涉及二进制与文本读写)。此外,还简要介绍了stringstream的用途。希望本篇文章对大家学习IO流有所帮助。
2025-02-15 14:59:05
2039
95
原创 【C++】C++的类型转换
本篇文章概要性地介绍了C语言与C++中的类型转换机制。首先,回顾了C语言中的类型转换方式。然后,阐述了C++为何需要四种强制类型转换(static_cast、reinterpret_cast、const_cast、dynamic_cast),以适应其面向对象的特性及复杂的类层次结构。接着,详细说明了这四种强制类型转换的使用场景与特点。此外,简要介绍了RTTI(运行时类型识别)的概念。希望本篇文章对大家学习C++类型转换有所帮助。
2025-02-15 14:57:19
764
43
原创 【C++】智能指针
本篇文章探讨了智能指针的必要性、内存泄漏问题以及智能指针的使用与原理。首先,智能指针用于自动管理内存,避免手动释放导致的错误。其次,内存泄漏会浪费资源并可能导致程序崩溃,需采取措施避免。智能指针包括auto_ptr、unique_ptr、shared_ptr和weak_ptr,它们基于RAII原理工作,各有特点和适用场景。文章还涉及了智能指针的模拟实现及shared_ptr的线程安全、循环引用问题。
2025-01-29 21:01:45
1091
96
原创 【C++】特殊类设计
本篇文章介绍了五种C++类设计技巧:一、禁止拷贝的类,通过删除拷贝构造函数实现;二、堆上创建对象的类,将析构函数设为非公开并提供静态工厂方法;三、栈上创建对象的类,禁用new和delete;四、禁止继承的类,使用final关键字;五、单例模式的饿汉与懒汉实现。
2025-01-29 21:01:19
2347
49
原创 【Linux】多线程(一)
本篇文章深入探讨了线程的概念、控制、互斥、可重入性、线程安全性以及死锁和线程同步等关键主题。首先,文章阐述了线程的基本概念、优缺点及其在内存管理和进程中的角色。接着,详细讨论了线程的控制机制,包括创建、终止、等待和管理等方面。在互斥部分,文章介绍了互斥量的接口、使用及其实现原理。随后,文章区分了可重入与线程安全的概念,并列举了常见的情况和联系。针对死锁问题,文章阐述了死锁的概念、必要条件及避免算法。最后,文章探讨了线程同步的概念及条件变量的使用。希望本篇文章对大家学习多线程有所帮助。
2025-01-21 14:34:25
3226
94
原创 【Linux】多线程(二)
本文全面探讨了多线程编程中的经典问题及其解决方案。首先,深入解析了生产者消费者模型,并展示了基于BlockingQueue的实现。随后,回顾了POSIX信号量的概念,并通过环形队列的生产消费模型展示了其应用。文章还简要介绍了读者写者问题,包括其模型理解、读写锁接口及三种策略。此外,还概述了自旋锁的概念、接口、优缺点及注意事项。最后,文章探讨了STL容器和智能指针的线程安全性。希望本篇文章对大家学习多线程有所帮助。
2025-01-21 14:33:47
1509
46
原创 【Linux】信号
本篇文章全面探讨了信号在操作系统中的作用及其处理机制。首先介绍了信号的基本概念,随后详细阐述了信号的产生方式,包括通过键盘、系统调用(如kill、raise、abort函数)、异常、软件条件(如关闭管道读端、alarm函数)等方式。接着,文章讨论了信号的保存方法,包括信号集sigset_t和相关函数的使用。在信号处理部分,着重介绍了信号捕捉和sigaction函数。最后,文章补充了与信号相关的重要概念,如可重入函数、volatile关键字和SIGCHLD信号的处理。希望本篇文章对大家学习信号有所帮助。
2025-01-16 14:25:55
1971
50
原创 【C++】异常
本篇文章概述了C语言与C++在处理错误机制上的不同,首先介绍了C语言传统的错误处理方式,随后详细阐述了C++中的异常概念,包括异常的抛出与捕获、重新抛出、异常安全及异常规范。文章还探讨了自定义异常体系和C++标准库的异常体系。最后,分析了C++异常机制的优缺点,为理解和应用C++异常处理提供了全面指导。希望本篇文章对大家学习异常有所帮助。
2025-01-16 14:24:42
763
22
原创 【C++】C++11(二)
本篇文章全面介绍了C++11在模板、lambda表达式、包装器及线程库方面的新特性。首先,探讨了可变参数模板的灵活性。随后,深入解析了lambda表达式的语法及其与函数对象的对比,展示了C++11在匿名函数编程上的进步。此外,文章还介绍了function包装器和bind函数,以及C++11线程库,包括线程管理、锁机制、条件变量和原子操作,为并发编程提供了强大支持。希望本篇文章对大家学习C++11有所帮助。
2025-01-10 15:36:35
2444
84
原创 【C++】C++11(一)
本篇文章概述了C++11的主要特性。首先简介C++11,随后详述了统一的列表初始化,包括{}初始化和std::initializer_list。接着阐述新型声明方式,如auto、decltype类型推导及nullptr替代NULL。文章还介绍了范围for循环、智能指针、STL变化及右值引用和移动语义。在类功能方面,探讨了默认成员函数、成员变量初始化、default和delete关键字的作用,以及final与override在继承和多态中的应用,展示了C++11在提升代码简洁性、安全性和性能方面的显著进步。
2025-01-10 15:33:00
1021
27
原创 【Linux】线程池
本篇文章涵盖多线程编程中的几个关键方面:线程的封装确保线程管理的便捷与安全;锁的封装保护共享资源,避免并发冲突;日志实现助力程序调试与运行监控;任务实现探讨任务分配与执行机制;线程池实现及测试,包括标准实现与懒汉模式,提升资源利用率与性能。
2025-01-05 20:02:14
1446
75
原创 【优选算法】优先级队列(堆)
本篇文章列举了四个经典的LeetCode算法题目,包括最后一块石头的重量、数据流中的第K大元素、前K个高频单词和数据流的中位数。我会在每道题中提到每道题的解题思路,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对优先级队列的理解。
2025-01-05 20:01:19
1818
31
原创 【Linux】进程间通信(二)
本篇文章概述了System V IPC(进程间通信)机制,包括共享内存、消息队列和信号量。共享内存部分详细讲解了其原理及关键函数如ftok、shmget、shmat、shmdt、shmctl。消息队列和信号量部分简要介绍了其原理和主要函数。文章最后探讨了内核对IPC资源的看法。
2025-01-01 16:53:11
1991
91
原创 【Linux】进程间通信(一)
本篇文章概述了进程间通信的目的、理解、发展及分类,并重点介绍了管道通信机制,在匿名管道部分,详细讲解了pipe函数、实现方式及小结,包括四种常见情况和五种关键特性,并提及了匿名管道在进程池中的应用。命名管道部分则从指令级和代码级两个层面,分别介绍了其创建与使用方法。
2025-01-01 16:47:16
1117
27
原创 【Linux】动静态库
本篇文章介绍了静态库与动态库的相关概念,包括静态库的创建与使用,以及动态库的创建、使用和使操作系统找到动态库的多种方法。文章还阐述了动态库的加载过程,包括ELF格式、可执行程序中的地址、绝对编址和相对编址等关键内容。文章最后还谈到了进程地址空间,有关于CPU如何找到程序入口,以及CPU执行程序时,虚拟地址到物理地址的转换过程。希望本篇文章对大家了解静态库与动态库的基本原理和使用方法,以及动态库在操作系统中的加载机制有所帮助。
2024-12-26 10:35:53
1832
87
原创 【优选算法】队列+宽搜(BFS)
本篇文章列举了四个经典的LeetCode算法题目,包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度和在每个树行中找最大值。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对队列与宽度搜索的理解。
2024-12-26 10:30:40
1242
32
原创 【Linux】基础IO(磁盘文件)
本篇文章全面概述了文件系统、磁盘存储结构及其逻辑抽象,包括磁盘的物理与逻辑层面。简略探讨了磁盘分区与格式化。接着,深入解析了磁盘存储的逻辑抽象结构,包括inode表、数据块、位图、块组描述符及超级块等关键组成部分。此外,文章还介绍了目录文件的基本概念和查找方法,以及软链接与硬链接的区别与用途,并解释了为何用户无法对目录产生硬链接。最后,阐述了ACM时间(Access、Modify、Change时间)的定义与更新机制,希望本篇文章对大家有所帮助。
2024-12-21 10:54:44
2311
91
原创 【优选算法】栈
本篇文章列举了五个经典的LeetCode算法题目,包括删除字符串中的所有相邻重复项、比较含退格的字符串、基本计算器Ⅱ、字符串解码和验证栈序列。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对栈的理解。
2024-12-21 10:53:33
1355
32
原创 【Linux】基础IO(内存文件)
本篇文章首先复习了常见的C语言文件接口,接着深入认识了操作文件的系统调用,并详细说明了Linux中的常见传参方法。文章进一步探讨了C语言文件接口与文件系统接口的关系,并引入了文件描述符(fd)的概念,解释了fd为0、1、2的文件及其意义。同时,阐述了操作系统下一切皆文件的理解,以及C语言中FILE的概念。此外,还深入理解了struct file内核对象、fd的分配规则以及重定向等相关内容。最后,文章对缓冲区进行了简单介绍,并通过样例和原理简单的模拟实现了stdio.h,希望本篇文章对大家有所帮助。
2024-12-14 11:10:50
1476
101
原创 【优选算法】字符串
本篇文章列举了四个经典的LeetCode算法题目,包括最长公共前缀、最长回文子串、二进制求和和字符串相乘。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对字符串的理解。
2024-12-14 11:03:55
1532
41
原创 【Linux】自定义shell(讲解原理)
本篇文章讲解了一个命令行工具的设计与封装的原理,包括打印命令提示符、获取命令行命令字符串、分割字符串、执行指令以及处理内置命令的执行和重定向功能。。
2024-12-10 19:44:38
2289
89
原创 【优选算法】哈希表
本篇文章先对哈希表进行简单的描述,列举了五个经典的LeetCode算法题目,包括两数之和、判定是否互为字符重排、存在重复元素、存在重复元素Ⅱ和字母异位词分组。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对哈希表的理解。
2024-12-10 19:42:49
1313
37
原创 【Linux】进程控制
本文全面介绍了进程管理中的关键概念,包括进程创建(重点探讨了fork函数及其返回值、写时拷贝、常规用法及失败原因)、进程退出(涉及多种退出方法和exit与_exit函数的区别)、进程等待(解释了进程等待的重要性、方法及操作系统层面的实现原理)以及进程替换(详细阐述了七种替换函数、使用场景、原理及与程序加载的关系)。希望本篇文章对大家掌握进程控制有所帮助。
2024-12-05 13:03:51
2310
93
原创 【优选算法】分治--快速排序
本篇文章列举了四个经典的LeetCode算法题目,包括颜色分类、排序数组、数组中的第K个最大元素和库存管理Ⅲ。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对快速排序的理解。
2024-12-05 12:53:24
1678
36
原创 【Linux】进程地址空间
本篇文章先讲述了C/C++中的普遍认知,例如空间布局图、堆栈相对而生和栈区申请与访问相关知识,然后详细阐述了进程地址空间的核心概念,包括地址的深入理解、进程地址空间的本质以及区域划分的必要性。进程地址空间通过将内存空间有序化,有效提升了进程访问内存的安全性与效率,实现了进程管理与内存管理在操作系统层面的解耦,并确保了各进程间的独立性。希望本篇文章对大家有所帮助。
2024-12-01 18:25:38
2001
89
原创 【Linux】Linux2.6内核进程调度队列与调度原理
本篇文章概述了进程管理中的关键概念,包括竞争性、独立性、并行与并发,介绍了寄存器的作用,阐述了进程切换的过程,并探讨了Linux2.6内核的进程调度队列及其调度原理。希望对大家了解Linux2.6内核进程调度队列与调度原理有所帮助。
2024-12-01 18:24:38
1166
34
原创 【优选算法】模拟
本篇文章列举了五个经典的LeetCode算法题目,包括替换所有的问号、提莫攻击、Z字形变换、外观数列和数青蛙。我会在每道题中提到每道题的解题思路和对应的图解,并提供解决本题的C++代码,希望通过这些题的讲解,能够加深大家对模拟的理解。
2024-12-01 18:24:08
1463
35
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人