- 博客(53)
- 收藏
- 关注
原创 SQL——查询sql执行顺序
需要注意的是,这个物理执行顺序是数据库内部优化过程的结果,对于编写查询的开发者来说,通常不需要直接关心。例如,了解WHERE子句在GROUP BY之前执行,可以帮助开发者确保WHERE子句尽可能高效地过滤掉不需要的数据,从而减少对后续步骤(如GROUP BY和ORDER BY)的数据处理量。在SQL查询中,虽然我们在编写查询时遵循一定的逻辑顺序(SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY),但实际上,数据库在执行这些查询时遵循的是不同的物理执行顺序。
2024-08-01 20:58:52
430
原创 PostgreSQL——libpq基础概述
Libpq是PostgreSQL数据库的重要组成部分,它为客户端程序提供了一种高效、可靠的方式来与PostgreSQL数据库进行交互。通过libpq,开发人员可以轻松地实现数据库连接、查询执行、事务处理和错误处理等功能,从而构建出功能强大、性能优越的数据库应用程序。
2024-07-31 17:58:34
1090
原创 PostgreSQL——Wal文件
PostgreSQL中的WAL(Write-Ahead Logging,预写式日志)文件是数据库持久性机制的重要组成部分。
2024-07-31 17:48:35
1248
原创 PostgreSQL——存储过程、函数
PostgreSQL(简称PG)是一个功能强大的开源对象-关系数据库系统,支持几乎所有的SQL标准并且提供了许多其他现代特性。在PostgreSQL中,存储过程和函数是数据库编程的重要组成部分,它们允许用户封装复杂的数据库操作逻辑,以提高代码的重用性、减少网络传输的数据量,并增强数据库操作的安全性。
2024-07-31 16:35:24
3346
原创 PostgreSQL——ecpg基本介绍
ECPG(Embedded C PostgreSQL)是PostgreSQL数据库自带的一个命令行工具,它允许开发者在C语言程序中嵌入SQL语句,从而简化与PostgreSQL数据库的交互。
2024-07-31 16:02:22
1200
原创 PostgreSQL——查询扫描介绍
顺序扫描(Sequential Scan)是PostgreSQL中一种基本的数据检索方式,它通过按顺序读取表中的所有页面来查找满足查询条件的记录。这种方式不依赖于索引,因此在某些情况下可能是唯一的选择,尤其是当表没有合适的索引或查询需要返回大量数据时。在PostgreSQL中,索引扫描是一种高效的数据检索方式,它利用表上的索引来快速定位满足查询条件的记录。索引是数据库中的一种特殊结构,可以看作是表中数据的快速查找路径。通过索引,数据库可以快速地定位到表中的特定行,而无需扫描整个表。
2024-07-31 15:29:17
1003
原创 PostgreSQL——tsearch全文搜索
全文搜索(文本搜索)提供了一种可以检索出满足某个查询条件的自然语言文档的能力,并且还可以根据文档的相关性对文档进行排序。最常见的搜索是找出所有包含给出的查询词的文档,并且以它们符合查询的程度排序输出。文本搜索操作符在数据库里已经存在很多年了。PostgreSQL有~、~*和LIKE操作符用于文本数据类型,但是它们缺乏许多现代的信息系统需要的重要功能。
2024-07-31 14:54:44
1507
原创 PostgreSQL——锁介绍
PG数据库的锁机制是确保数据库并发访问和数据一致性的重要手段。通过不同类型的锁,PG能够灵活地控制对数据库资源的访问,满足不同应用场景的需求。在实际应用中,需要根据具体的业务场景和需求选择合适的锁类型和策略,以优化数据库的性能和可靠性。
2024-07-30 21:11:52
768
原创 postgrsql——事务概述
事务被视为一个整体,其中的操作要么全部执行成功,要么全部不执行,即不存在部分执行的情况。这确保了事务的完整性和一致性。
2024-07-29 22:51:22
1288
原创 lightdb——约束
约束(Constraints)是对表中数据的限制条件,用于确保数据的准确性和可靠性。它们定义了表中数据的规则,这些规则在数据插入、更新或删除时由数据库自动检查。如果尝试插入或更新违反约束的数据,数据库将拒绝该操作并返回一个错误。
2024-07-29 22:39:13
103
原创 数据库的mvcc概述
数据库的MVCC(Multi-Version Concurrency Control,多版本并发控制)框架是一种用于解决数据库读写冲突的技术,它通过创建数据的多个版本来实现读写操作的并发执行,避免了传统锁机制中的阻塞和死锁问题。
2024-07-28 22:37:36
402
原创 SQL——基本操作
综上所述,SQL语言以其标准化、功能强大、易于学习、高效处理数据以及广泛应用等特点,在数据库领域占据了举足轻重的地位。随着大数据和云计算技术的不断发展,SQL语言也在不断演进和完善,以适应新的应用场景和技术需求。对于任何从事数据库管理和开发工作的人员来说,掌握SQL语言都是一项必备的技能。DDL(Data Definition Language)用于定义和修改数据库的结构。主要操作包括创建、修改和删除数据库、表、索引等。创建数据库创建表删除表修改表结构。
2024-07-28 22:22:39
1006
原创 SQL——基础概念
DDL(Data Definition Language)用于定义和修改数据库的结构。CREATE:用于创建新的数据库、表、索引等。ALTER:用于修改现有数据库的结构,如添加、删除或修改表中的列。DROP:用于删除数据库、表、索引等。SQL语句的基础概念包括数据库、表、行、列、数据类型等基本概念,以及DDL、DML、DQL和DCL等基本操作。掌握这些基础概念对于理解和使用SQL语言至关重要。
2024-07-28 22:16:37
608
原创 PostgreSQL数据库概述
数据库(Database)是一个用于存储、检索和管理数据的集合。它按照数据结构来组织、存储和管理数据,使得这些数据能够高效地被各种用户或程序访问和处理。数据库是信息系统(如企业资源规划、客户关系管理、内容管理系统等)的核心组成部分,用于存储和管理大量的结构化数据。数据结构化:数据库中的数据不是随意存放的,而是按照一定的数据模型组织起来的,这种模型可以是层次模型、网状模型、关系模型等。其中,关系模型是当前使用最广泛的数据库模型,它通过表格(Table)来存储数据,表格之间通过关系(如外键)相互关联。
2024-07-28 22:09:49
1190
原创 C——gcc编译
GCC(GNU Compiler Collection)是一套由GNU项目开发的编译器集合,它支持多种编程语言,但最著名的是其C和C++编译器。GCC是开源的,并且在Linux、macOS、Windows等多个平台上都有广泛的应用。它以其高性能、灵活性和对多种硬件架构的支持而著称。GCC编译一个程序通常涉及几个步骤,这些步骤被统称为“编译过程”。对于C或C++程序,这个过程通常包括预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。
2024-07-28 21:10:16
1018
原创 C——宏定义
没参数的宏在C语言中,可以采用命令#define来定义宏。该命令允许把一个名称指定成任何所需的文本,例如一个常量值或者一条语句。在定义了宏之后,无论宏名称出现在源代码的何处,预处理器都会把它用定义时指定的文本替换掉。惯例将宏名称每个字母采用大写,这有助于区分宏与一般的变量。通常情况下,程序中往往多次用到数组(例如上述data)的长度,例如,采用数组元素来控制for循环遍历次数。
2024-07-28 21:00:16
989
原创 C——typed
/ 等同于 int a = 10;int x;int y;} Point;Point p1;// 使用新定义的Point类型p1.x = 10;p1.y = 20;// 等同于 char* str = "Hello, World!typedef也可以用于定义更复杂的类型别名,比如指向函数的指针、指向数组的指针等。// 定义一个指向函数的指针类型,该函数接受两个int参数,返回一个int// 假设有这样一个函数// 使用FuncPtr类型// 调用函数,result = 8。
2024-07-28 20:57:22
169
原创 C——结构体和共用体
结构体定义由关键字struct和结构体名组成,结构体名可以根据需要自行定义。struct语句定义了一个包含多个成员的新的数据类型,struct语句的格式如下:structtagmemberlistmemberlistmemberlist...variablelist;tag是结构体标签。是标准的变量定义,比如int i;或者float f;,或者其他有效的变量定义。
2024-07-28 20:51:19
606
原创 C——枚举(Enum)
枚举(Enumeration)是C语言中的一种基本数据类型,它允许程序员定义一个变量,该变量可以是几个命名常量中的一个。枚举类型提供了一种将整数常量集合命名的有效方式,使得代码更加清晰、易于理解和维护。
2024-07-28 20:42:10
319
原创 C——存储类
auto存储类是所有局部变量默认的存储类。定义在函数中的变量默认为auto存储类,这意味着它们在函数开始时被创建,在函数结束时被销毁。intmount;上面的实例定义了两个带有相同存储类的变量,auto只能用在函数内,即auto只能修饰局部变量。
2024-07-28 20:37:30
933
原创 C——指针
Int *p=&a;除了NULL和0,不能赋值给指针如任何常量空指针NULL指向0x0000000的指针变量,该地址不对任何数据,不可读取也不可写入。通过符合&取地址。永远无法得到空指针。通用指针void *存放:可以用于指向任意类型的变量的地址读取:需先强制指定为对应的数据类型的指针变量因为编译器许根据指针类型从指针指向的地址先后寻址,不用类型寻址步长不同。使所以不知道类型无法寻址。
2024-07-28 20:35:39
1017
原创 C——变量
C语言中的常量是程序中不可改变的固定值,它们为程序员提供了一种有效管理和维护数据的方式。通过引入不可变的值,常量增加了代码的稳定性和可维护性。在C语言中,常量可以是任何基本数据类型,包括整型、实型、字符型和字符串等,并且可以通过直接常量、符号常量、const关键字常量和枚举常量等多种形式来表示。
2024-07-28 20:27:55
602
原创 C——程序结构
在函数内部声明的变量是局部变量,它们只在声明它们的函数内部可见。此外,C语言允许通过typedef关键字来定义新的类型名。// 局部变量示例// 函数体// 类型定义示例在C语言中,函数是执行特定任务的代码块。程序可以由多个函数组成,但每个C程序都必须有一个main函数,作为程序的入口点。// 函数体// 主函数体\n");// 调用自定义函数return 0;如上所述,main函数是C程序的入口点。程序的执行从这里开始。main。
2024-07-28 18:02:43
704
原创 C——简介
C语言作为一门历史悠久、功能强大的编程语言,其在编程领域中的地位无可替代。无论是对于初学者还是资深程序员来说,掌握C语言都是一项极具价值的技能。通过深入学习C语言,我们不仅能够更好地理解计算机系统的底层原理,还能够掌握编程的精髓和技巧,为未来的职业发展打下坚实的基础。
2024-07-28 17:48:57
404
原创 Shell基本语法
Shell是Linux和Unix系统中用于用户与操作系统内核进行交互的接口,它也是一种强大的编程语言,允许用户编写脚本来自动化执行一系列命令。本文将介绍Shell的基本语法和一些常用的命令,帮助读者快速入门Shell编程。Shell编程是一门强大而灵活的技能,通过掌握其基本语法和常用命令,你可以编写出高效、自动化的脚本,极大地提高工作效率。希望本文能为你的Shell编程之旅提供一个良好的起点。在Shell中,变量用于存储数据。在Shell中,你可以定义自己的函数来封装一系列命令。符号来引用变量的值。
2024-07-28 17:44:33
261
原创 Shell编程基础概述
Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。简单来说,Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。也可以这样认为,Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。
2024-07-28 17:42:06
393
原创 Linux——系统监控与性能调优
Linux的系统监控与性能调优是确保系统稳定、高效运行的重要任务。以下将分别介绍Linux系统监控和性能调优的各个方面。
2024-07-28 17:33:50
383
原创 Linux——进程与任务管理
Linux的进程与任务管理是一个复杂但至关重要的系统操作方面,它涵盖了进程的创建、监控、调度、终止以及任务的安排与执行等多个方面。
2024-07-28 17:31:23
276
原创 Linux ——文件基本属性
文件类型普通文件:最常见的文件类型,包括文本文件、二进制文件等。目录文件:用于存储其他文件和目录的特殊文件,其名称以d开头。字符设备文件:用于表示串行端口的接口设备,如键盘、鼠标等,以c开头。块设备文件:用于存储数据以供系统存取的接口设备,如硬盘,以b开头。链接文件:分为硬链接和符号链接(软链接),其中符号链接以l开头,它包含了另一个文件的路径。管道文件(FIFO)和套接字文件(socket):用于进程间通信的特殊文件类型,分别以p和s开头。文件权限。
2024-07-28 17:29:04
943
原创 linux——通配符使用
通配符、管道符和重定向是Linux命令行中的高级用法,它们极大地提高了命令行的灵活性和效率。通过合理使用这些机制,用户可以轻松实现文件查找、批量操作、数据处理和日志记录等任务。
2024-07-28 17:17:28
436
原创 Linux发行版选择
在Linux的广阔宇宙中,发行版(Distribution,简称Distro)如同繁星点点,每一颗都散发着独特的光芒,吸引着不同领域、不同需求的用户。Linux发行版是基于Linux内核开发的操作系统,它们通过集成不同的软件包、桌面环境、管理工具和服务,为用户提供了多样化的选择和灵活的定制能力。本文将带您走进Linux发行版的世界,探索如何在众多选项中做出最适合自己的选择。
2024-07-28 17:05:49
436
原创 Linux——引言
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNIK的多用户、多任务、支持多线程和多CPU的操作系统。作为一款免费使用和自由传播的类Unix操作系统,自其诞生以来,便在全球范围内获得了广泛的认可与应用。
2024-07-28 16:56:19
459
原创 第十章 计算机网络——应用层
DNS是一个分布式命名系统,用于将域名(如www.example.com)转换为对应的IP地址(如192.0.2.1)。它构建了一个分布式数据库,将易记的域名映射到计算机可以直接理解的IP地址上,从而简化了互联网上的资源访问过程。
2024-07-28 16:45:37
803
原创 第九章 计算机网络——运输层
UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。发送数据之前不需要建立连接UDP 的主机不需要维持复杂的连接状态表。UDP 用户数据报只有8个字节的首部开销。网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
2024-07-28 14:04:40
1050
原创 第八章 计算机网络——网络互连
当主机 A 要向另一个主机 B 发送数据报时,先要检查目的主机 B 是否与源主机 A 连接在同一个网络上。如果是,就将数据报直接交付给目的主机 B 而不需要通过路由器。但如果目的主机与源主机 A 不是连接在同一个网络上,则应将数据报发送给本网络上的某个路由器,由该路由器按照转发表指出的路由将数据报转发给下一个路由器。这就叫作间接交付。
2024-07-22 00:22:02
1017
原创 第七章 计算机网络——广域网
当主机之间的距离较远时,例如,相隔几十或几百公里,甚至几千公里,局域网显然就无法完成主机之间的通信任务。这时就需要另一种结构的网络,即广域网。即使是覆盖范围很广的互联网,也不是广域网,因为在这种网络中,不同网络的“互连”才是其最主要的特征。广域网是单个的网络,它使用结点交换机连接各主机而不是用路由器连接各网络。结点交换机在单个网络中转发分组,而路由器在多个网络构成的互联网中转发分组。连接在一个广域网(或一个局域网)上的主机在该网内进行通信时,只需要使用其网络的物理地址即可。
2024-07-21 21:44:59
1150
2
原创 第六章 计算机网络——局域网
局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。局域网具有如下的一些主要优点: 能方便地共享昂贵的外部设备、主机以及软件、数据。从一个站点可访问全网。便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。提高了系统的可靠性、可用性和残存性。静态划分信道 频分复用 时分复用 波分复用 码分复用动态媒体接入控制(多点接入) 随机接入 受控接入 ,如多点线路探询(polling),或轮询。
2024-07-21 21:29:34
787
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人