postgreSql 基本操作总结

0. 启动pgsl数据库

pg_ctl -D /xx/pgdata  start

1. 命令行登录数据库


1

psql -U username -d dbname -h hostip -p port

2. 列出所有数据库

\l 

3. 切换数据库


1

\c dbname

4. 列出当前数据库的所有表

\d 

5. 查看指定表的所有字段


1

\d  tablename

6. 查看指定表的基本情况


1

\d+  tablename

7. 退出操作


1

q

8. 新建表

例1(主键)

create table TESTCASE(
id INTEGER,
task_class INTEGER,
age TEXT,
PRIMARY KEY(id, task_class)
);

例2(自增SERIAL)

create table CREATETASK_CHKID_N( id SERIAL PRIMARY KEY, chk_id TEXT, n INTEGER);

其中SERIAL代表自增,默认从1开始增加,每次自增1。

9. 删除表


1

drop table REL_CROSS_NODE;

10. 清空表

delete from [表名]

or

TRUNCATE TABLE  [表名]

区别:Truncate table 表名 (注:不带where语句) 速度快,而且效率高。

因为DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放

11. 添加字段


1

alter table [表名] add column [字段名] [类型];

12. 更改字段

alter table [表名] rename column [旧字段名] to [新字段名];

例:把表table_ex字段col_1限制非空去掉:ALTER TABLE table_eg ALTER col_1 drop not NULL

12.1 更改字段属性,含空格

如果把字段colname把属性Text转化为int,原来text里面存在空啥的,可以

ALTER TABLE tablename ALTER COLUMN colname TYPE int USING (trim(colname)::integer);

12.2 更改字段由int4-->int8

alter table test_data alter column task_id type bigint using task_id::bigint

13. 删除字段


1

alter table [表名] drop column [字段名];

14. 表中插入一行数据


1

insert into [表名] (字段1,字段2) values (值1,值2);

例如:


1

insert into assist_info (id, maat_id, block_type) values (‘F006‘‘F7775‘, 1)  

  • 如果表中字段有大写的字段,则需要对应的加上双引号。例:insert into test (no, "Name") values (‘123‘, ‘jihite‘);
  • 值用单引号引起来(‘‘),不能用双引号("")

15. 表中删除一行数据


1

delete from [表名] where [该行特征];

16. 修改表中数据


1

update [表名] set [目标字段名]=[目标值] where [该行特征]

17. 删除表


1

drop table [表名];

18. 退出postgreSql

\q

19. 两个查询结果做差 except


1

2

3

4

5

(select node_id from node where node_id=1 or node_id=2) except (select node_id from node where node_id=1);

 node_id

---------

       2

(1 row)

20. 复制表

CREATE TABLE test_a_copy AS SELECT * FROM test_a;

21.命令导入sql数据文件

psql -h localhost  -d databaseName  -U username -f  filename

22. 查询结果存储到输出文件

格式:

\o file_path

这样就会把查询结果存储到输出文件中。例

postgres=> \o /home/jihite/data/iu_data;
postgres=> select test_id from cdb_all_iu_data limit 10;
postgres=> select test_id from cdb_all_iu_data limit 5;

结果

test_id
--------------
         2143
         2153
         2144
         2156
         2145
         2154
         2146
         2157
         2147
         2155
(10 rows)

test_id
--------------
         2143
         2153
         2144
         2156
         2145
(5 rows)

23. 数据库的备份&恢复

导出到线下文件

pg_dump --host hostname --port port --username username -t tablename -d dbname >/home/jihite/table.sql 

把线下文件导入到数据库

psql -h 10.125.7.68 -p 5432 -d postgres -U postgres -W postgres -f 2.sql

24. \x

postgres=> \x
Expanded display is on.
postgres=> select *  from cdb_chk_items where chk_id = ‘R000000335‘;
-[ RECORD 1 ]+------------------------------------------------------------------------------------------------
chk_id       | R000000335
chk_desc     | 道路属性与道路属性相关检查
chk_info     | {"FIELDS": {"TRAFFIC_SIGN": ["TYPE", "GEOM"], "ROAD_LINK": ["ROAD_CLASS", "FORM_WAY", "GEOM"]}}
err_desc     | {"ERR2": "roadclass取值错误", "ERR1": "formway取值错误"}
chk_level    | 1
is_opened    | 1
module_name  | TRAFFIC_SIGN
invalid_flag | 1
rel_mode     | MAIN_LAYER:TRAFFIC_SIGN
             :         TRAFFIC_SIGN|A,M|DIRECT
             :         ROAD_LINK|A,M,D|ATTR_REL

25. 从表A中把符合条件的记录拷贝到表B

insert into A select * from B where id  in (‘a‘, ‘b‘, ‘c‘);

26 建立索引

单字段索引

CREATE INDEX index_name ON table_name (field1);

多字段索引

CREATE INDEX index_name ON table_name (field1,field2);

查看所有表的索引使用情况

select
    relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch
from
    pg_stat_user_indexes
order by
    idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;

查看某个表索引的使用情况

select
    relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch
from
    pg_stat_user_indexes
where
    relname = table_name
order by
    idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;

27. 超找数据库的连接信息

select * from pg_stat_activity

包含:客户端user、ip、执行语句,状态、时间

原文地址:https://www.cnblogs.com/lmg-jie/p/10285900.html

时间: 2024-11-13 08:05:55

postgreSql 基本操作总结的相关文章

Postgresql基本操作

1.创建用户postgres=# create user test password 'test';CREATE ROLE注意:在PostgreSQL 里没有区分用户和角色的概念,"CREATE USER" 为 "CREATE ROLE" 的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATE USER" 命令创建的用户默认带有LOGIN属性,而"CREATE ROLE" 命令创建的用户默认不带LOGIN属性2.创建表

postgresql 基本操作

库操作 \h:查看SQL命令的解释,比如\h select. \?:查看psql命令列表. \l:列出所有数据库. \c [database_name]:连接其他数据库. \d:列出当前数据库的所有表格. \d [table_name]:列出某一张表格的结构. \du:列出所有用户. \e:打开文本编辑器. \conninfo:列出当前数据库和连接的信息. 登录数据库psql -U postgres -W(密码) -h 127.0.0.1 创建数据库create database databa_

PostgreSQL数据库基本操作

postgresql学习站点 创建用户 12345 sudo -s -u postgrespsqlpostgres# CREATE USER xxxx1 WITH PASSWORD 'xxxx';postgres# CREATE DATABASE xxxx2;postgres# GRANT ALL PRIVILEGES ON DATABASE xxxx2 to xxxx1; 修改密码 1 alter user postgres with password 'foobar'; 创建数据库 1234

一、Postgresql的基本操作

----------------------------------------------------------------------------------------------------- --目录: --1. 数据库 ----1.1 创建数据库 ----1.2 删除数据库 --2. 架构 ----2.1 创建架构 ----2.2 删除架构 --3. 表 ----3.1 创建表 ------3.1.1 多个字段的联合唯一性 ------3.1.2 主键和外键 ----3.2 删除表

postgresql 使用指南

centos系列安装分为: yum安装 源码安装 一.yum安装 按照官方的安装文档进行. 安装postgresql官方yum仓库 yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm 安装postgresql数据库 yum install postgresql96-server postgresql96-contrib 初

Postgresql 配置文件详解

如果要查看配置文件中的一些选项,则可以登录psql后 使用 命令来查看: show  选项名; show all:  #查看所有数据库参数的值 主要选项: 选项 默认值 说明 是否优化 原因 max_connections 100 允许客户端的最大并发连接数目 否 因为在测试的过程中,100个连接已经足够 fsync on 强制把数据同步更新到磁盘 是 因为系统的IO压力很大,为了更好的测试其他配置的影响,把改参数改为off shared_buffers 24MB 决定有多少内存可以被Postg

SQLite数据库基本操作

SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建.连接和使用数据库.如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑. 目录 SQLite数据库(一):基本操作... 1 目录... 1 一.SQLite介绍... 2 1.    什么是SQLit

关于ubuntu服务器上部署postgresql 以及安装pgadmin4管理工具(web版)

进入目录:cd pgadmin4   source bin/activate     cd pgadmin4-1.6/ 启动pgadmin4:python web/pgAdmin4.py pgadmin登录账号:[email protected] (自己设定) 密码:Ambition!!((自己设定) 数据库:postgres 密码123456 一.ubuntu服务器安装     请参考: http://www.linuxidc.com/Linux/2012-05/60147.html 二.安装

Debian 平台下 Postgresql 数据库基本操作说明

1  安装postgresql --使用apt 直接安装: [email protected]:~/cndba$ sudo apt-get installpostgresql postgresql-client postgresql-server-dev-all -y --查看数据库状态: [email protected]:~$ /etc/init.d/postgresql status Running clusters: 9.1/main --停止: [email protected]:~$