![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
psql
Robert_Gm
这个作者很懒,什么都没留下…
展开
-
区分in和exists、not in和not exists
区分in和exists、not in和not existsselect * from 表A where id in (select id from 表B)上面SQL语句相当于select * from 表A where exists(select * from 表B where 表B.id=表A.id)区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询。所以IN适合于外表大而内表小的情况;EXIST原创 2020-11-12 11:28:00 · 197 阅读 · 0 评论 -
select 1 from ... sql语句中的1代表什么意思?
select * from table从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。...原创 2020-05-28 20:06:55 · 383 阅读 · 0 评论 -
PostgreSQL类似Oracle merge into功能的实现
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATEWITH upsert AS ( UPDATE test1 SET col1 = test...原创 2020-04-07 15:04:09 · 6050 阅读 · 0 评论 -
timescaledb 几个方便的api
hypertable 控制api分区分块.add_dimension .attach_tablespace .create_hypertable .drop_chunksSELECT create_hypertable('table', 'ts', chunk_time_interval => interval '30 weeks');//hypertable分片分区按时间30wS...原创 2020-03-19 15:56:49 · 429 阅读 · 0 评论 -
PostgreSQL操作-psql基本命令
一、建立数据库连接接入PostgreSQL数据库: psql -h IP地址 -p 端口 -U 连接用户名之后会要求输入数据库密码二、访问数据库1、列举数据库:\l2、选择数据库:\c 数据库名3、查看该某个库中的所有表:\dt4、切换数据库:\c interface5、查看某个库中的某个表结构:\d 表名6、查看某个库中某个表的记录:select * from apps li...原创 2020-03-02 13:56:19 · 513 阅读 · 3 评论