自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 【数据库初阶】事务

锁定索引记录之间的间隙(RR 隔离级别特有)。:确保查询命中索引,避免锁升级为表锁。:事务快照,判断数据版本可见性。:尽快提交事务,减少锁持有时间。

2025-03-23 15:56:08 468

原创 【数据库初阶】索引(1)

索引的主要作用是为了提高数据库查询的性能;不用加内存,不用改程序,不用调sql,只要执行正确的,查询速度就可能提高成百上千倍;但是会增加删除、更新、插入的效率。

2025-03-02 00:59:22 764

原创 【数据库初阶】表的查询语句和聚合函数

聚合函数用于对一组值执行计算,并返回单个汇总值。它们通常与GROUP BY子句结合使用,实现分组统计,但也可以直接用于整张表的汇总。

2025-01-27 00:18:39 1692 8

原创 【数据库初阶】表的增删改语句

特性 DELETE TRUNCATE删除方式 逐行删除 删除所有行是否可以删除特定行 可以,通过 WHERE 子句指定条件 不能,删除表中的所有数据是否触发触发器 会触发 DELETE 触发器 不会触发触发器是否重置自增列 不会 会重置自增列计数器操作类型 DML(数据操作语言) DDL(数据定义语言)性能 较慢,逐行删除 更快,通过删除和重新创建表实现能否回滚 可以,适用于支持事务的存储引擎 不可以,删除操作不可回滚表结构是否改变 不改变表结构 不改变表结构操作对日志的影响 会占用 un

2025-01-11 00:21:15 1402 18

原创 【数据库初阶】MySQL中表的约束(下)

2. 唯一键 UNIQUE KEY2.1 基本概念唯一性:唯一键确保每一行数据在指定的列(或列组合)中是唯一的,即不允许存在两个或更多相同的值。NULL 值:与主键不同,唯一键允许列中有 NULL 值。多个 NULL 值在唯一键列中是允许的(这与主键不同,主键列不允许有 NULL 值)。2.2 语法格式唯一键可以通过 UNIQUE 关键字在创建表时定义,或者在已经存在的表中使用 ALTER TABLE 来添加。2.2.1 创建表时使用唯一键CREATE TABLE employees (

2025-01-07 00:14:02 1149 18

原创 【数据库初阶】MySQL中表的约束(上)

`primary key`用来 **唯一的** 约束该字段里面的数据,**不能重复,不能为空**; - 主键要求表中每一行记录的值都是唯一的,也就是说,主键字段的值不能重复。每行数据的主键值都是唯一的,确保数据的唯一性。 - 主键字段不能为 `NULL`。也就是说,在定义主键时,`MySQL` 会自动给该字段添加 `NOT NULL` 约束。每一行数据在插入时,主键字段必须提供一个有效的、非空的值。 - 一张表中最多只能有 **一个主键**,但可以由一个列或多个列组成(复合主键)。 - 主键可

2025-01-03 18:51:10 1144 20

原创 【数据库初阶】MySQL数据类型

| 数据类型 | 字节数 | 带符号最小值 首先,因为类型是 1Byte1Byte1Byte,范围是 ;所以很明显,123451234512345 超出范围了;但是一般情况下编译器不会直接报错,而是会在编译阶段发生截断操作;这就意味着编译器只会读取 123451234512345 转化成 二进制的低八位:123451234512345的二进制: 001100110011 000000000000 001100110011 100110011001截断:0011

2024-12-31 18:04:49 1239 16

原创 【数据库初阶】Linux中表的基础操作

实际开发中,我们需要向表中插入删除内容;也会修改表的结构,例如字段名字、语法说明: 表示列名; 表示列的类型(关于类型下一篇文章会细讲); 表示字符集,如果没有指定字符集,则以所在数据库的字符集为准; 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。🎧1.2 创建案例🎧我们可以先查看一下系统的默认存储引擎,进入中然后输入以 MyISAM 为存储引擎创建表输入下面代码,创建表:这里的括号可以省略,但是如果省略的话一定要按照你定义的顺序插入!

2024-12-30 01:03:07 1134

原创 【数据库初阶】Linux中库的基础操作

数据库的创建方法很简单,首先输入 `mysql -uroot -p`, 然后输入密码进入到数据库;- 然后输入:`CREATE DATABASE [IF NOT EXISTS] db_name [create_spec创建 数据库:执行删除后的结果:查看数据库的语法:;查看当前我在哪个数据库中:,这个相当于是函数,功能类似于;查看创建数据库细节的语法:,例如:如何同时备份多个数据库呢?如果备份一个数据库时,没有带上参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用来还原

2024-12-28 20:25:55 878

原创 【数据库初阶】数据库基础知识

在操作系统中,有文件管理,为什么还需要数据库呢?可以想象一下,有一个包含十万行IP地址的文件,如果现在要找出IP地址是120开头的,且要统计一下出现的次数;作为程序员,我们可以在cpp或者java等语言中一行行读取文件内容,并进行比对,稍微有点麻烦;但是数据库,是在磁盘或者内存中存储的特定结构组织的数据,我们只需要输入特定的指令,数据库就知道我们想要干什么,然后它就会把我们想要的结果告知我们;所以,可以在磁盘或者内存中找到存储数据库的方案;那么我们应该如何让数据库知道我们想要做什么呢?

2024-12-25 18:28:23 1116

原创 【数据库初阶】Ubuntu 环境安装 MySQL

**说明 :**>> - **安装和卸载过程中,用户全部切换为 root,安装成功,普通用户是可以使用的;**> - **我们在初期学习 MySQL 时先用 root,尽快掌握 MySQL 语句,之后在学习用户管理**

2024-12-25 14:51:26 1050 1

原创 【Linux网络】详解TCP协议(3)

1. 流量控制🎉博主首页:有趣的中国人🎉专栏首页:Linux网络🎉其它专栏:C++初阶 |C++进阶 |初阶数据结构小伙伴们大家好,本片文章将会讲解TCP的流量控制和滑动窗口的相关内容。您的支持是我最大的动力,让我们一起努力,共同成长!

2024-09-28 16:15:52 883

原创 【Linux网络】详解TCP协议(2)

1. 三次握手🎉博主首页:有趣的中国人🎉专栏首页:Linux网络🎉其它专栏:C++初阶 |C++进阶 |初阶数据结构小伙伴们大家好,本片文章将会讲解TCP协议的三次握手和四次挥手的相关内容。您的支持是我最大的动力,让我们一起努力,共同成长!

2024-09-28 01:09:04 1233 1

原创 【Linux网络】详解TCP协议(1)

🎉博主首页:有趣的中国人🎉专栏首页:Linux网络🎉其它专栏:C++初阶 |C++进阶 |初阶数据结构小伙伴们大家好,本片文章将会讲解TCP协议的相关内容。您的支持是我最大的动力,让我们一起努力,共同成长!

2024-09-08 00:43:44 1212

原创 【Linux网络】应用层协议HTTP(1)

🎉博主首页:有趣的中国人🎉专栏首页:Linux网络🎉其它专栏:C++初阶 |C++进阶 |初阶数据结构小伙伴们大家好,本片文章将会讲解应用层协议HTTP的相关内容。您的支持是我最大的动力,让我们一起努力,共同成长!

2024-09-03 23:38:11 1478

原创 【C++11】详谈隐式类型转换

`initializer_list` 是 `C++11` 引入的一种标准库类型,用于方便地初始化同一种类型的元素列表。`initializer_list` 允许通过大括号 `{ }` 语法进行初始化,例如: std::initializer_list my_list = {1, 2, 3, 4, 5};这里 `my_list` 是一个包含了整数元素 `{1, 2, 3, 4, 5}` 的 `initializer_list` 对象。==

2024-06-19 22:47:13 880 44

原创 【Linux操作系统】进程状态(1)

1. **R 运行状态(running)**: 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。2. **S 睡眠状态(sleeping)**:意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep))。3. **D 磁盘休眠状态(Disk sleep)**:有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束。4. **T 停止状态(stopped)**: 可以通过发送 SIG

2024-06-07 01:38:50 860 18

原创 【Linux】操作系统之冯诺依曼体系

冯·诺伊曼体系是 **计算机体系结构的一种基本设计范式**,以美国数学家兼计算机科学家约翰·冯·诺伊曼(John von Neumann)的名字命名。该体系结构是20世纪40年代末和50年代初期发展起来的,并且至今仍然是现代计算机设计的基础之一。

2024-05-31 20:53:45 2210 25

原创 【哈希】用哈希桶封装unordered_map & unordered_set

由于`unordered_map`和`unordered_set`的分别是 `KV` 类型和 `K` 类型,存储的数据类型是不相同的, 但是底层的哈希桶只有一份,这个时候我们得想到用模板的方法来解决此问题。(这块类似于红黑树那的封装)1. 我们用哈希表来实现`unordered_map`和`unordered_set`,因此他们两个的成员变量就是用哈希桶实现出的哈希表的对象;2. 哈希表的前两个模板参数是 `K` 和 `V`(`Key: 关键字` 和

2024-05-31 00:14:13 876 34

原创 【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(2)

**开散列法又叫链地址法(开链法)**,**首先对关键码集合用** **散列函数计算散列地址**,**具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来**,**各链表的头结点存储在哈希表中。**很明显,**这个哈希表中存储了一个指针数组**,我们可以用`vector`来实现,数组中的**每个位置存储了一个节点类型的指针**,**每个节点相当于是链

2024-05-29 00:34:33 1312 23

原创 【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(1)

哈希函数是一种将输入数据(例如字符串、数字等)转换为固定长度的输出数据的函数。这个输出通常称为哈希值或哈希码。哈希函数的特点是,对于相同的输入,它总是生成相同的输出,而且通常无法根据输出反推出输入。这种特性使得哈希函数在==密码学、数据验证和数据检索==等领域中非常有用。哈希表是一种数据结构,它利用哈希函数来快速定位存储和检索数据。哈希表由一个数组组成,每个数组元素称为桶($bucket$)或槽($slot

2024-05-28 18:13:00 1524 32

原创 【map、set】C++用红黑树来封装map、set容器

我们在模拟红黑树的时候一律用了`pair`的`KV`模型来进行实现。但是由于`map`是`KV`模型的而`set`是`K`型的,但是底层都是用的红黑树,那么应该如何进行调整呢?

2024-05-23 20:24:02 965 43

原创 【平衡二叉搜索树】红黑树

红黑树,是一种二叉搜索树,==它在每个结点上增加一个存储位表示结点的颜色,可以是 Red 或 Black。== 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,==红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。==>>> 它在插入和删除节!

2024-05-17 18:44:56 900 38

原创 【平衡二叉树】AVL树(双旋)

左右双旋后,实际上就是让`subLR`的左子树和右子树,分别作为`subL`和`parent`的右子树和左子树,再让`subL`和`parent`分别作为`subLR`的左右子树,最后让`subLR`作为整个子树的根。> 1. `subLR`的左子树当中的结点本身就比`subL`的值大,因此可以作为`subL`的右子树。> 2. `subLR`的右子树当中的结点本身就比`parent`的值小,因此可以

2024-05-14 22:21:04 1394 26

原创 【Linux】简易进度条的实现

缓冲区(`Buffer`)是计算机内存中的一块特定区域,用于==临时存储数据==。它在许多计算机系统和应用程序中发挥着重要作用,通常用于==临时存储输入数据、输出数据或在内存和其他设备之间进行数据传输。==编写简易的进度条。

2024-05-10 22:50:14 1322 29

原创 【Linux】项目自动化构建工具make/makefile

当谈到在`Linux`中进行项目构建时,`make`和`makefile`是两个非常重要的工具。它们提供了一种自动化构建的方法,使得开发者能够轻松地编译和构建复杂的软件项目。下面我会分别介绍一下`make`和`makefile`。

2024-05-10 01:28:32 1230 37

原创 【Linux】gcc/g++的使用

GCC(GNU Compiler Collection)是一套由GNU计划开发的编译器集合,它是一种开源的编译器套件,用于编译和运行C、C++、Fortran、Ada、以及其他一些编程语言的程序。其中,g++是GCC中专门用于编译C++程序的工具。由于其开放源代码的特性,GCC已经成为许多操作系统和平台上的标准编译器,例如Linux、GNU Hurd、Mac OS X等。g++是GCC中用于编译C++源代码的前端工具。

2024-05-08 21:05:34 1411 34

原创 【Linux】Vim

Vim的基本概念和相关操作批量化注释和去注释普通用户的sudo提权vim的配置问题

2024-05-07 14:43:22 1269 25

原创 【Linux】yum

- 在`Linux`下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序;- 但是这对于非专业人士来说,这既困难又麻烦,于是有些人把一些常用的软件提前编译好, 做成软件包,放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装,就好比 "`App`" 和 "应用商店" 这样的关系;- `yum`(Yellow dog Updater, Modified)是`Linux`下非常常用的一种包管理器。主要应用在`Fedora`, `RedHat`,`Ce

2024-05-06 23:40:48 1125 16

原创 【平衡二叉树】AVL树(右单旋和左单旋的情况)

1. AVL树的定义🎉博主首页:有趣的中国人🎉专栏首页:C++进阶🎉其它专栏:C++初阶 |初阶数据结构 |Linux。

2024-05-04 23:49:21 1168 32

原创 【C++容器map】map的相关用法

1. map的介绍🎉博主首页:有趣的中国人🎉专栏首页:C++进阶🎉其它专栏:C++初阶 |初阶数据结构 |Linux本篇文章主要讲解C++容器之map相关用法的相关内容。

2024-05-01 23:10:44 2025 26

原创 【C++ 容器 set】set的相关用法

链接set介绍唯一性:std::set中的元素是唯一的,即集合中不允许重复元素。排序:std::set会根据元素的值自动进行排序,默认情况下,它使用元素类型的比较函数来实现排序。内部实现:std::set使用红黑树作为底层数据结构来实现,这使得它的插入、删除和查找操作的时间复杂度都是O(log n)。使用方法: 要使用std::set,首先需要包含头文件。然后,你可以声明一个std::set对象,并使用Insert()方法向其中插入元素。你还可以使用erase()方法来删除元素,使用。

2024-04-28 23:57:36 843 4

原创 【二叉搜索树】二叉搜索树的用法以及实现

二叉搜索树的用法以及实现

2024-04-28 15:50:37 1328 17

原创 【多态】有关多继承和菱形继承的多态

博主会持续更新本篇文章主要讲解多继承和菱形继承的多态的相关内容。

2024-04-26 19:01:35 1377 24

原创 【Linux】权限

权限就是通过一定的条件,拦住一部分人,给另一部分人权力来访问某一种资源。例如:你是腾讯视频。

2024-04-23 23:58:56 733 15

原创 【多态】底层原理

本篇文章主要讲解多态底层原理的相关内容。

2024-04-23 01:37:58 814 4

原创 【多态】初识多态

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。多态构成需要有两个条件:1. 虚函数构成重写;2. 父类的指针或者引用来调用虚函数。

2024-04-22 23:58:28 495 6

原创 【继承】复杂的菱形继承

本篇文章主要讲解菱形继承的相关内容。

2024-04-22 15:22:46 1105 5

原创 【C++初识继承】

继承 总的来说:1. 基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。

2024-04-20 23:18:04 1217 6

原创 【双指针】

总的来说,在双指针中,经常利用单调性来解决问题,例如这里的 盛最多水的容器、有效三角形的个数、包括两数之和、三数之和、四数之和,还需要多练习来锻炼思维,加油!t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8LeetCode 283. 移动零https://leetcode.cn/problems/move-zeroes/description/

2024-04-18 23:28:30 677 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除