数据存储_PostgreSQL基本内容

说明

PG在使用中,常常和MySQL以及 Oracle进行比较使用。了解基本的情况,用于对相应的技术有个大概认识

PG基本情况

  查看pg_catalog.pg_namespace来查看当前数据库中全部的Schema
   select oid,* from pg_catalog.pg_namespace;
   SHOW search_path;
  select  * FROM information_schema.tables;
  select catalog_name,schema_name from information_schema.schemata ;
  information_schema.columns
 系统Schema: information_schema 与 pg_catalog
    pg_catalog 模式,它包含系统表和所有内置数据类型、函数、操作符。
      pg_catalog 总是搜索路径中的一部分。如果它没有明确出现在路径中,那么它隐含地在所有路径之前搜索
      pg_catalog 是系统Schema,包含了系统的自带函数/数据类型定义等,pg_catalog是保障postgres正常运转的重要基石。
    information_schema是方便用户查看表/视图/函数信息提供的,它大多是视图,MySQL,SQL Server同样有information_schema这个schema。 
 查询
  SELECT tablename FROM pg_tables;  
  SELECT  viewname   FROM   pg_views  WHERE     schemaname ='public'  ;

查看表结构
  SELECT  table_name,column_name,data_type,character_maximum_length 
  FROM  information_schema.columns 
  WHERE  table_schema='testpg' and TABLE_NAME ='t_test_conution';

查看表数据
  select * from  "testpg"."t_test_conution"  limit 2;

分布式数据库来说,动态扩缩容
  Citus 以插件的方式扩展到postgresql中,独立于postgresql内核
  database.schema.TABLE
   有声明任何模式名字就创建了表。缺省时,这样的表(以及其它对象)都自动放到一个叫做"public"的模式中去
  修改主库,开启归档,将日志归档到从库: archive_mode = on

数据类型

  character varying(n), varchar(n)	变长,有长度限制
  character(n), char(n)	定长,不足补空白
     varchar(n) 和 char(n) 分别是 character varying(n) 和 character(n)的别名,
  如果没有声明长度的 character 等于 character(1) ;
  如果不带长度说明词使用 character varying,那么该类型接受任何长度的字符串。后者是 PostgreSQL 的扩展。
 decimal  numeric
 bigint  integer

执行的操作

索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构
  PostgreSQL中的默认索引类型是B-Tree
    散列:与具有固有排序的B-Tree索引不同
    GIN:GIN是一个反向索引,它基本上允许单个键的多个值
	BRIN:如果您的数据具有特定的自然顺序
 
事务
 BEGIN TRANSACTION:开始一个事务。
 COMMIT:事务确认,或者可以使用 END TRANSACTION 命令。
  ROLLBACK:事务回滚
事务可以使用 BEGIN TRANSACTION 命令或简单的 BEGIN 命令来启动。此类事务通常会持续执行下去,
    直到遇到下一个 COMMIT 或 ROLLBACK 命令。不过在数据库关闭或发生错误时,事务处理也会回滚
plsq 元命令
  PostgresQL 常用的元命令  PostgreSQL中也有一个类似的命令行工具,就是plsq,它允许你交互地键入SQL或命令
  PostgresQL 命令的格式是用反斜线后面直接跟上一个命令动词,然后是一些参数。
   在使用前可以使用“?”来获取帮助信息,了解可以使用的命令清单
   进入psql    psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]
表的清理和删除
 PostgreSQL  中 DELETE 语句删除数据的通用语法: 删除 PostgreSQL 表中的数据
 DELETE FROM table_name WHERE [condition];
 如果没有指定 WHERE 子句,PostgreSQL 表中的所有记录将被删除。 
PostgreSQL 中 TRUNCATE TABLE 用于删除表的数据,但不删除表结构。
PostgreSQL 中 DELETE         语句删除数据
     truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行
 PostgreSQL 中 DROP TABLE     删除表, 这个命令会连表的结构一起删除

分区表

分区表:
     PostgreSQL本身支持基于从一个或多个列值计算的分区键值将表分片到多个子表中

参考:

 postgreSQL psql工具使用详解 https://www.cnblogs.com/nanshanjushi/p/11324607.html
原文地址:https://www.cnblogs.com/ytwang/p/13955134.html