0. 启动pgsl数据库

  1. pg_ctl -D /xx/pgdata start

1. 查看pgsl版本

  1. pg_ctl --version

1. 命令行登录数据库

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

2. 列出所有数据库

  1. \l

3. 切换数据库

  1. \c dbname

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

  1. \d

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

  1. \d tablename

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

  1. \d+ tablename

7. 退出操作

  1. q

8. 新建表

例1(主键)

  1. create table TESTCASE(
  2. id INTEGER,
  3. task_class INTEGER,
  4. age TEXT,
  5. PRIMARY KEY(id, task_class)
  6. );

例2(自增SERIAL)

  1. 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. 清空表

  1. delete from [表名]

or

  1. TRUNCATE TABLE [表名]

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

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

11. 添加字段

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

12. 更改字段

  1. alter table [表名] rename column [旧字段名] to [新字段名];
  2.  
  3. 例:把表table_ex字段col_1限制非空去掉:ALTER TABLE table_eg ALTER col_1 drop not NULL

12.1 更改字段属性,含空格

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

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

12.2 更改字段由int4-->int8

  1. 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

  1. \q

19. 两个查询结果做差 except

  1. (select node_id from node where node_id=1 or node_id=2) except (select node_id from node where node_id=1);
  2. node_id
  3. ---------
  4. 2
  5. (1 row)

20. 复制表

  1. CREATE TABLE test_a_copy AS SELECT * FROM test_a;

21.命令导入sql数据文件

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

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

格式:

  1. \o file_path

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

  1. postgres=> \o /home/jihite/data/iu_data;
  2. postgres=> select test_id from cdb_all_iu_data limit ;
  3. postgres=> select test_id from cdb_all_iu_data limit ;

结果

  1. test_id
  2. --------------
  3.  
  4. ( rows)
  5.  
  6. test_id
  7. --------------
  8.  
  9. ( rows)

23. 数据库的备份&恢复

导出到线下文件

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

把线下文件导入到数据库

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

24. \x

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

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

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

26 建立索引

单字段索引

  1. CREATE INDEX index_name ON table_name (field1);

多字段索引

  1. CREATE INDEX index_name ON table_name (field1,field2);

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

  1. select
  2. relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch
  3. from
  4. pg_stat_user_indexes
  5. order by
  6. idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;

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

  1. select
  2. relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch
  3. from
  4. pg_stat_user_indexes
  5. where
  6. relname = table_name
  7. order by
  8. idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;

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

  1. select * from pg_stat_activity

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

postgreSql 常用操作总结的更多相关文章

  1. 关于postgresql——常用操作指令

    创建数据库 CREATE DATABASE test WITH OWNER = postgres ENCODING = 'UTF8'; 进入控制台方法,在postgreSQL的安装目的bin下执行命令 ...

  2. postgresql常用操作

    需要安装的软件包: apt-get install postgresql postgresql-client-9.1 postgresql-common postgresql-9.1 postgres ...

  3. Postgresql 常用操作

    表所有者一括变更 select 'alter table public.'|| tablename ||' owner to appuser;' from pg_tables where tableo ...

  4. ORM常用操作

    一般操作 专业官网文档 必会13条查询 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> get ...

  5. java集成开发环境常用操作集

    1.简单搭建maven集成开发环境 一.     Jetty安装 下载地址(包涵windows和Linux各版本,Jetty9需要JDK7):http://download.eclipse.org/j ...

  6. 我的Android进阶之旅------>温习Sqlite3的常用操作

    前言;今天要写一个应用来调节系统的Brightness值,来改变系统的背光亮度.由于刚开始些的时候没有考虑Brightness的最小值,直接托动SeekBar到最小值(为0).瞬间,屏幕变成全黑,失败 ...

  7. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  8. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  9. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

随机推荐

  1. 局部敏感哈希(LSH)之simhash和minhash

    minhash 1. 把文档A分词形成分词向量L 2. 使用K个hash函数,然后每个hash将L里面的分词分别进行hash,然后得到K个被hash过的集合 3. 分别得到K个集合中的最小hash,然 ...

  2. Bootstrap -- 初见 Bootstrap

    Bootstrap -- 初见 Bootstrap Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. ...

  3. 英语口语练习系列-C07-谈女孩

    <将进酒>·李白 君不见黄河之水天上来,奔流到海不复回. 君不见高堂明镜悲白发,朝如青丝暮成雪. 人生得意须尽欢,莫使金樽空对月. 天生我材必有用,千金散尽还复来. 烹羊宰牛且为乐,会须一 ...

  4. 周末班:Python基础之面向对象基础

    面向对象基础 面向对象和面向过程 编程思想是什么,就是用代码解决现实生活中问题的思路. 面向过程 核心点在过程二字,过程指的是解决问题的步骤,说白了就是先做什么再干什么.这种解决问题的思路就好比是工厂 ...

  5. Apache Flink中的广播状态实用指南

    感谢英文原文作者:https://data-artisans.com/blog/a-practical-guide-to-broadcast-state-in-apache-flink 不过,原文最近 ...

  6. Vim配置(python版)

    由于马上将用到django框架,需要有一个好的ide来coding,之前做C的开发时候体会到了vim的强大,所以编写python也决定采用vim. PS:除了vim,一般浏览代码多用atom和subl ...

  7. P1354 房间最短路问题

    传送门 可以发现,最短路一定要经过墙壁的断点. 那么把房间看作一个有向图,墙壁的断点为节点,求从起点到终点的最短路. 这道题的难点在于建图.枚举所有的断点,若可以走则加入这条边. 判断两点是否连通,即 ...

  8. php curl cookie 读写

    普通 curl post 请求 public static function curlPost($url, $post_fields = array(), $timeout = 5) { $timeo ...

  9. ubuntu安装docker-ce

    Docker Community Edition (CE)/Docker社区版非常适合希望开始使用Docker并尝试使用基于容器的应用程序的开发人员和小型团队.Docker CE有2个版本:stabl ...

  10. 【原创】分布式事务之TCC事务模型

    引言 在上篇文章<老生常谈--利用消息队列处理分布式事务>一文中留了一个坑,今天来填坑.如下图所示 如果服务A和服务B之间是同步调用,比如服务C需要按流程调服务A和服务B,服务A和服务B要 ...