PostgreSQL基础

一、数据库操作命令

创建数据库  CREATE DATABASE xxxxxxx;

删除数据库 drop databse xxxxx;

查看所有数据库 \l

切换数据库 \c xxx

二、模式的更改

a)重命名:alter schema 旧名字 to 新名字;
b)修改模式的归属用户:alter schema 模式名 to 新用户;
模式的删除:drop schema 模式名;

三、表操作命令

\d # 列出数据库中所有表
\d [table_name] # 显示指定表的结构
\di # 列出数据库中所有 index
\dv # 列出数据库中所有 view

四、建表和索引

CREATE TABLE public.doors_info (
    seq integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY ,
    ds varchar(10) DEFAULT '',
    linkid1 varchar(32) DEFAULT '',
    linkid2 varchar(32) DEFAULT '',
    loc varchar(32) DEFAULT '',
    tx_gate_type varchar(64) DEFAULT '',
    gd_navigation_type varchar(64)  DEFAULT '',
    door_passage varchar(64)  DEFAULT ''
);

# 创建索引

CREATE INDEX linkid1_index ON doors_info (linkid1);
CREATE INDEX linkid2_index ON doors_info (linkid2);
CREATE INDEX loc_index ON doors_info using gist(loc);

# 删除索引

DROP INDEX loc_index

# 修改表的类型

alter table public.doors_info alter column loc type varchar(64)  USING loc::geometry;

# 删除表

DROP TABLE public.doors_info

# 删除数据
DELETE FROM doors_info WHERE seq=2;

# 插入数据

insert into public.doors_info (ds, linkid1, linkid2, loc, tx_gate_type, gd_navigation_type, door_passage) values ('20231219', '1','2','Point (112.113232 34.342344)', 'ttest','dd','ddd');

五、分区

参考这篇文章写的很好

PostgreSQL数据库表分区介绍-四种分区方式_postgresql 分区-CSDN博客

1、分区表

CREATE TABLE public.doors (
    ds varchar(10) DEFAULT '',
    linkid1 varchar(32) DEFAULT '',
    linkid2 varchar(32) DEFAULT '',
    loc_geometry geometry ,
    loc varchar(32) DEFAULT '',
    tx_gate_type varchar(64) DEFAULT '',
    gd_navigation_type varchar(64)  DEFAULT '',
    door_passage varchar(64)  DEFAULT ''
) PARTITION BY list (ds);

2、创建分区

create table doors_20231225 partition of doors (ds,linkid1,linkid2,loc_geometry,loc,tx_gate_type,gd_navigation_type,door_passage) for values in ('20231225');

3、分区索引

不能给主表建,只能给分区表建。

CREATE INDEX linkid1_index ON doors_info_20231225 (linkid1);
CREATE INDEX linkid2_index ON doors_info_20231225 (linkid2);
CREATE INDEX loc_index ON doors_info_20231225 using gist(loc_geometry);

4、删除分区

drop table doors_20231225;

六、查询

# 和mysql查询一样 \g\x\g  让数据纵向显示

select * from t1 where online_id in('12406815732813095401')\g\x\g;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值