自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Postgresql中null值和空字符串举例详解例子解析

NULL表示未知或缺失的值。空字符串''表示一个明确的空值。在比较时,NULL和空字符串的行为不同。使用IS NULL和来检查NULL值。使用和!来检查空字符串。

2025-03-12 10:41:32 375

原创 PostgreSQL 如何有效地处理数据的加密和解密

除了使用pgcrypto扩展提供的函数,还可以根据业务需求自定义函数来实现更复杂的加密和解密逻辑。以下是一个简单的示例,使用自定义函数进行简单的替换加密:DECLAREBEGINEND LOOP;END;END;解释:在上述自定义函数中,函数将输入文本的每个字符的 ASCII 码值增加 1 进行加密,函数将加密后的字符的 ASCII 码值减少 1 进行解密。

2025-03-07 16:53:05 1056

原创 PostgreSql处理Null与空字符串

在使用 PostgreSql时,实际场景中会出现某个字段为空或空字符串,就取另外一个字段或给默认值,在Oracle数据库中用函数NVL就行实现,那么在PostgreSql可以使用COALESCE函数,与Oracle的NVL一样接收两个参数。区别在于NVL函数的第一个参数对NULL与空字符串,都识别为空,而COALESCE只识别NULL。函数,意思是第一个参数与第二个参数一致,就返回。与空字符串的默认值,看下对空字符串是否生效。字段为空字符串,结果还是空字符串,,结果设置了默认值。

2025-02-28 17:05:30 369

原创 PG在转换null值时,需要注意 CASE WHEN与 COALESCE 的区别 目录

在把ORACLE迁移到PG过程中,我们经常需要转换ORACLE的 DECODE,但是如果将更DECODE(C,NULL,0, C) 进行转换的话,我们可以选择用 CASE WHEN 或 COALESCE 两种方案;但如果是DECODE(C,NULL,0) 进行转换的话,我们就只能选持CASE WHEN。coalesce(c, 0) cc 等价于 CASE WHEN c is null THEN 0 else c END as cc (有else判断)

2025-02-28 16:57:40 335

原创 oracle中decode怎么转换成pg

对于 PostgreSQL 中的 Oracle DECODE 函数,可以使用 CASE 表达式或联合。CASE 表达式根据条件返回第一个匹配的结果,语法为:CASE WHEN 条件 THEN 结果 ELSE 结果 END。联合通过 UNION ALL 操作符组合多个 SELECT 语句,返回一个包含满足每个条件的结果列的表。在 PostgreSQL 中,没有与 DECODE 函数完全相对应的函数,但可以使用 CASE 表达式或联合来实现类似的功能。上述查询将返回一个表,其中每行都包含一个满足条件的结果列。

2025-02-12 16:58:01 362

原创 如何在PostgreSQL脚本的循环内使用游标

使用游标可以方便地在循环内对查询结果进行逐行处理,适用于需要对查询结果进行逐行操作的场景,例如数据的批量处理、数据的逐行计算等。

2025-02-10 12:55:28 228

原创 postgresql 游标(cursor)的使用

PostgreSQL游标可以封装查询并对其中每一行记录进行单独处理。当我们想对大量结果集进行分批处理时可以使用游标,因为一次性处理可能造成内存溢出。另外我们可以定义函数返回游标类型变量,这是函数返回大数据集的有效方式,函数调用者根据返回游标对结果进行处理。第一步声明游标.接着打开游标.然后从结果中取出行至目标变量中.之后,检查是否有更多的行可以继续取。如何有返回第三步,否则至第五步.最后,关闭游标.下面章节我们会详细说明每一步。

2025-02-08 23:49:24 1222

原创 Postgresql游标使用介绍

注意游标一般适用于大结果集,大结果集在内存中放不下 且 数据可以一条一条处理的情况 比较适合使用游标。下面介绍了三种游标声明的方式,分别给出了三种游标的Open方式,主要区别就是有没有绑定SQL:curs1 refcursor;和 curs2 CURSOR FOR SELECT c1 FROM tf1;有没有绑定值:curs3 CURSOR (key integer) FOR SELECT * FROM tf1 WHERE c1 > key;

2025-02-08 23:31:52 1010

原创 Postgresql 游标使用

游标不能是已经打开的,并且它必需是声明为一个未绑定的游标(也就是声明为一个简单的 refcursor 变量)。这种形式的 OPEN 用于打开一个游标变量,该游标变量的命令是在声明的时候和它绑定在一起的。要想这么做,该函数必须打开游标并且把该游标的名字返回给调用者,或者简单的使用指定的入口名或调用者已知的名字打开游标。一个绑定的游标变量其名字初始化为对应的字符串值,因此信使的名字和游标变量名同名,除非程序员在打开游标之前通过赋值覆盖了这个名字。了一个声明完整的命令,最后一个是绑定了一个带参数的命令。

2025-02-08 23:16:12 628

原创 PostgreSql-数学函数

需要注意的是,所有的这些函数都只接受数值类型的参数,如果你尝试使用非数值类型的参数,PostgreSQL将返回一个错误。CEIL(x) 或 CEILING(x): 此函数返回大于或等于x的最小整数。POW(a, b) 或 POWER(a, b): 此函数返回a的b次方。EXP(x): 此函数返回e的x次方,其中e是自然对数的底数。返回约2.71828。SQRT(x): 此函数返回x的平方根。CBRT(x): 此函数返回x的立方根。ABS(x): 此函数返回x的绝对值。LN(x): 此函数返回x的自然对数。

2025-02-07 17:16:11 170

原创 PostgreSQL函数自动Commit/Rollback所带来的问题

Oracle是可以在存储过程或函数里指定Commit/Rollback的,如果没有,则外部调用者可以回滚存储过程内部的操作。但在PostgreSQL,函数(存储过程)总是自动将其所有操作当作一个事务,外部无法对内部操作提交或回滚。问题好像已经解决,但留有一个疑问没弄明白,为什么PostgreSQL允许在函数体中加关于事务的begin...exception...end,但结果却好像是没提交?

2025-02-06 23:04:50 810

原创 PostgreSql 函数异常处理

如果没有错误发生,只有BEGIN块中的statements会被正常执行,然而一旦这些语句中有任意一条发生错误,其后的语句都将被跳过,直接跳转到 EXCEPTION块的开始处。此时系统将搜索异常条件列表,寻找匹配该异常的第一个条件,如果找到匹配,则执行相应的 handler_statements,之后再执行END的下一条语句。如果此时handler_statements中的语句发生新错误,它将不能被该EXCEPTION子句捕获,而是继续向外传播,交由其外层 的EXCEPTION子句捕获并处理。

2025-02-06 22:58:49 1037

原创 PostgreSQL存储过程和执行

在上面的例子中,我们首先创建了函数,然后才创建了函数。这是为了确保在函数尝试调用时,后者已经存在。

2025-02-06 22:39:44 682

原创 PostgreSql-COALESCE函数、NULLIF函数、NVL函数使用

是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的;这个是oracle中的函数,不过可以在pg数据库中创建函数来达到该目的;如果ex1与ex2相等则返回Null,不相等返回第一个。NVL函数是将NULL值的字段转换成默认字段输出;NULLIF(ex1,ex2)函数。

2025-02-06 17:37:10 503

原创 PostgreSQL :如何实现 rownum 的行号查询效果

在 Oracle 数据库中,Rownum 是非常常用的一个查询输出,通过 rownum 可以为结果记录增加一个类似行号的标识,在 PostgreSQL 数据库中缺省没有 Rownum 这个功能,但是可以通过分析函数来实现类似的效果。

2025-02-06 09:38:03 417

原创 PostgreSQL-字符串函数

替换字符串:SELECT REPLACE('aaaxxx','a','_');

2025-02-06 09:09:59 627

原创 PostgreSQL rownum实现方法

对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数。尽管pg中不支持oracle的rownum语法,但是我们可以针对oracle中rownum不同的使用场景制定对应的解决方案来支持同样的场景。要在pg中实现rownum我们得先弄清楚oracle中的rownum有什么作用,是如何使用的。pg自带的limit语法就可以很好的替代oracle中使用rownum分页的情况。

2025-02-05 17:33:33 895

原创 PostgreSQL clock_timestamp() 函数

PostgreSQL函数返回此函数执行时的日期和时间。同一个语句中的两次执行的返回值可能不同。

2025-01-05 22:38:50 340

原创 PostgreSql时间和日期字符串转换函数

SELECT to_char(date_trunc('year',now() + '-1 year'),'yyyy-mm-dd') -- 去年第一天。select to_char(date_trunc('month',current_date),'yyyy-mm-dd') -- 当月第一天。SELECT to_char(date_trunc('year',CURRENT_DATE),'yyyy-mm-dd') -- 当年第一天。-- 字符串分割函数,将分割出的数据转换成数组,可作为行转数组使用。

2024-12-12 21:23:32 1862

原创 PostgreSql数据类型

time [ (p) ] with time zone 12 字节 只用于一日内时间,带时区 00:00:00+1459 24:00:00-1459 1 毫秒 / 14 位。time [ (p) ] [ without time zone ] 8 字节 只用于一日内时间 00:00:00 24:00:00 1 毫秒 / 14 位。小数点后 16383 位。double precision 8 字节 可变精度,不精确 15 位十进制数字精度。

2024-12-12 20:56:34 1217

原创 PostgreSql日期时间类型及操作

本文探讨了不同数据类型在传递参数时的格式规范,包括日期(date)、时间(time)、时间戳(timestamp)、带时区的时间戳(timestamptz)和时间间隔(interval)。详细解析了各种格式的构成和应用场景,对于理解和处理时间数据具有指导意义。数据类型 传递参数 参数格式date 2022-08-16 年月日。

2024-12-12 17:40:41 1509

原创 PostgreSql数据库中的常用函数

select setval('"表名_id_seq"',(select max(id) from "表名"));select setval('表名_id_seq',(select max(id) from 同一个表名));其中分割字符需要是正则表达式中支持的字符才能分割,当使用|时会出现分割错误的情况,需要使用转移字符来解决。regexp_split_to_table()函数是利用正则表达式将字符串分割为表格,对指定值进行分割。eg:coalesce('col',0),当col为空时返回0;

2024-12-12 11:23:15 954

原创 postgresql-类型转换函数

类型转换函数用于将数据从一种类型转换为另一种类型。

2024-12-11 23:39:45 946

原创 PostgreSQL函数中使用now()或current_timestamp的异同

默认值设置:在创建表时,可以使用now()或current_timestamp函数作为默认值设置,以确保在插入数据时自动填充当前的日期和时间。时间比较:使用now()或current_timestamp函数可以与其他日期或时间字段进行比较,例如查找在某个时间之后进行的操作。记录操作时间戳:在插入或更新数据时,可以使用now()函数将当前时间戳写入特定的时间戳字段,以记录操作的时间。在PostgreSQL函数中使用now()或current_timestamp可以获取当前的日期和时间。

2024-12-10 23:52:54 423

原创 PostgreSQL 使用citd删除重复行

ctid是PostgreSQL表中的系统字段,表示数据行在它所在表内的物理位置。ctid的字段类型是oid。但是VACUUM FULL操作之后,经过回收数据块内的空闲空间,数据行在块内的物理位置会发生移动,即ctid会发生变化。第一种方法在表tb20记录比较多的情况下,效率比较差,第二种方法更高效。2. 使用ctid删除重复行。

2024-12-10 22:59:06 266

原创 PostgreSQL常用函数

select create_mapper_server('被映射的schema名字','host','port','数据库名','用户名','密码','接收数据的schema名','foreign_server_test')ST_GeomFomGeoJson ('geometry的json 数据') 将geojson数据转换为geometry数据对象。ST_GeomFromText('wkt字符串','坐标系')将wkt数据转换为geometry数据对象。

2024-12-06 17:48:16 882

原创 Postgresql 格式转换笔记整理

boolean 有"true"(真)或"false"(假)两个状态, 第三种"unknown"(未知)状态,用 NULL 表示。创建了一个名为week 的类型,包含'Sun','Mon','Tues','Wed','Thur','Fri','Sat'七类。PostgreSQL中三种字符类型没有性能差异,推荐用text或varchar,要求限制长度则用varchar(n)Postgresql提供了三种字符类型:char(n),varchar(n)和text,其中n是正整数。

2024-12-06 17:43:26 797

原创 POSTGRESQL跟ORACLE语法区别和相同之处

获取通用时间SELECT CURRENT_TIMESTAMP,oracle一般用sysdate,PG 还有current_date(),current_time();PG 使用方法select nextval('SEQ_NAME')Oracle 可以用begin xxx();oracle用rownum控制,pg用limit控制。在存过内部调用存过不需要写call ,直接写函数名称。Pg存过执行都是CALL XXX();也可以用{call xxx();

2024-12-06 16:02:52 536

原创 PostgreSQL和Oracle的sql差异

oracle的递归查询中level表示查询深度(或者递归层次),在PG中没有此含义的关键字,需要自行在with recursive实现。PG having语句必须在group by之后,oracle可以在group by之前。null和’’在oracle中是一致的,最终都会存储为null,在PG中会进行区分。Oracle delete语句可以没有from,pg必须要有from。[注:'999999' ---- 6位数为COL1字段的长度]PG中无效的别名,可以尝试加as关键字,例如name。

2024-12-06 16:02:00 1141

原创 dbms_obfuscation_toolkit 11g

所以,如果只是简单地把以上程序在oracle上运行一下就使用,那么任何有权限登陆的人看到这个程序,就可以知道密钥. 所以简单的做法是利用Oracle提供的WRAP把整个程序加密,用加密后的。包:dbms_obfuscation_toolkit.利用这个包,我们可以对数据进行DES,Triple DES或者MD5加密.不知细心的朋友注意到没有?而输出也是8的倍数,所以我们的字段长度也是8的倍数. 如果输入不是8的倍数。都是8的倍数, 再看一下我们的密码原文和加密后的密码也是8的倍数,这不是。

2024-11-08 09:59:28 762

原创 DBMS_OBFUSCATION_TOOLKIT 包

为了保护敏感数据,DM 提供一个数据加密包 dbms_obfuscation_toolkit。利用这个包,用户可以对数据进行 DES、DES3 加密,或者对数据进行 MD5 散列。

2024-11-07 12:57:52 869

原创 oracle 9i 使用dbms_obfuscation_toolkit加密解密

参数名称 类型 输入/输出默认值?也可以使用DESGETKEY获取Key。所以我们的字段长度也是。

2024-11-07 12:52:34 982

原创 Python列表循环的两种方法

列表循环的一种方法是,先获取列表的下标,然后迭代列表的每一个下标。#下标遍历列表循环的另一种方法是直接获取列表的每一个元素。#直接遍历。

2024-09-19 22:50:53 461

原创 Jupyter Notebook最常用的五大配置技巧

再说一遍,Jupyter是个神奇的工具,生产力与趣味性兼具,实用与美观并存。用好它,python会更加大放异彩的。

2024-09-17 22:19:08 910

原创 pip和conda 添加国内清华镜像

直接在user目录中创建一个pip目录,如:C:\Users\xxxx\pip,新建文件pip.ini,内容如下,注意加trusted-host要不然老是出错。意思如果用conda安装包,会优先用https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/这个清华源。比如清华的源我之前只加了https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/但是有些包在别的地方,比如pytorch包在。

2024-09-17 18:56:31 6126

原创 python的可变变量和不可变变量

可变类型,添加或者修改数据时,变量对应的内存地址不会改变。也就是可变类型,一直在引用原来的内存地址。2. 可变类型的数据作为实参传递, 修改形参会导致实参跟着变化。不可变类型,一旦被重新赋值,变量对应的内存地址就会发生改变。1. 不可变类型的数据作为实参传递, 修改形参不影响实参。一个变量值,有多少个变量名绑定在上面,引用计数就为几。而del 变量名 则只是删除一个指针,不删除变量。注意,如果是重新赋值,内存地址就会发生改变。可变类型和不可变类型的区别。512以内的数字,不适用。查看变量的内存地址。

2024-09-07 23:43:32 305

原创 20个常用的Python镜像地址-指定使用镜像地址

8. 中国科学技术大学镜像:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/5. 华为云镜像:https://mirrors.huaweicloud.com/repository/pypi/simple/15. 西北大学镜像:https://mirrors.nwafu.edu.cn/pypi/web/simple/11. 南京大学镜像:https://mirrors.nju.edu.cn/pypi/simple/

2024-08-12 22:22:51 1895

原创 Django+anaconda

(1)打开learn目录中的views.py,修改其中的源代码附代码:#coding:utf-8 #声明编码是utf-8,because 代码中会用到中文,不声明就会报错哦from django.http import HttpResponse #引入httpResponse ,向网页返回内容,和Print差不多,只不过它把内容显示到网页def index(request): #老师一再强调,参数必须必须必须是request!return HttpResponse(u"欢迎光临,芬芬笔迹。

2024-08-12 21:40:04 885

原创 CMD 常用命令总结

Windows 命令提示符(即 cmd.exe)是 Windows 系统平台下的一种命令行操作工具,用户可以通过输入命令来完成各种各样的系统或程序操作。虽然很多操作都可以通过图形程序完成,但也有非他不可的情况存在。因此了解一些日常可能用到的简单操作也是很必要的。下面就介绍一些「CMD 常用命令和操作技巧」,可以作为小白入门或者备忘录使用。输入help,查看帮助;Tab 键,自动补全;上/下方向键,查看历史命令;右键窗口标题栏 -> 属性,可以修改外观样式。

2024-08-12 21:15:30 951

原创 python的virtualenv虚拟环境安装

将requirements.txt中的包导入到其他虚拟环境: 导入包: pip install -r requirements.txt(或者pip install -r requirements.txt -ihttps://pypi.doubanio.com/simple)9.pycharm选择虚拟环境:New Project —》existing interpreter——》浏览——>选择虚拟环境路径。7.在使用workon查看是否新建虚拟环境成功,并进入到虚拟环境。linux下的安装虚拟环境安装。

2024-08-08 12:41:51 418

空空如也

空空如也

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

TA关注的人

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