PgSql使用技巧总结 PgSql和MySql的对比
mysql 总结 技巧 对比 PgSQL 使用
2023-09-11 14:20:01 时间
作者:王中阳Go
来源:公众号「程序员升级打怪之旅」
转载请联系授权(微信ID:wangzhongyang1993)
我在今年5月之前一直使用的MySQL,今年5月因为换工作的原因才开始使用PgSQL。
我的使用感受
- 首先两者的语法基本一致,基本使用没有太大区别
- PgSQL 有
SEQUENCE
的概念,它不能像MySQL一样设置主键id自增就可以了,PgSQL 在我们创建新表的时候要给主键创建SEQUENCE
。(序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。
) - PgSQL 的字段如果是驼峰命名,我们在查询的时候要用双引号
""
包裹起来,否则会找不到,因为大写字母会被自动转成小写字母 - PgSQL 的 json 类型非常强大好用,也是因为今天学习了 json 类型的用法,仿佛打开了新世界的大门,整理了这篇文章。
- 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
Last but not least
技术交流群请到 这里来。 或者添加我的微信 wangzhongyang1993 ,一起学习一起进步。
感谢大家的点赞、评论、关注;谢谢大佬们的支持,感谢 ღ( ´・ᴗ・` )比心
作者:王中阳Go
来源:公众号「程序员升级打怪之旅」
转载请联系授权(微信ID:wangzhongyang1993)
相关文章
- mysql索引总结(4)-MySQL索引失效的几种情况
- Mysql net start mysql启动,提示发生系统错误 5 拒绝訪问 解决之道
- 【MySQL高级】Mysql并发参数调整及常用SQL技巧
- 【MySQL高级】Mysql复制及Mysql权限管理
- Brew 卸载MySql以及安装Mysql
- MySQL日志详解(下篇)
- c#中mysql远程连接方法及实例
- MySQL 数据库设计 笔记与总结(3)物理设计
- MySQL 数据库设计 笔记与总结(1)需求分析
- Mysql读写分离(Mycat版)
- mysql 安装与配置、使用
- 基于Java(SSM+SpringBoot+Thymeleaf)+MySQL 开发的论坛社区网站【100010072】
- JDBC 连接 MySQL 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
- mysql树型结构查询父类函数,mysql递归查询父类函数
- Mysql运行状态查询命令及调优详解
- 【MySQL】2.3.4-NULL字段如何参与运算(空值参与运算)
- mysql故障解决笔记
- ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql (转)
- (0.2.6)Mysql安装——编译安装
- Mysql中出现please use mysql_upgrade to fix this errot解决的办法
- Go-MySQL-Driver:一个Go语言的轻量级极速的mysql驱动
- MySQL 流程控制函数
- MySQL - 存储引擎MyISAM和Innodb