【pgSql 海量数据库操作记录】
一、批量插入数据【测试用】1.1、sql 语法sql 模板DO$$DECLAREiinteger:1;BEGINWHILEi10LOOPINSERTINTOmy_table(col1,col2,col3)VALUES(value1,value2,i);i :i1;ENDLOOP;END$$;案例测试 sqlDO$$DECLAREiinteger:1;BEGINWHILEi100LOOPINSERTINTOcampaign.mc_answer_record(answer_record_id,answer_user_id,answer_user_name,answer_user_mobile,theme_id,theme,answer_category,pass,delete_status,create_user,create_time,update_user,update_time,theme_category_id,score,time_consuming,used_share_times,type,game_type)VALUES(mc_answer_record_seq.nextVal,i1,汤玉祥,18867087968,10630,第51期答题活动,春节民俗,0,0,5001,2023-10-25 19:49:59,NULL,NULL,3902,0,i1,NULL,NULL,NULL);i :i1;ENDLOOP;END$$;二、更改数据库字段类型2.1、sql 语法altertabletable_namealtercolumncolumn_nametype类型;例如altertableintermediatetablealtercolumnphonetypevarchar(100);2.2、新增表字段ALTERTABLEyour_tableADDCOLUMNnew_column datatype;ALTERTABLEyour_tableADDCOLUMNnew_column datatypeDEFAULTdefault_value;-- 新增字段并设置默认值COMMENTONCOLUMNyour_table.your_columnISThis is a comment for the column;-- 字段添加注释-- 示例altertablemc_answer_recordaddcolumnreceive_statuschar(1);COMMENToncolumnmc_answer_record.receive_statusis领取奖品状态0.待领取1.已领取2.3、查询 information_schema.columns 视图来获取表字段的注释信息-- 查询 information_schema.columns 视图来获取表字段的注释信息SELECTcolumn_name,column_commentFROMinformation_schema.columnsWHEREtable_nameyour_table;三、添加索引3.1、单个字段索引CREATEINDEXidx_your_columnONyour_table(your_column);-- 单个字段索引在这个示例中idx_your_column 是索引的名称your_table 是表的名称your_column 是要创建索引的字段。 你可以根据自己的需求选择不同的索引类型。PostgreSQL 支持多种类型的索引包括 B-tree、哈希、GiST、SP-GiST、GIN 和 BRIN 等。3.2、复合索引CREATEINDEXidx_your_columnsONyour_table(column1,column2,...);-- 复合索引四、查询排行版4.1、查询前 100 个用户的排行版SELECTanswer_user_id custNum,answer_user_name custName,answer_user_mobile phone,nvl(score,0)score,nvl(time_consuming,0)timeConsuming,DENSE_RANK()OVER(ORDERBYscoreDESCNULLSLAST,time_consuming NULLSLAST)ASrankFROM(SELECTanswer_user_id,answer_user_name,answer_user_mobile,score,time_consuming,ROW_NUMBER()OVER(PARTITIONBYanswer_user_idORDERBYscoreDESCNULLSLAST,time_consumingASC)ASrnFROMmc_answer_recordWHEREtheme_id#{campaignId,jdbcTypeNUMERIC}) TWHERErn1limit#{num, jdbcTypeNUMERIC}4.2、查询自己的排行名次SELECTanswer_user_id custNum,score score,time_consuming timeConsuming,answer_user_name custName,answer_user_mobile phone,rankFROM(SELECTanswer_user_id,score,time_consuming,answer_user_name,answer_user_mobile,DENSE_RANK()OVER(ORDERBYscoreDESCNULLSLAST,time_consuming NULLSLAST)ASrankFROMmc_answer_recordWHEREtheme_id#{campaignId,jdbcTypeNUMERIC})WHEREanswer_user_id#{userId,jdbcTypeNUMERIC}ANDrownum14.3、查询排名前 100 的用户SELECTcustNum,custName,phone,score,timeConsuming,rank from(SELECTanswer_user_id custNum,answer_user_name custName,answer_user_mobile phone,nvl(score,0)score,nvl(time_consuming,0)timeConsuming,DENSE_RANK()OVER(ORDERBYscoreDESCNULLSLAST,time_consumingNULLSLAST)ASrankFROM(SELECTanswer_user_id,answer_user_name,answer_user_mobile,score,time_consuming,ROW_NUMBER()OVER(PARTITIONBYanswer_user_idORDERBYscoreDESCNULLSLAST,time_consumingASC)ASrnFROMmc_answer_recordWHEREtheme_id#{campaignId,jdbcTypeNUMERIC})TWHERErn1ORDERBYscoreDESCNULLSLAST,time_consumingASC)where rank![CDATA[]]#{num,jdbcTypeNUMERIC}五、查询时间周期5.1、查询本周一 本周日的时间区间SELECTTRUNC(NEXT_DAY(sysdate-8,1)1),TRUNC(NEXT_DAY(sysdate-8,1)7)FROMmc_campaign;5.2、查询当天本周本月开始时间 结束时间但是在 sql 中进行了函数操作会导致索引失效建议直接放到代码中处理时间然后 sql 直接拼接处理好些choosewhen testdateType day--本日参与成功的数据SELECTCOUNT(1)FROMMC_CAMPAIGN_JION_RECORDaWHERETO_CHAR(a.JION_TIME,YYYY-MM-DD)TO_CHAR(now(),YYYY-MM-DD)andCAMPAIGN_ID#{campaignId,jdbcTypeNUMERIC}andCUST_NUM#{userId,jdbcTypeNUMERIC}andJION_STUTSin(1,2)andHOLD_TIMES1/whenwhen testdateType week--本周参与成功的数据SELECTCOUNT(1)FROMMC_CAMPAIGN_JION_RECORDWHEREJION_TIMEgt;TRUNC(NEXT_DAY(sysdate-8,1)1)ANDJION_TIMElt;TRUNC(NEXT_DAY(sysdate-8,1)7)1andCAMPAIGN_ID#{campaignId,jdbcTypeNUMERIC}andCUST_NUM#{userId,jdbcTypeNUMERIC}andJION_STUTSin(1,2)andHOLD_TIMES1/whenwhen testdateType month--本月参与成功的数据SELECTCOUNT(1)FROMMC_CAMPAIGN_JION_RECORDWHERETO_CHAR(JION_TIME,YYYY-MM)TO_CHAR(now(),YYYY-MM)andCAMPAIGN_ID#{campaignId,jdbcTypeNUMERIC}andCUST_NUM#{userId,jdbcTypeNUMERIC}andJION_STUTSin(1,2)andHOLD_TIMES1/whenotherwise--默认全部参与成功的数据SELECTCOUNT(1)FROMMC_CAMPAIGN_JION_RECORDWHERECAMPAIGN_ID#{campaignId,jdbcTypeNUMERIC}andCUST_NUM#{userId,jdbcTypeNUMERIC}andJION_STUTSin(1,2)andHOLD_TIMES1/otherwise/choose六、函数操作6.1、两张表关联字符串ids 关联 数字型id举例文章表存放的是分类id字符串【2022,2023,2024】这种一篇文章对应多个分类关联文章分类表分类ID-- 每次看执行计划养成良好习惯并且先在生产上执行一下看看速度explainSELECTA.ID,array_to_string(ARRAY_AGG(AC.CATEGORY_NAME),,)AScategoryName,A.ARTICLE_TITLEASarticleTitle,A.CREATE_TIMEAScreateTime,nvl(A.like_num,0)likeNum,nvl(A.collect_num,0)collectNum,nvl(A.read_num,0)readNum,nvl(A.comment_num,0)commentNum,(SELECTCOUNT(1)FROMcampaign.mc_share_record MWHEREA.IDM.busi_idANDM.busi_type1)shareNumFROMcampaign.mc_article ALEFTJOINcampaign.mc_article_category ACONAC.ARTICLE_CATEGORY_IDANY(string_to_array(regexp_replace(A.ARTICLE_CATEGORY_ID,[^\d], ,g), )::INT[])GROUPBYA.IDORDERBYA.CREATE_TIMEDESCNULLSLAST;执行效果图七、查询表字段注释为空脚本selectdistinctg.schemaname 用户名,c.relname 表名,cast(obj_description(relfilenode,pg_class)asvarchar)名称,a.attname 字段,d.description 字段备注,concat_ws(,t.typname,SUBSTRING(format_type(a.atttypid,a.atttypmod)from))as列类型frompg_class cleftjoinpg_attribute aona.attrelidc.oidleftjoinpg_type tona.atttypidt.oidleftjoinpg_description dond.objoida.attrelidandd.objsubida.attnumleftjoinpg_tables gonupper(g.tablename)upper(c.relname)wherea.attnum0andg.schemanamein(campaign,glmall,imauth,mallapp,mallcollect,mallgoodsdb,mallinf,mallmerchantdb,mallorderdb,mallreportdb,workflowdb)andd.descriptionisnulland(c.relnamenotlike%bak%andc.relnamenotlike%0%andc.relnamenotlike%1%andc.relnamenotlike%2%andc.relnamenotlike%3%andc.relnamenotlike%4%andc.relnamenotlike%5%andc.relnamenotlike%6%andc.relnamenotlike%7%andc.relnamenotlike%8%andc.relnamenotlike%9%andc.relnamenotlikeold_%)orderbyg.schemaname,c.relname;八、分类ids关联分类表搂出分类名称SELECTa.category_ids,array_to_string(array_agg(distinctb.category_name),,)ASchinese_namesFROMpms_goods_base_info aleftJOINpms_goods_category bONb.goods_category_idANY(string_to_array(a.category_ids,,)::int[])GROUPBYa.category_ids;效果图

相关新闻

企业 RAG 的检索注入:让知识库吐出机密文档的攻击面

企业 RAG 的检索注入:让知识库吐出机密文档的攻击面

企业 RAG 的检索注入:让知识库吐出机密文档的攻击面 一、检索结果成为新的攻击入口 RAG 系统让大模型用企业私有知识回答问题。有人觉得只要不把机密写进模型权重,把知识放向量库按权限检索就够安全,这个判断只对了一半。问题在于&#xff1a…

2026/7/24 20:19:04 阅读更多 →
脑电分析——复现22级学长代码

脑电分析——复现22级学长代码

本周我决定选择脑功能连接的方向,所以我主要是复现了晓颖学姐的代码。学姐使用的核心模型是MAS-DGAT-NET,通过查找,我在github中找到了模型定义的代码。我先将代码下载到VScode中。学姐实验主要分为两大阶段,第一阶段是通过对公开…

2026/7/24 20:19:04 阅读更多 →
融云聊天室再放大招,服务更完整、集成更便捷

融云聊天室再放大招,服务更完整、集成更便捷

9 月 21 日,融云直播课 社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频应用? 欢迎点击上方小程序报名~ 聊天室是直播、语聊房等社交泛娱乐产品的必备组件,它以“公屏”形态面向用户。关注【融云全球互联网通信云】了解更多 作为一个…

2026/7/24 20:18:04 阅读更多 →

最新新闻

3D模型到Minecraft结构体素化转换的完整探索

3D模型到Minecraft结构体素化转换的完整探索

3D模型到Minecraft结构体素化转换的完整探索 【免费下载链接】ObjToSchematic A tool to convert 3D models into Minecraft formats such as .schematic, .litematic, .schem and .nbt 项目地址: https://gitcode.com/gh_mirrors/ob/ObjToSchematic 你是否曾经梦想过将…

2026/7/24 20:26:06 阅读更多 →
Windows Defender深度清理方案:彻底移除系统安全组件资源占用

Windows Defender深度清理方案:彻底移除系统安全组件资源占用

Windows Defender深度清理方案:彻底移除系统安全组件资源占用 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirr…

2026/7/24 20:26:06 阅读更多 →
免费解锁WeMod高级功能:3分钟开启你的游戏增强之旅

免费解锁WeMod高级功能:3分钟开启你的游戏增强之旅

免费解锁WeMod高级功能:3分钟开启你的游戏增强之旅 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为WeMod Pro会员的订阅费用而犹…

2026/7/24 20:26:06 阅读更多 →
3步配置GitHub Actions定时任务:让股票智能分析系统每天自动为你工作

3步配置GitHub Actions定时任务:让股票智能分析系统每天自动为你工作

3步配置GitHub Actions定时任务:让股票智能分析系统每天自动为你工作 你是否每天花费大量时间手动查询股票行情、分析技术指标、阅读财经新闻?是否因为工作忙碌而错过重要的市场信号?现在,通过GitHub Actions的自动化能力&#x…

2026/7/24 20:26:06 阅读更多 →
提示词语气风格失控?90%的AI应用失败源于这3个隐形陷阱

提示词语气风格失控?90%的AI应用失败源于这3个隐形陷阱

更多请点击: https://codechina.net 第一章:提示词语气风格失控?90%的AI应用失败源于这3个隐形陷阱 当开发者精心设计了API网关、部署了向量数据库、甚至微调了专属模型,却在最终用户对话中频频遭遇“答非所问”“语气突兀”“身…

2026/7/24 20:26:06 阅读更多 →
Micrometer 系列【5】Counter 计数器

Micrometer 系列【5】Counter 计数器

文章目录1. 整体介绍1.1 基础概念1.2 计数器类型1.2.1 CumulativeCounter 累加计数器1.2.2 StepCounter 步进区间计数器1.2.3 DropwizardCounter 第三方适配器1.2.4 CompositeCounter 复合多路分发计数器1.2.5 NoopCounter 空操作无实现计数器1.3 核心规范1.4 使用方式3. 手动计…

2026/7/24 20:25:06 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻