- 博客(48)
- 收藏
- 关注
原创 【MySQL | 九 视图与用户管理】
若视图select语句中已经排过序,那么对视图的排序将被覆盖视图可以提高安全性,必须具有足够的访问权限视图不能添加索引,也不能有关联的触发器或者默认值视图可以和表一起使用。
2025-04-07 15:53:08
135
原创 【MySQL | 八、 事务管理】
每个事务的读取行为只受自身隔离级别控制写操作会受其他事务的隔离级别间接影响(通过锁机制)不同级别事务间的交互需要通过锁机制协调假设:有两个会话A、B。场景:银行转账业务C、D两个账户(初始余额:C=1000,D=1000)假设:会话B新建事务(进行向D账户转100,转三次,并新增一个E账户存1000)
2025-04-06 16:34:12
882
原创 【MySQL | 七、存储引擎是什么?】
存储引擎是数据库管理系统中负责数据存储、检索和管理的核心组件,作用于数据的存储、检索、事务管理、并发控制、数据完整性和性能优化等方面。选择合适的存储引擎对数据库的性能和功能至关重要。
2025-03-25 14:46:34
641
原创 【MySQL | 六、索引特性(进一步理解)】
MyISAM存储引擎中的主键索引是 非聚簇索引,与InnoDB都是B+树,索引和数据分开存储,叶子节点存储指向数据行的指针。这种设计使得MyISAM在插入性能上有优势,但在查询性能、事务支持和并发写入方面存在不足。在选择存储引擎时,需要根据应用场景的需求权衡MyISAM和InnoDB的优缺点。
2025-03-25 14:08:37
708
原创 【QT 一 | 信号和槽】
⾃定义信号函数书写规范(1)⾃定义信号函数必须写到 “signals” 下;(2)返回值为 void,只需要声明,不需要实现;(3)可以有参数,也可以发生重载⾃定义槽函数书写规范(1)早期的 Qt 版本要求槽函数必须写到 “public slots” 下,但是现在⾼级版本的 Qt 允许写到类的 “public” 作用域中或者全局下;(2)返回值为 void,需要声明,也需要实现;(3)可以有参数,可以发生重载;3、发送信号使用 “emit” 关键字发送信号。
2025-02-26 22:12:26
981
原创 【MySQL | 四、 表的基本查询(增删查改)】
查询语句外,还有其他类型的SQL语句,它们在执行时也有各自的逻辑顺序。CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)在select中使用group by 子句可以对指定列进行分组查询。对应的值已经存在而导致插入失败可通过一下语法进行更新式插入。通过 MySQL 函数获取受到影响的数据行数。语句用于向表中插入数据。在数据库查询中,除了常见的。
2025-02-25 14:49:41
830
原创 【MySQL | 三、 表的约束介绍】
auto_increment:当插入数据时,若有该属性的字段被忽略,数据库会在上个值的基础上自动+1,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。来做描述,类似于注释,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。,但是实际开发时,尽可能保证字段不为空,因为数据为。唯一键的本质和主键差不多。
2025-01-15 22:03:27
772
原创 [MySQL | 二、基本数据类型]
该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,…说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。: M指定显示长度,d指定小数位数,默认无符号。
2025-01-15 15:48:15
1124
原创 【Linux | 一、 基本指令 - 28 条】
• 但若使用了 less 时,就可以用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看⼀个文件的内容。:表示仅修改文件的访问时间(access time),而不修改文件的修改时间(modification time)。与 which 命令不同,whereis 不仅查找可执行文件,还会查找与文件相关的源代码和手册页,提供更全面的信息。递归处理,将指定目录下的文件与子目录⼀并处理。详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理。
2025-01-14 10:15:32
582
原创 【MySQL | 一、数据库和表结构的增删查改】
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。列:推出mysql后 将mytest库备份到文件。查看库的默认字符集以及校验规则。查看数据库支持的校验规则。-h 和 -p 默认。查看数据库支持的字符集。查看MySQL连接情况。desc [表名];
2025-01-02 22:24:16
554
原创 【GIT(命令)基础操作笔记--关于本地仓库】
创建本地仓库命令配置仓库命令工作区工作区-->缓冲区命令暂存区缓冲区->版本库命令版本库其他git命令`git log``git diff`工作区:是在电脑上你要写代码或文件的目录gitlib 目录下创建的任何文件默认为工作区下的文件。
2025-01-02 11:49:39
1027
原创 【C++ 初始化列表】
初始化列表是在构造函数的参数列表之后、函数体开始之前,使用冒号后跟一组以逗号分隔的成员变量初始化表达式。int num;
2024-07-21 12:27:07
415
1
原创 [运算符重载 - 取地址运算符 - const 成员函数]
C++ 允许程序员重新定义或者重载大部分的运算符,包括赋值运算符、算术运算符、关系运算符等。这使得用户定义的类型(如类或结构体)可以像内置类型一样使用这些运算符。const 成员函数是指在成员函数声明和定义中加上const关键字,以确保该函数不修改对象的任何成员变量。这种机制提高了代码的安全性和可读性,并允许在常量对象上调用这些函数。通过运算符重载、取地址运算符和 const 成员函数,C++ 提供了强大的工具来增强类型的表达能力和灵活性。
2024-07-20 21:10:02
1100
原创 [构造函数 - 析构函数 - 拷贝构造函数]
构造函数、析构函数和拷贝构造函数是C++面向对象编程中不可或缺的组成部分。深入理解和熟练运用它们,能够帮助开发人员编写更清晰、高效的代码,确保对象的正确初始化、资源的正确释放以及对象的正确复制。对于初学者来说,掌握这些概念是掌握C++编程语言的重要一步。
2024-07-20 21:02:29
640
原创 [C++ 基础入门 - inline和 nullptr]
inline是一个函数关键字,用于建议编译器将函数展开为内联代码。nullptr是 C++11 引入的关键字,用于表示空指针常量,提供了更好的类型安全性。NULL是一个宏,在 C++ 中用于表示空指针,但在新代码中推荐使用 nullptr 代替。通过了解这些概念的区别和用法,可以编写更安全、高效和现代化的 C++ 代码。
2024-07-15 19:50:58
486
原创 [C++ 入门基础 - 引用]
引用是C++中的一个重要概念,它允许我们使用一个已存在的变量或对象的别名来访问和修改其内容。引用通过在变量声明时使用int x = 10;// ref 是 x 的引用在这个例子中,ref是x的引用,意味着ref和x指向同一个内存地址,也就是对x起别名ref的操作会直接影响到x。引用是C++中一个强大而精巧的工具,可以有效地提高代码的效率和可读性。通过引用,我们可以避免不必要的数据拷贝并简化函数接口。然而,在使用引用时需要注意生命周期问题和正确的初始化方式,以避免潜在的错误和不确定的行为。
2024-07-15 19:41:46
819
1
原创 [C++ 入门基础 - 函数重载]
在C++编程中,函数重载(Function Overloading)是一种强大的特性,它允许我们定义多个同名函数,但这些函数具有不同的参数列表。通过函数重载,我们可以根据不同的参数类型或数量来实现类似但功能不同的函数,从而提高代码的复用性、可读性和灵活性。
2024-07-15 18:48:54
356
原创 【C++入门基础 - 缺省函数】
缺省参数指的是在定义函数时为参数提供一个默认值。当函数被调用时,如果调用者没有提供对应的参数,那么将会使用该默认值。这样的设计可以简化函数的调用,特别是对于那些常用的参数,可以避免在每次调用时都需要显式地指定它们。缺省参数是C++中一个非常有用的特性,它允许函数在被调用时不需要提供每个参数的值,从而简化了函数调用的过程。合理地使用缺省参数可以使得代码更加简洁、灵活,并提高代码的可读性和维护性。
2024-07-15 18:38:25
227
原创 《C++ 入门:第一个小程序》
在学习 C++ 的旅程中,编写第一个小程序是一个令人兴奋的时刻。它就像打开一扇通往新编程世界的大门,让我们初步领略 C++ 的魅力。让我们怀揣着好奇心和探索的热情,继续深入学习,去发现更多 C++ 的奇妙之处!” ,这是我们与 C++ 交流的第一步。‘’
2024-07-15 18:07:26
511
原创 【排序 - 归并排序】
归并排序是一种效率高且稳定的排序算法,适用于大规模数据集的排序需求。通过递归地分解和合并数组,归并排序可以在O(n log n)的时间复杂度内完成排序,因此在实际应用中被广泛使用。通过本文的介绍和C语言实现示例,读者可以更深入地理解归并排序的工作原理和实现方式。
2024-07-10 17:41:33
906
原创 【排序 - 插入排序 和 希尔排序】
插入排序的基本思想是将数组分为两部分:已排序部分和未排序部分。初始时,已排序部分只包含数组的第一个元素,而未排序部分包含剩余的元素。排序过程中,每次从未排序部分取出一个元素,将它插入到已排序部分的适当位置,使得插入后依然保持已排序部分有序。插入排序虽然不如快速排序或归并排序那样高效,但它简单易懂,并且对于小型数据集或者部分已经有序的数据集表现良好。它是算法学习中的一个重要起点,有助于理解排序算法的基本思想和实现方式。通过本文的介绍和代码示例,读者可以深入学习插入排序的细节和实现过程。
2024-07-10 17:35:13
612
原创 【排序 - 快速排序】
快速排序通过分治策略和分区操作,实现了高效的排序。它不需要额外的存储空间(除了递归调用时的栈空间),并且在平均情况下具有较好的性能表现。因此,快速排序是实际应用中常用的排序算法之一,尤其适合大数据集的排序任务。
2024-07-10 17:31:57
780
原创 【排序 - 选择排序优化版(利用堆排序)】
结合选择排序和堆排序的思路,可以通过利用堆数据结构来优化选择排序的过程,使得排序算法更加高效。在这种结合中,我们利用堆的特性来快速定位和选择未排序部分的最小元素,避免了选择排序中每次线性搜索的开销。
2024-07-10 15:57:36
617
原创 【排序 - 堆排序】
堆排序利用堆这种数据结构的特性,通过构建最大堆和不断调整堆的过程来实现排序。它的时间复杂度稳定在 O(n log n),并且适用于大数据量的排序需求。通过本文,我们深入了解了堆排序的原理和实现方式,并通过C语言代码展示了如何实现堆排序算法。对于理解高效排序算法和算法设计有着重要的帮助。
2024-07-10 15:47:04
659
原创 【排序 - 直接选择排序】
选择排序虽然不如快速排序或归并排序高效,但其简单易懂的特点使得它在教学和理解排序算法的过程中具有重要意义。通过本文,我们深入了解了选择排序的原理和实现方式,并通过C语言代码展示了如何实现选择排序算法。对于理解算法设计和学习排序算法的基本思想有着重要的帮助。
2024-07-10 15:37:38
1026
原创 【排序 - 冒泡排序】
冒泡排序虽然简单且易于理解,但在实际应用中,由于其时间复杂度较高,对大规模数据排序时效率不高。然而,通过学习冒泡排序,我们可以更好地理解排序算法的基本思想和算法复杂度分析,为后续学习更高效的排序算法奠定基础。希望通过本文的介绍和代码示例,你对冒泡排序有了更清晰的理解!
2024-07-10 15:04:07
955
原创 【数据结构 - 二叉树】
在计算机科学中,二叉树是一种重要的数据结构,它由节点(node)组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的设计灵活性使其在各种应用中都有广泛的用途。通过本文,我们全面介绍了二叉树的基本概念、分类、基本操作和实际应用。二叉树作为一种核心数据结构,不仅在理论计算机科学中占有重要地位,而且在实际应用中有广泛的运用。深入理解二叉树将有助于提升编程能力和解决实际问题的能力。
2024-06-30 15:11:54
1266
原创 数据结构 - 队列
队列是计算机科学中一个非常基础且实用的数据结构,它通过先进先出的原则提供了一种有效的方式来管理和处理数据。循环队列作为其一种高效的实现方式,在解决普通队列空间浪费问题方面具有显著优势。通过了解和掌握队列及其变体的实现方式和应用场景,可以更好地应对各种问题和挑战。
2024-06-30 14:38:23
436
原创 【深入探究数据结构中的链表】
在数据结构的广袤世界里,链表作为一种重要的存储结构,有着多种类型,各有其独特之处和适用场景。接下来,让我们详细地探讨一下顺序表中常见的链表类型。单向循环链表:尾节点的指针指向头节点,形成一个环形结构。双向链表的节点比单链表多了一个指向前一个节点的指针。优点:在某些不支持指针操作的环境中可以使用。循环链表分为单向循环链表和双向循环链表。静态链表借助数组来模拟链表的存储结构。缺点:存储空间有限,不便于动态扩展。
2024-06-29 21:44:10
489
原创 【数据结构 - 栈】
栈作为一种简单的数据结构,其“后进先出”的特性使其在很多场景中发挥着重要作用。通过理解和掌握栈的概念、操作和实现,我们能够更好地应对各种编程问题,并为更复杂的数据结构和算法的学习打下坚实的基础。在数据结构的大家庭中,栈(Stack)是一种非常重要且实用的结构。今天,我们就来深入探讨一下如何用 C 语言实现栈,并理解其背后的工作原理。想象一下,栈就像一个只能从一端放入和取出物品的筒子,你把东西一个一个放进去,要拿出来时,只能先拿最后放进去的那个。希望这篇文章能让您对数据结构中的栈有更清晰、更深入的理解。
2024-06-29 19:27:45
386
原创 【数据结构-线性表】
线性表是由n(n≥0)个数据元素组成的有限序列,这些元素排列在一个线性的序列中。每个元素最多只有一个直接前驱和一个直接后继。线性表可以为空表,即不包含任何元素。实现方式有顺序存储和链式存储。线性表是一种简单而实用的数据结构,它支持快速的插入、删除、查找和遍历操作,适用于各种应用场景。通过示例,我们深入理解了线性表的基本操作,并展示了如何实现和使用这些操作来管理数据。希望本文能够帮助读者更好地理解和应用线性表这一基础数据结构!
2024-06-29 18:46:15
960
原创 【数据结构 - 时间复杂度和空间复杂度】
一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。
2024-06-29 16:43:23
517
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人