PgSQL 使用技巧总结

简介: PgSQL 使用技巧总结

我的使用感受


  1. 首先两者的语法基本一致,基本使用没有太大区别
  2. PgSQL 有 SEQUENCE 的概念,它不能像MySQL一样设置主键id自增就可以了,PgSQL 在我们创建新表的时候要给主键创建 SEQUENCE。(序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。
  3. PgSQL 的字段如果是驼峰命名,我们在查询的时候要用双引号""包裹起来,否则会找不到,因为大写字母会被自动转成小写字母
  4. PgSQL 的 json 类型非常强大好用,也是因为今天学习了 json 类型的用法,仿佛打开了新世界的大门,整理了这篇文章。
  5. PgSQL在创建表之后几乎不能修改字段的顺序,我有调研过,是有解决办法的,但是异常繁琐,所以用了几乎这个词。而MySQL就没有这个问题,比如我们通过可视化工具拖拽字段的顺序,点击保存就可以了。(如果习惯了通过可视化工具查看数据,但是又不支持修改字段排序时间挺痛苦的事情;所以我习惯着弃用可视化工具,开始用sql命令查询数据了,习惯了也是挺爽的。)


技巧总结


PgSQL 支持对json类型字段指定group by


说明:


  • message 是json类型
  • 其中 title content是 message中的字段


SELECT userid,message->>'title',message->>'content',COUNT(*) as mcount from tbl_system_message WHERE "type" = 7 and message->>'title' !='xxx' GROUP BY userid,message->>'title',message->>'content' ORDER BY mcount DESC limit 100


根据两个字段group by


SELECT code,userid,"count"(*) as mcount FROM tbl_invite_code_consume GROUP BY code,userid ORDER BY mcount DESC


查询重复数据


  • 查询name相同的数据,并统计个数


SELECT DISTINCT name,COUNT(*) FROM tbl_school_info GROUP BY name HAVING COUNT(*) > 1;


删除重复数据


  • 删除name相同的数据,保留id最大的那个值


DELETE from tbl_school_info where "id" NOT IN (SELECT max("id") FROM tbl_school_info GROUP BY "name")


创建表


创建表结构的同时要创建索引


create table tbl_video_check_job(
  id bigserial not null primary key,
  "jobId" varchar(40) not null,
  "requestId" varchar(40),
  "mediaId" varchar(40) not null,
  unionid varchar(40),
  suggestion varchar(10),
  label varchar(20),
  result json,
  createtime bigint,
  updatetime bigint
);
create index idx_video_check_job_jobid on tbl_video_check_job("jobId");


between and


  • 是包含左右边界的


a between x and y 


等效于


a >=x and a <=y



公众号:程序员升级打怪之旅

微信号:wangzhongyang1993


相关文章
|
域名解析 网络协议 Linux
curl 和 wget 的使用和区别
curl 和 wget 的使用和区别
560 0
|
存储 数据库 索引
客户端存储 —— IndexedDB 实现分页查询(下)
客户端存储 —— IndexedDB 实现分页查询
755 0
|
分布式计算 Kubernetes Java
spark on k8s 镜像构建
spark on k8s 镜像构建
942 0
|
缓存 网络协议 网络架构
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
|
4月前
|
分布式计算 Kubernetes 调度
Kubeflow-Spark-Operator-架构学习指南
本指南系统解析 Spark Operator 架构,涵盖 Kubebuilder 开发、控制器设计与云原生集成。通过四阶段学习路径,助你从部署到贡献,掌握 Kubernetes Operator 核心原理与实战技能。
265 0
|
缓存 关系型数据库 PostgreSQL
PostgreSQL自增ID的初始化语句
【5月更文挑战第10天】PostgreSQL自增ID的初始化语句
767 2
|
人工智能 数据可视化 关系型数据库
快速构建,JeeLowCode让你的应用开发速度飞起来#快速开发
低代码平台通过直观的图形化界面和模块化设计,大幅缩短开发周期、降低成本,使企业无需大量技术人员即可快速构建应用。其可视化开发、高效数据处理、模型驱动开发、AI智能助力及灵活扩展的插件生态,帮助企业应对复杂业务需求,实现快速迭代与市场响应,推动数字化转型。平台支持多种数据库和跨平台兼容,内置五大核心引擎,提供丰富的底层组件和自定义功能,确保开发效率与应用质量。开源框架与定制开发支持二次开发,进一步提升灵活性与可靠性。低代码平台让开发更简单、高效,助力企业释放创新潜力。
645 19
|
缓存 负载均衡 应用服务中间件
Nginx如何反向代理后端服务?
【7月更文挑战第7天】
617 1
Nginx如何反向代理后端服务?
|
安全 Java 数据安全/隐私保护
Spring Boot中的安全漏洞防护
Spring Boot中的安全漏洞防护
POI(excel)中ROW应用实践应用总结
POI(excel)中ROW应用实践应用总结
539 2

热门文章

最新文章