- 博客(193)
- 资源 (4)
- 收藏
- 关注
原创 【C++】CentOS环境搭建-升级 OpenSSL
检查 OpenSSL 版本:首先,检查你系统上安装的 OpenSSL 版本。在终端中运行以下命令:bash如果版本低于 1.1.1,你需要升级 OpenSSL。升级 OpenSSL:如果你的 OpenSSL 版本低于 1.1.1,你需要升级它。这通常涉及到安装新版本的 OpenSSL,并且可能需要编译安装,因为 CentOS 的默认软件仓库中可能不包含最新版本。
2024-05-27 09:08:56
686
原创 【C++】手搓存储单位转换文件源码,实现byte到(B/DB)单位转换,并支持反向转换
我查看了很多文章,没有一个完美的解决代码,那就干脆自己手搓。showUnit 字段为BOOL类型 用于控制数据返回类型。本案例返回为boost::any 提取时注意处理一下。存储单位转换是不是很麻烦。
2024-05-24 08:23:47
384
原创 【C++】CentOS环境搭建-安装C++ spdlog日志库
spdlog:Speed + Log,是一个高速异步日志库,支持多线程和旋转文件日志,适合用于高负载的系统。glog:Google出品,提供了多种级别的日志输出、多个日志目录的分布式日志存储、快速同步日志到磁盘等功能。Boost.Log:由Boost库提供的日志记录工具,支持多个不同的后端日志器,可以定制多种记录格式。log4cxx(log4cplus):Apache开发的一个C++日志库,设计灵活,可通过配置文件进行调整,同时也支持多种输出方式。
2024-05-23 09:04:55
990
原创 【C++】手搓读写ini文件源码
ini文件是一种系统配置文件,它有特定的格式组成。在c++语言中,提供了模板类的功能,所以我们可以提供一个更通用的模板类来解析ini文件。c++中和键值对最贴切的就是STL中的map了。所以我使用map作为properties的实际内存存储,同时为了方便使用,另外多一个set类型的字段记录所有的key。2、读取文件时只有KEY没哟默认值会报错,添加一个默认值给该KEY。4、保存section,key和value到文件中;3、修改KEY的值时并保存到文件中,形成固定格式。2、过滤注释(#后面的为注释);
2024-05-12 23:07:29
459
原创 【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统,受Apache Software License保护,作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将日志划分优先级使其可以面向程序调试、运行、测试、和维护等全生命周期。你可以选择将日志输出到屏幕、文件、NT event log、甚至是远程服务器;通过指定策略对日志进行定期备份等等。
2024-05-11 07:47:23
961
原创 【C++】CentOS环境搭建-快速升级G++版本
请注意,devtoolset是在不破坏系统自带GCC版本的前提下提供新版本的手段。启用后,g++和gcc命令将指向devtoolset中的新版本。这个会话结束后,原先的GCC版本将恢复为默认。在CentOS系统中升级G++编译器通常涉及使用devtoolset或者SCL(软件集合)。这样做之后,你系统中默认的g++和gcc将会变成devtoolset的版本。
2024-05-11 03:21:22
571
原创 【C++】CentOS环境搭建-编译安装Boost库(附CMAKE编译文件)
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业或非商业的使用都是允许并鼓励的。Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。
2024-05-09 13:30:14
920
原创 【C++】环境搭建CentOS Clion报错Unsupported git Version 1.8.3.1
如上图所示,报错Unsupported git Version 1.8.3.1 At least 2.17.0 is required。这里我们已经看到下载了一个名为git-2.45.0.tar.gz的文件。当前git版本为1.8.3.1最低要求版本为2.17.0。查看git官网查看最新版本:(附GIT官网地址如下)原因是缺少了GCC编译文件,可以通过如下命令安装。如上所示:报错了我们缺少了wget下载组建。安装完成,接下来我们继续下载git。3.下载git最新版本包。到这里git就升级完成了。
2024-05-09 02:37:05
973
1
原创 【C++】手搓读写properties文件源码
properties文件实际上就是键值对的一种形式,用等号连接键和值。c++中和键值对最贴切的就是STL中的map了。所以我使用map作为properties的实际内存存储,同时为了方便使用,另外多一个set类型的字段记录所有的key。2、读取文件时只有KEY没哟默认值会报错,添加一个默认值给该KEY。4、保存key和value到map中;1、当key没有值时:可以设定个默认值。3、根据等号切割key和value;3、修改KEY的值时并保存到文件中。2、过滤注释(#后面的为注释);1、逐行扫描文件内容;
2024-05-08 14:00:44
381
原创 【KingbaseES】授权用户访问某个表
在KingbaseES中,授权用户访问某个表通常涉及到两个步骤:首先,确保用户有权访问数据库;其次,授权用户对特定表的访问权限。3.授予用户对特定表的权限。可以选择授予不同的权限,如SELECT, INSERT, UPDATE, DELETE等,具体取决于需要的访问类型。请将your_database替换为数据库名,your_table替换为表名,username替换为要授权的用户名。执行这些命令后,用户username将能够访问数据库your_database中的your_table表。
2024-04-26 11:49:35
489
1
原创 【PostgreSQL】函数与操作符-网络地址函数和操作符
下表展示了可以用于cidr和inet类型的操作符。操作符=和&&测试用于子网包含。它们只考虑两个地址的网 络部分(忽略任何主机部分),然后判断其中一个网络部分是等于另外一个或者是 另外一个的子网。cidr。
2024-01-21 00:15:00
1057
原创 【PostgreSQL】数据查询-文本搜索函数和操作符
操作符返回类型描述例子结果@@booleantsvector匹配tsquery吗?t@@@boolean@@的已废弃同义词t||tsvector连接tsvector&&tsquery将tsquery用 AND 连接起来||tsquery将tsquery用 OR 连接起来!!tsquery对一个tsquery取反!!!'cat'tsquerytsquery后面跟着tsquery@>booleantsquery包含另一个?f
2024-01-20 00:15:00
1836
原创 【PostgreSQL】数据查询-XML 函数
有一组函数和类函数的表达式可以用来从 SQL 数据产生 XML 内容。它们特别适合于将查询结果格式化成 XML 文档以便于在客户端应用中处理。
2024-01-20 00:15:00
1576
原创 【PostgreSQL】函数与操作符-枚举支持函数
外, 这些函数忽略传递给它们的具体值,它们只关心声明的数据类型。空值或类型的一个特定值可以通过,并得到相同的结果。这些函数更多地被用于一个表列或函数参数,而不是一个硬写的类型名,如例子中所建议。以一个数组返回在给定两个枚举值之间的范围。如果第一个参数为空,其结果将从枚举类型的第一个值开始。如果第二参数为空,其结果将以枚举类型的最后一个值结束。对于枚举类型, 有一些函数允许更清洁的编码,而不需要为一个枚举类型硬写特定的值。将输入枚举类型的所有值作为一个有序的数组返回。返回输入枚举类型的最后一个值。
2024-01-19 00:15:00
448
原创 【PostgreSQL】函数与操作符-数据类型格式化函数
如果在模板字符串中有不是模板模式的字符,输入数据字符串中的对应字符会被简单地跳过(不管它们是否等于模板字符串字符)。之类的非数据模板模式,相应数量的输入字符会被跳过,不管它们是否匹配模板模式,除非它们是数据字符(也就是数位、负号、小数点或者逗号)。的模板字符串中的分隔符(一个空格或非字母/非数字字符)与输入字符串中的任何一个分隔符相匹配,或者被跳过,除非使用了。的模式中的一个负号,如果没有明确的规定,将为该负号保留一列,并且它将被锚接到(出现在左边)那个数字。选项,减号可能是模糊的,可能被解释为分隔符。
2024-01-18 00:15:00
1353
原创 【PostgreSQL】函数与操作符-时间/日期函数和操作符
EXTRACTdate_part操作符例子结果函数返回类型描述例子结果interval减去参数,生成一个使用年、月(而不是只用日)的“符号化”的结果43 年 9 月 27 日interval从current_date(在午夜)减去当前日期和时间(在语句执行期间变化);date当前日期;当前时间(一天中的时间);当前日期和时间(当前事务开始时);获得子域(等价于extract);20获得子域(等价于extract);3timestamp。
2024-01-18 00:15:00
1447
原创 【PostgreSQL】函数与操作符-位串函数和操作符
的值的函数和操作符。除了常用的比较操作符之外,还可以使用下表里显示的操作符。下面的SQL标准函数除了可以用于字符串之外,也可以用于位串: length。的位串操作数必须等长。在移位的时候,保留原始的位串的的长度,如例子所示。下面的函数除了可以用于二进制串之外,也可以用于位串: get_bit。当使用于一个位串时,这些函数将串的第一(最左)位计数为位 0。描述用于检查和操作位串的函数和操作符,也就是操作类型为。请注意,如果只是转换为“bit”,意思是转换成。,因此只会转换整数的最低有效位。
2024-01-17 00:15:00
782
原创 【PostgreSQL】函数与操作符-模式匹配
PostgreSQL提供了三种独立的实现模式匹配的方法:SQLLIKE操作符、更近一些的SIMILAR TO操作符(SQL:1999 里添加进来的)和POSIX-风格的正则表达式。除了这些基本的“这个串匹配这个模式吗?”操作符外,还有一些函数可用于提取或替换匹配子串并在匹配位置分离一个串。这三种类型的模式匹配算子都不支持非确定性拼贴。如果需要的话,可以在表达式中应用不同的拼贴来绕过这个限制。
2024-01-17 00:15:00
1566
原创 【PostgreSQL】函数与操作符-字符串函数和操作符
format本节描述了用于检查和操作字符串值的函数和操作符。在这个环境中的串包括所有类型character和text的值。除非另外说明,所有下面列出的函数都可以处理这些类型,不过要小心的是,在使用character类型的时候, 它有自动填充空白的潜在影响。有些函数还可以处理位串类型。SQL定义了一些字符串函数,它们使用关键字,而不是逗号来分隔参数。详情请见下表,PostgreSQL也提供了这些函数使用正常函数调用语法的版本。string||stringtext串接PostgreSQL。
2024-01-16 00:15:00
1120
原创 【PostgreSQL】数据查询-WITH查询(公共表表达式)
WITH提供了一种方式来书写在一个大型查询中使用的辅助语句。这些语句通常被称为公共表表达式或CTE,它们可以被看成是定义只在一个查询中存在的临时表。在WITH子句中的每一个辅助语句可以是一个SELECT、INSERT、UPDATE或DELETE,并且WITH子句本身也可以被附加到一个主语句,主语句也可以是SELECT、INSERT、UPDATE或DELETE。
2024-01-15 00:15:00
2592
原创 【PostgreSQL】函数与操作符-逻辑操作符
SQL使用三值的逻辑系统,包括真、假和null,null表示“未知”。作符AND和OR是可交换的,也就是说,你可以交换左右操作数而不影响结果。
2024-01-15 00:15:00
582
原创 【PostgreSQL】数据查询-LIMIT AND OFFSET
查询优化器在生成查询计划时会考虑在内,因此您很可能会获得不同的计划(产生不同的行顺序),具体取决于您为 LIMIT和LIMIT OFFSET 提供的内容。因此,使用不同的LIMIT OFFSET / ORDER BY值来选择查询结果的不同子集将产生不一致的结果,除非使用ORDER BY强制执行可预测的结果排序。这是 SQL 不承诺以任何特定顺序传递查询结果这一事实的固有结果,除非用于约束顺序。如果给出了限制计数,则返回的行数不会超过该数(但如果查询本身生成的行数较少,则返回的行数可能会更少)。
2024-01-14 00:15:00
858
原创 【PostgreSQL】数据查询-VALUES
默认情况下,PostgreSQL 将名称 、 等分配给表的列。SQL 标准未指定列名,不同的数据库系统以不同的方式指定列名,因此通常最好使用表别名列表覆盖默认名称,如下所示:column1 column2 VALUES。所有列表必须具有相同数量的元素(即表中的列数),并且每个列表中的相应条目必须具有兼容的数据类型。分配给结果每列的实际数据类型使用与 相同的规则确定。PostgreSQL中VALUES提供了一种生成“常量表”的方法,该表可在查询中使用,而无需在磁盘上实际创建和填充表。
2024-01-14 00:15:00
641
原创 【PostgreSQL】函数与操作符-比较函数和操作符
由于这种行为,IS NULL和IS NOT NULL并不总是为行值表达式返回反转的结果,特别是,一个同时包含 NULL 和非空值的域将会对两种测试都返回假。不过,如果两个输入都为空,它会返回假。类似地,IS NOT DISTINCT FROM对于非空输入的行为与=相同,但是当两个输入都为空时它返回真,并且当只有一个输入为空时返回假。不要写expression = NULL,因为NULL是不“等于”NULL的(控制代表一个未知的值,因此我们无法知道两个未知的数值是否相等)。如下表所示,也有一些比较谓词。
2024-01-13 13:40:55
1596
原创 【PostgreSQL】数据查询-组合查询(UNION,INTERSECT,EXCEPT)
UNION有效地将 query2 的结果追加到 query1 的结果(尽管不能保证这是实际返回行的顺序)。此外,它从其结果中消除重复的行,其方式与DISTINCT 相同,除非使用UNION ALL。如果查询需要使用以下各节中讨论的任何子句,例如 .如果没有括号,您将收到语法错误,否则该子句将被理解为应用于集合操作的输出,而不是其输入之一。同样,除非使用,否则将消除重复项。为了计算两个查询的并集、交集或差值,这两个查询必须“并集兼容”,这意味着它们返回相同数量的列,并且相应的列具有兼容的数据类型。
2024-01-13 00:15:00
1030
原创 【PostgreSQL】数据查询- 对结果进行排序 (ORDER BY)
当指定了多个表达式时,后面的值用于根据前面的值对相等的行进行排序。在这种情况下,实际顺序将取决于扫描和联接计划类型以及磁盘上的顺序,但不能依赖它。如果项是可以与输出列名称或表表达式中的列匹配的简单名称,则仍然存在歧义。ORDER BY可以应用于 UNION、INTERSECT EXCEPT 或组合的结果,但在这种情况下,只允许按输出列名或数字排序,而不允许按表达式排序。请注意,对于每个排序列,排序选项是独立考虑的。例如,表示 ,这与 不同。排序表达式可以是在查询的选择列表中有效的任何表达式。
2024-01-13 00:15:00
1422
原创 【PostgreSQL】数据查询-选择列表
命令中的表表达式通过可能组合表、视图、消除行、分组等来构造中间虚拟表。此表最终由选择列表进行处理。选择列表确定实际输出中间表的哪些列。
2024-01-12 11:23:23
1209
原创 【PostgreSQL】数据查询-表的表达式
fdt是子句中派生的表。表引用可以是表名(可能是架构限定的),也可以是派生表,例如子查询、构造或它们的复杂组合。虽然生成 T1 中的所有列,然后生成 T2 中的所有列,则为列出的每个列对生成一个输出列(按列出的顺序),然后是 T1 中的任何剩余列,然后是 T2 中的任何剩余列。然后,对于 T1 中不满足 T2 中任何行的联接条件的每一行,将在 T2 的列中添加一个具有 null 值的联接行。此外,对于不满足 T1 中任何行的联接条件的 T2 的每一行,将添加一个在 T1 的列中具有 null 值的联接行。
2024-01-12 03:15:00
966
原创 【PostgreSQL】数据查询-概述
假设有一个名为table1的表,此命令将从table1中检索所有行和所有用户定义的列。例如*,psql 程序将在屏幕上显示一个 ASCII 艺术表,而客户端库将提供从查询结果中提取单个值的函数。选择列表规范是指表表达式恰好提供的所有列。选择列表还可以选择可用列的子集或使用列进行计算。SELECT FROM table1是一种简单的表表达式:它只读取一个表。通常,表表达式可以是基表、联接和子查询的复杂构造。检索或从数据库中检索数据的命令的过程称为查询。如果选择列表中的表达式返回不同的结果,这将更有用。
2024-01-11 22:40:44
738
原创 【PostgreSQL】数据操作
创建表时,它不包含任何数据。在数据库派上用场之前,首先要做的就是插入数据。数据一次插入一行。您也可以在单个命令中插入多行,但不能插入非完整行的内容。即使您只知道一些列值,也必须创建一个完整的行。要创建新行,请使用 INSERT 命令。该命令需要表名和列值。数据值按列在表中的显示顺序列出,以逗号分隔。通常,数据值将是文本(常量),但也允许使用标量表达式。上面的语法有一个缺点,即您需要知道表中列的顺序。为避免这种情况,还可以显式列出列。许多用户认为始终列出列名是一种很好的做法。
2024-01-11 00:15:42
1093
原创 【PostgreSQL】外部数据
PostgreSQL 实现了 SQL/MED 规范的部分内容,允许您使用常规 SQL 查询访问驻留在 PostgreSQL 外部的数据。此类数据称为外部数据。(请注意,不要将此用法与外键混淆,外键是数据库中的一种约束。外部数据是在外部数据包装器的帮助下访问的。外部数据包装器是一个库,可以与外部数据源进行通信,隐藏连接到数据源并从中获取数据的详细信息。有一些外部数据包装器可作为模块使用;。其他类型的外部数据包装器可能会被发现为第三方产品。
2024-01-10 23:31:28
1450
原创 【PostgreSQL】表管理-分区表
分区是指将逻辑上一个大表拆分为较小的物理部分。通常,只有当一张桌子非常大时,这些好处才是值得的。表从分区中获益的确切时间点取决于应用程序,但经验法则是表的大小应超过数据库服务器的物理内存。
2024-01-09 14:11:17
1168
原创 【PostgreSQL】表管理-表继承
PostgreSQL 实现了表继承,这对于数据库设计人员来说是一个有用的工具。(SQL:1999 及更高版本定义了类型继承功能,该功能在许多方面与此处描述的功能不同。让我们从一个例子开始:假设我们正在尝试为城市构建一个数据模型。每个州都有许多城市,但只有一个首府。我们希望能够快速检索任何特定州的首都。这可以通过创建两个表来完成,一个用于州首府,另一个用于非首府城市。但是,当我们想询问有关一个城市的数据时,无论它是否是首都,会发生什么?继承功能可以帮助解决此问题。
2024-01-09 13:10:51
1190
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人