- 博客(1485)
- 资源 (1)
- 收藏
- 关注
原创 Windows命令行目录与文件操作
它主要用于检测并修复 Windows 系统文件的损坏或篡改。md(Make Directory)是 Windows 命令行(CMD)中用于创建新目录(文件夹)的命令,是 mkdir的简写形式(两者功能完全相同)。rd(Remove Directory)是 Windows 命令行(CMD)中用于删除目录(文件夹)的命令,是 rmdir的简写形式(两者功能相同)。在 Windows 命令提示符(CMD)中,fc(File Compare)命令用于逐行比较两个文件或文件集的内容差异,并输出详细的对比结果。
2025-10-20 00:19:51
954
原创 Excel——常用函数三
这些函数统称为 IS 函数,此类函数可检验指定值并根据结果返回 TRUE 或 FALSE。例如,如果参数 value 引用的是空单元格,则 ISBLANK 函数返回逻辑值 TRUE;否则,返回 FALSE。以下列表描述了可用于 info_type 参数的文本值。必须在 CELL 函数中输入这些值,并用引号 (“ ”)。
2025-09-25 15:03:30
1382
原创 Excel——常用函数二
需要在表格或区域中按行查找内容时,请使用 VLOOKUP。例如,按部件号查找汽车部件的价格,或根据员工 ID 查找员工姓名。返回表元素或数组元素的值,该元素是通过行号和列号索引选定的。当函数 INDEX 的第一个参数为数组常量时,使用数组形式。返回指定的行与列交叉处的单元格引用。如果引用由不连续的选定区域组成,可以选择某一选定区域。
2025-09-24 22:21:29
1153
原创 Excel——常用函数一
例如,公式 =SUMIF(B2:B5, “John”, C2:C5) 只对区域 C2:C5 中在区域 B2:B5 中所对应的单元格等于“John”的值求和。也即如果(单元格 F2 中的值等于 1,则返回的值位于单元格 D2,如果单元格 F2 中的值等于 2,则返回的值位于单元格 D3,并以此类推,如果其他条件均不满足,则最后返回的值位于 D8)。也即如果(A2 大于 89,则返回“A”,如果 A2 大于 79,则返回“B”并以此类推,对于所有小于 59 的值,返回“F”)。包含零值的单元格不计算在内。
2025-09-22 15:32:03
1165
原创 PostgreSQL——元命令
PostgreSQL 提供了一系列元命令(meta-commands),这些命令以反斜杠(\)开头,用于执行各种数据库管理任务。这些命令在 psql 命令行工具中特别有用。
2025-09-16 15:49:52
1005
原创 PostgreSQL——分区表
执行以上命令后,log ins201802分区不再属于分区表log_ins的分区,但log_ins_history_201802表依然保留可供查询,这种方式相比方法一提供了一个缓冲时间,属于比较稳妥的删除分区方法,因为在拿掉子表继承关系后,只要没删除这个表,还可以使子表重新继承父表。然后刷新触发器函数log_ins_insert_trigger(0,添加相应代码,将符合路由规则的数据插入新分区,详见之前定义的这个函数,这步完成后,添加分区操作完成,可通过d+log_ins命令查看log_ins的所有分区。
2025-09-15 23:31:18
1049
1
原创 PostgreSQL——并行查询
了解并行 index-only 扫描之前首先介绍下index-only扫描,顾名思义,index-only扫描是指只需扫描索引,也就是说SQL 仅根据索引就能获得所需检索 的 数据,而不需要通过索引回表查询数据。介绍并行顺序扫描之前先介绍顺序扫描(sequential scan),顺序扫描通常也称之为扫描,全表扫描会扫描整张表数据,当表很大时,全表扫描会占用大量CPU、内存、源,对数据库性能有较大影响,在OLTP事务型数据库系统中应当尽量避免。
2025-09-13 21:40:09
1009
原创 PostgreSQL15——Java访问PostgreSQL
JDBC (Java Database Connectivity)是 Java 语言中用于访问数据库的应用程序接口(API)。JDBC 提供了操作关系数据库的标准方法,属于 Java Standard Edition 平台的一部分。
2025-09-11 00:02:32
1068
原创 PostgreSQL15——触发器
PostgreSQL 触发器 (trigger)是一种特殊的函数,当某个数据变更事件(INSERT、 UPDATE、DELETE 或者 TRUNCATE 语句)或者数据库事件(DDL 语句)发生时自动执行,而不是由用户或者应用程序进行调用。基于某个表或者视图数据变更的触发器被称为数据变更触发器(DML 触发器),基于数据库事件的触发器被称为事件触发器(DDL 触发器)。一般我们更多使用的是数据变更触发器。
2025-09-09 21:43:04
834
原创 PostgreSQL15——PL/pgSQL 存储过程
除了标准SQL 语句之外, PostgreSQL 还支持使用各种过程语言(例如 PL/pgSQL、 C、 PL/Tcl、PL/Python、PL/Perl、PL/Java 等 )创建复杂的过程和函数,称为存储过程(Stored Procedure)和自定义函数(User-Defined Function)。存储过程支持许多过程元素,例如控制结构、循环和复杂的计算。减少应用和数据库之间的网络传输。
2025-09-09 18:29:44
782
原创 PostgreSQL15——视图
视图(View)本质上是一个存储在数据库中的查询语句。视图本身不包含数据,也被称为虚拟表。我们在创建视图时给它指定了一个名称,然后可以像表一样对其进行查询。替代复杂查询,减少复杂性。将复杂的查询语句定义为视图,然后使用视图进行查询,可以隐藏具体的实现;提供一致性接口,实现业务规则。在视图的定义中增加业务逻辑,对外提供统一的接口;当底层表结构发生变化时,只需要修改视图接口,而不需要修改外部应用,可以简化代码的维护并减少错误;控制对于表的访问,提高安全性。通过视图为用户提供数据访问,而不是直接访问表。
2025-09-08 13:52:52
1064
原创 PostgreSQL15——索引与优化
name text如果没有索引,数据库需要扫描整个表才能找到相应的数据。Parallel Seq Scan 表示并行顺序扫描,执行消耗了 12s;由于表中有包含大量数据,而查询只返回一行数据,显然这种方法效率很低。如果在 id 列上存在索引,则可以通过索引快速找到匹配的结果。创建索引需要消耗一定的时间。Index Scan 表示索引扫描,执行消耗了 20ms;这种方式类似于图书最后的关键字索引,读者可以相对快速地浏览索引并翻到适当的页面,而不必阅读整本书来找到感兴趣的内容。
2025-09-07 22:18:11
983
原创 PostgreSQL15——事务与并发控制
对于业务开发人员来说,我们一般使用PostgreSQL 的默认隔离级别,因为它的MVCC 实现消除了大部分的锁等待问题。虽然此时可能产生不可重复读、幻读和更新丢失,但是并不会导致数据的不一致性,因为这些都是其他事务的正常操作。回滚之后,事务中的数据修改都会被撤销,账户 UserC 并没有创建成功。因为上面的事务还没有提交,事务的隔离性使得我们无法看到其他事务未提交的修改。如果一个事务已经修改某个数据而且未提交,则另一个事务不允许同时修改该数据(必须等待),写操作一定是相互阻塞的,需要按照顺序执行。
2025-09-07 17:07:19
830
原创 PostgreSQL15——DML 语句
包括插入数据的 INSERT 语句、更新数据的UPDATE 语句、删除数据的 DELETE 语句,以及合并数据的 MERGE 语句。
2025-09-05 22:41:15
1029
原创 PostgreSQL15——窗口函数
是窗口函数的名称;expression是函数参数,有些函数不需要参数;OVER 子句包含三个选项:分区(PARTITION BY)排序(ORDER BY)窗口大小(frame_clause)
2025-08-31 14:25:29
929
原创 PostgreSQL15——通用表表达式(CTE)
通用表表达式(Common Table Expression、CTE)是一个临时的查询结果或者临时表,可以在其他 SELECT、INSERT、UPDATE 以及 DELETE 语句中使用。通用表表达式只在当前语句中有效,类似于子查询。
2025-08-31 00:08:39
1105
原创 PostgreSQL15——集合运算
数据库中的表(table)本质上就是由行(row)组成的集合。UNIONINTERSECTEXCEPT集合操作符要求参与运算的两个查询结果具有相同数量的列,以及对应列的类型必须匹配或兼容。
2025-08-30 22:41:39
724
原创 PostgreSQL15——子查询
子查询(Subquery)是指嵌套在其他SELECT、INSERT、UPDATE 以及 DELETE 语句中的查询语句。
2025-08-29 22:17:17
937
原创 PostgreSQL15——常用函数
current_timestamp、clock_timestamp()、localtimestamp、now()、statement_timestamp()等;运算符用于将timestamp without time zone、 timestamp WITH time zone 以及time WITH time zone 转换为指定时区中的时间。函数用于将timestamp、timestamp WITH time zone、date、time 或者 interval 数据截断到指定的精度。
2025-08-28 20:53:58
1223
原创 PostgreSQL15——CASE 条件表达式
CASE 表达式的作用就是为 SQL 语句增加类似于的逻辑处理功能,可以根据不同的条件返回不同的结果。和。NULLIF和COALEASE。
2025-08-25 11:02:24
1075
原创 PostgreSQL15——查询详解
其中,COUNT(*)返回了该部门员工的总数(5),COUNT(DISTINCT salary)返回了薪水不相同的员工数量(4),COUNT(commission_pct)返回了佣金百分比不为空值的数量(0),该部门员工都没有佣金提成。对于外连接,需要注意 WHERE 条件和 ON 条件之间的差异:ON 条件是针对连接之前的数据进行过滤,WHERE 是针对连接之后的数据进行过滤,同一个条件放在不同的子句中可能会导致不同的结果。也就是说,只要前面的表达式能够决定最终的结果,不进行后面的计算。
2025-08-23 22:06:54
1029
原创 PostgreSQL15——管理表空间
表空间的名称不能以 pg_开头,它们是系统表空间的保留名称;LOCATION 参数必须指定绝对路径名,指定的目录必须是一个已经存在的空目录,PostgreSQL 操作系统用户(postgres)必须是该目录的拥有者,以便能够进行文件的读写。在PostgreSQL 中,表空间(tablespace)表示数据文件的存放目录,这些数据文件代表了数据库的对象,例如表或索引。默认情况下,执行 CREATE TABLESPACE 语句的用户为该表空间的拥有者,也可以使用OWNER 选项指定拥有者。
2025-08-21 17:11:12
1237
原创 PostgreSQL15——管理数据表
以上语句出错的原因在于新增的字段 notes 存在非空约束,但是对于已有的数据该字段的值为空。除了表之外,其他的模式对象,例如索引、函数、类型等等,也遵循相同的原则。表级约束和字段约束类似,只不过它是基于整个表定义的约束,还能够为约束指定自定义的名称。不过需要注意的是,如果表中已经存在数据,新增字段的默认值有可能会违反指定的约束。删除约束通常需要知道它的名称,可以通过 psql 工具的\d table_name 命令查看表的约束。添加字段与创建表时的字段选项相同,包含字段名称、字段类型以及可选的约束。
2025-08-21 16:01:28
800
原创 PostgreSQL15——数据库与模式
注意,只有超级用户或者数据库的拥有者才能修改数据库的默认会话变量。删除数据库会同时删除该数据库中所有的对象,以及文件系统中的数据目录。以pg_开头的名称是系统保留的模式名称,用户无法创建这样的模式。创建了模式之后,我们就可以在模式中创建各种数据库对象,例如表、数据类型、函数以及运算符等等。数据库集群,每个 PostgreSQL 实例管理的都是一个数据库集群,它可以包含多个数据库。其中,action 指定了要执行的修改操作,例如修改数据库的名称、所有者、默认表空间、数据库会话变量的默认值等等。
2025-08-19 16:43:52
1061
原创 PostgreSQL15——用户和角色
PostgreSQL 通过角色的概念来控制数据库的访问权限。角色又包含了两种概念,具有登录权限的角色称为用户,包含其他成员(也是角色)的角色称为组(group)。因此,一个角色可以是一个用户,也可以是一个组,或者两者都是。角色可以拥有数据库对象(例如表和函数),并且可以将这些对象上的权限授予其他角色,从而控制对象的访问。此外,一个组中的成员可以拥有该组所拥有的权限。
2025-08-19 14:59:27
874
原创 PostgreSQL——用户管理
PostgreSQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的各种权限。SUPERUSER拥有对数据库操作的最高权限,可以完成对数据库的所有权限检查。为了保证PostgreSQL的安全,建议用户谨慎使用SUPERUSER,不要轻易创建它,最好使用非超级用户完成用户的大多数工作。组角色可以拥有数据库对象(比如表),以及可以把这些对象上的权限赋予其他角色,以控制谁拥有访问哪些对象的权限。一个数据库角色可以有一系列属性,这些属性定义它的权限,以及与客户认证系统的交互。
2025-08-17 16:38:29
1474
原创 PostgreSQL——事务处理与并发控制
事务要有非常明确的开始和结束点,PostgreSQL中的每一条数据操作语句,例如SELECT、INSERT、UPDATE和DELETE都是隐式事务的一部分。即使只有一条语句,系统也会把这条语句当作一个事务,要么执行所有语句,要么什么都不执行。在Postgr©SQL中,由事务管理器负责管理事务运行的模块,主要结构如图所示。事务管理器是事务系统的中枢,通过接收的信息,处理下一步的事务操作。锁管理器主要提供在事务的写阶段并发控制所需要的各种锁,从而保证事务的各种隔离级别。
2025-08-16 16:57:24
1053
原创 PostgreSQL——触发器
BEFORE触发器通常在语句开始做任何事情之前触发,AFTER触发器则在语句结束时触发。触发程序与表相关,当对表执行INSERT、DELETE或UPDATE语句时,将激活触发程序。如果定义INSERT之前,表明在数据库插入之前,先调用触发器,再执行触发器函数。从执行的结果来看,在studentl表插入记录之后,触发器计算插入到studentl表中的数据,并将结果插入到studentl stats表中相应的位置。在某些触发程序的用法中,可用于检查插入到表中的值,或对更新涉及的值进行计算。
2025-08-14 22:32:16
623
原创 PostgreSQL——视图
视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。视图还可以从己经存在的视图基础上定义。视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改和删除。当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。
2025-08-14 17:23:06
1368
原创 PostgreSQL——索引
索引是一个单独的、存储在磁盘上的数据库结构,它们包含着对数据表里所有记录的引用指针。使用索引可以快速找出在某个或多个列中有一特定值的行,所有PostgreSQL列类型都可以被索引,对相关列使用索引是提高查询操作效率的最佳途径。。如果没有索引,必须遍历整个表,直到num等于10000的这一行被找到为止:如果在num列上创建索引,PostgreSQL不需要任何扫描,直接在索引里面找10000,就可以得知这一行的位置。可见,索引的建立可以提高数据库的查询速度。
2025-08-13 21:51:44
1691
原创 PostgreSQL——数据查询
包含星号通配符和选字段列表,表示查询所有的字段,表示查询指定的字段。字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不要加逗号。:表1和表2表示查询数据的来源,可以是单个或者多个。是可选项,如果选择该项,[查询条件]将限定查询行必须满足的查询条件该子句告诉PostgreSQL如何显示查询出来的数据,并按照指定的字段分组该子句告诉PostgreSQL按什么样的顺序显示查询出来的数据,可以进行的排序有:、该子句告诉PostgreSQL每次显示查询出来的数据条数。
2025-08-13 00:01:41
1195
原创 PostgreSQL——插入、更新与删除数据
其中,table name指定要插入数据的表名,column list指定要插入数据的那些列,value list指定每个列应对应插入的数据。注意,使用该语句时字段列和数据值的数量必须相同。其中,table name指定要执行别除操作的表:[WHERE]为可选参数,指定别除条件,如果没有WHERE子句,DELETE语句将删除表中的所有记录。
2025-08-05 22:15:35
522
原创 PostgreSQL——函数
DECODE(crypt_str,pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str,cypt_str是由ENCODEO返回的字符串。REPEAT(s,n)返回一个由重复的字符串s组成的字符串,n表示重复生成的次数。LOCALTIME函数的作用是将当前时间以’HH:MM:SS’的格式返回,唯一和CURRENT_TIME函数不同的是,返回的是不带时区的值。该函数表示,如果value值等于某个vn,则返回对应位置THEN后面的结果:如果与所有值都不相等,则返回ELSE后面的m。
2025-08-05 15:10:16
1126
原创 PostgreSQL——数据类型和运算符
运算符是用来告诉PostgreSQL执行特定算术或逻辑操作的符号。PostgreSQL的内部运算符很丰富,主要有四大类,具体如下。
2025-08-04 22:28:57
1308
原创 PostgreSQL——表的基本操作
数据表之间存在外键关联的情况,如果直接删除父表,结果会显示失败,原因是直接删除将破坏表的参照完整性。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键必须等于另一个表中主键的某个值。唯一性约束(Unique Constraint)要求添加该约束的列字段的值唯一,允许为空,但只能出现一个空值。对于使用了非空约束的字段,如果用户在添加数据时,没有指定值,数据库系统会报错。定义数据表tb_emp5,并在tb_emp5表上创建外键约束,关联到tb_dept1的主键id。
2025-08-04 11:08:28
1079
原创 FFmpeg——基础知识及FFmpeg框架
首先要分清楚媒体文件和编码的区别:文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;文件当中的视频和音频的压缩算法才是具体的编码。也就是说一个.avi 文件,当中的视频可能是编码 a,也可能是编码b,音频可能是编码 5,也可能是编码 6,具体的用那种编码的解码器,则由播放器按照 avi 文件格式读取信息去调用了。编码系列内容MPEG 系列:(由ISO[国际标准组织机构]下属的MPEG[运动图象专家组]开发 )
2025-07-05 16:59:15
922
原创 OpenCV——霍夫变换
180°)时的p值,如果累加器中有这个值,则给这个值投一票,对所有像素投完票后,找到累加器中的最大值对应的p和0,这两个参数对应的直线就是检测结果。可以看出,最多直线形成的交点是 M点和N点,相交直线有3条,其余交点都只有2条直线相交,因此,最后检测到的直线就是 M点和N点在笛卡儿坐标中对应的直线,即 ACE和 BCD,如图©所示。程序中有一个变量len 是指画线的长度,因为标准霍夫变换中输出的是直线的p和0,而根据这两个参数得到的是直线(没有起始点和终止点)而不是线段,所以需要指定线的长度。
2025-06-23 22:30:26
1103
原创 OpenCV——轮廓检测
某些轮廓是没有子轮廓、父轮廓或同一层次的下一个轮廓的,这时用-1 表示。例如,2号轮廓可以表示为[3,-1,-1,1],因为它只有 Next (3 号轮廓,用3表示)和 Parent(1号轮廓,用1表示),没有 Previous 和 First Child(用-1 表示)。如图所示,这个嵌套的图形中有6个轮廓,分别标记为 1~6号,它们之间有层级关系,其中1号轮廓在最外面,它的层级比其他的轮廓都要高。1号轮有3个子轮,分别为 2、3 和 5号轮廓,其中3号轮廓又有4号子轮廓,5 号轮廓又有6号子轮廓。
2025-06-23 02:14:23
1256
原创 OpenCV——边缘检测
Sobel算子和Scharr算子进行边缘检测的效率较高,但是它们具有方向性,需要先分别在x方向和y方向求导,然后根据两个结果经计算后才可以得到图像的边缘。双阌值法设置 minVal 和 maxVal 两个阈值,当候选的边缘点的梯度幅值高于 maxVal 时被认为是真正的边界,当低于 minVal 时则被抛弃:如果介于两者之间,则要看这个点是否与某个被确定为真正的边界的像素相连,如果是,则认定为边界点,否则该点被抛弃。当然,为了得到较好的边缘,Canny算法耗费的时间也比较长。
2025-06-21 01:04:26
1362
vuedevtools安装.zip
2019-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅