1),PostgreSQL是通用型数据库。
PG有着丰富的数据类型(数值、字符、时间、布尔、货币、枚举、网络地址、JSONB等等)和索引类型( B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN等 )。可以存储和计算大多数场景的业务数据,如 ERP、交易系统、财务系统涉及资金、客户等信息,数据不能丢失且业务逻辑复杂,选择 PostgreSQL 作为数据底层存储,一是可以帮助您在数据一致性前提下提供高可用性,二是可以用简单的编程实现复杂的业务逻辑 。适合各种OLTP和部分OLAP场景。
2),PostgreSQL数据库包含许多第三方插件。
如PostGIS等可以直接在数据库里进行地理位置相关的gis类存储和运算(LBS地理位置相关业务等O2O场景),其他的插件如Pg_stat_statements、uuid-ossp、pg_trgm、btree-gist插件、 pgcrypto加密等插件 。
3),中小型企业快速搭建 数据仓库和数据分析平台(TB级别)
PostgreSQL 提供丰富的数据类型和强大的计算能力,能够帮助您更简单搭建数据库仓库或大数据分析平台,为企业运营加分。
4),冷热分离
针对流水类的大表,PG可以使用分区表,线上保留热数据, 历史 数据存放在分区表里或者OSS等冷数据平台,冷热分离。
5),公有云支持度高如阿里云、腾讯云、华为云等公有云都有对应的RDS-PG产品,开箱即用,并提供技术支持。
OLTP:事务处理是PostgreSQL的本行
OLAP:ANSI SQL兼容,窗口函数,CTE,CUBE等高级分析功能,任意语言写UDF,citus分布式插件
流处理:PipelineDB扩展,Notify-Listen,物化视图,规则系统,灵活的存储过程与函数编写
时序数据:timescaledb时序数据库插件,分区表,BRIN索引
空间数据:PostGIS扩展(杀手锏),内建的几何类型支持,GiST索引。
搜索索引:全文搜索索引足以应对简单场景;丰富的索引类型,支持函数索引,条件索引
NoSQL:JSON,JSONB,XML,HStore原生支持,至NoSQL数据库的外部数据包装器
数据仓库:能平滑迁移至同属Pg生态的GreenPlum,DeepGreen,HAWK等,使用FDW进行ETL
1 查询表名称
在psql状态下查询表名称:\dt
SQL方式查看表名称:
SELECT tablename FROM pg_tables;
SELECT viewname FROM pg_views
WHERE schemaname ='public'
PostgreSQL获取数据库中所有view名 视图
SELECT viewname FROM pg_views
WHERE schemaname ='public'
2 查询表结构
在psql状态下查询表结构 \d tablename
SQL方式查看表结构
SELECT aattnum,
aattname AS field,
ttypname AS type,
aattlen AS length,
aatttypmod AS lengthvar,
aattnotnull AS notnull,
bdescription AS comment
FROM pg_class c,
pg_attribute a
LEFT OUTER JOIN pg_description b ON aattrelid=bobjoid AND aattnum = bobjsubid,
pg_type t
WHERE crelname = 'udoc_saldiscount'
and aattnum > 0
and aattrelid = coid
and aatttypid = toid
ORDER BY aattnum;
扩展资料:
PostgreSQL存储系统是由以下几个子模块所构成的:
1)页面管理子模块:对PostgreSQL缓冲区页面的组织结构进行定义以及提供页面 *** 作的方法。
2)缓冲区管理子模块:管理PostgreSQL的缓冲区,包括本地缓冲区和共享缓冲区。
3)存储设备管理子模块:数据库记录是存储在存储介质上的,存储设备管理子模块将屏蔽不同物理存储设备(块设备,流设备)接口函数的差异,向上层缓冲区管理子模块提供统一的访问接口函数。
4)文件管理子模块:一般的 *** 作系统对一个进程允许打开的文件数是有限制的,而PostgreSQL服务器有些时候需要打开的文件数是很多的,因此PostgreSQL文件管理子模块自身为了突破这个瓶颈,封装了文件的读写 *** 作。
打开软件,进入界面中。
双击“PostgresSQL 93”连接服务器
方法一:右键单击“postgres”,选择“新建对象”--新建数据库,设置新的数据库的参数,所有者一般默认为“postgres”
新建完后,不能立即看到界面上更新的数据,需要点击界面上的更新按钮才能够看到数据库的变化情况。
方法二:在插件中输入SQL语言,运行命令
方法三:点击面板上的“执行任意的SQL查询”
david=# select extract(year from now());
date_part
-----------
2013
(1 row)
david=# 32 取月份
david=# select extract(month from now());
date_part
-----------
4
(1 row)
david=#
david=# select extract(day from timestamp '2013-04-13');
date_part
-----------
13
(1 row)
david=#
david=# SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');
date_part
-----------
40
(1 row)
david=# 33 查看今天是一年中的第几天
david=# select extract(doy from now());
date_part
-----------
102
(1 row)
david=# 34
查看现在距1970-01-01 00:00:00 UTC 的秒数
david=# select extract(epoch from now());
date_part
------------------
136575590794474
(1 row)
david=# 35 把epoch 值转换回时间戳
david=# SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1369755555 INTERVAL '1 second';
column
------------------------
2013-05-28 23:39:15+08
(1 row)
david=#
--取day
skytf=> select extract(day from now());
date_part
-----------
3
(1 row)
skytf=> select extract(day from timestamp '2011-06-03');
date_part
-----------
3
(1 row)
skytf=> select timestamp '2011-06-03';
timestamp
---------------------
2011-06-03 00:00:00
(1 row)
--取小时
skytf=> select extract (hour from now());
date_part
-----------
14
(1 row)
--取分钟
skytf=> select extract (minute from now());
date_part
21 pgAdmin3的启动
您可以在应用程序---系统工具中找到pgAdmin3的启动项;
也可以在命令行下输入:
xiaop@xiaop-laptop:~$ /usr/bin/pgadmin3 start
622 连接已创建的数据库mydb ;
点击档案-----新增服务器,然后在跳出的窗口下输入:
地址:localhost
描述:服务器名称(随意填写)
维护数据库:postgres
用户名:自己创建一个(详情参见创建用户)
密码:和用户名对应(创建用户时自己创建)
点击确定后大家便可以查看postsql已有的数据库了;
注:pgAdmin3的数据库和终端下创建的数据库是完全同步的(可以用刷新查看效果), pgAdmin3是比较方便的图形化管理工具,它可以创建图表,管理数据库等,有关pgAdmin3的详细介绍我们在以后讨论,本文主要介绍命令行下的 *** 作。图形化管理工具能做到的命令行都可以做到,您可以在命令行下创建表,在pgAdmin3上查看是否同步:
7 创建和删除表;
71 创建新表;
创建完数据库之后,您就可以创建新表了,可以通过声明表的名字和所有字段的名字及其类型来创建表,例如:
mydb#CREATE TABLE weather (
city varchar(80),
temp_lo int, -- 最低气温
temp_hi int, -- 最高气温
prcp real, -- 降水量
date date
);
注:您可以在 psql 里连换行符一起键入这些东西。 psql 可以识别该命令直到分号才结束,不要忘记“;”
您可以在 SQL 命令中自由使用空白(也就是空格,tab,和换行符)。 这就意味着您可以用和上面不同的对齐方式键入命令。 两个划线("--") 引入注释。 任何跟在它后面的东西直到该行的结尾都被忽略。 SQL 是对关键字和标识符大小写不敏感的语言,只有在标识符用双引号包围时才能保留它们的大小写属性。
72 数据类型;
上面例子中的varchar(80) 声明一个可以存储最长 80 个字符的任意字符串的数据类型。 int 是普通的整数类型。 real 是一种用于存储单精度浮点数的类型。 date 类型应该可以自解释。
PostgresSQL 支持标准的 SQL 类型 int,smallint, real,double precision, char(N), varchar(N),date, time,timestamp 和 interval,还支持其他的通用类型和丰富的几何类型。 PostgreSQL 可以客户化为定制任意的用户定义的数据类型,您可以参考PostgreSQL的中文文档来查询;
73 删除表;
如果您不再需要某个表,或者您想创建一个不同的表,那么您可以用下面的命令删除它:
mydb#DROP TABLE tablename
8 向表中添加行;
81 INSERT;
INSERT 用于向表中添加行,您可以输入(在数据库中 *** 作):
mydb#INSERT INTO weather VALUES ('San Francisco', 46, 50, 025, '1994-11-27');
注:所有数据类型都使用了相当明了的输入格式。 那些不是简单数字值的常量必需用单引号(')包围, 就象在例子里一样。
82 point类型输入;
point 类型要求一个座标对作为输入,如下:
mydb#INSERT INTO cities VALUES ('San Francisco', '(-1940, 530)');
83 COPY;
您还可以使用 COPY 从文本文件中装载大量数据。 这么干通常更快,因为 COPY 命令就是为这类应用优化的, 只是比 INSERT 少一些灵活性.比如:
mydb#COPY weather FROM '/home/user/weathertxt';
注:weathertxt是您提前写好的符合格式标准的表格内容文档;
9 查询一个表;
91 SELECT;
要从一个表中检索数据就是查询这个表。 SQL 的 SELECT 就是做这个用途的。 该语句分为选择列表(列出要返回的字段部分),表列表(列出从中检索数据的表的部分), 以及可选的条件(声明任意限制的部分)。比如,要检索表 weather 的所有行,键入:
SELECT FROM weather;
<code>
输出结果:
<code>
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
San Francisco | 46 | 50 | 025 | 1994-11-27
San Francisco | 43 | 57 | 0 | 1994-11-29
Hayward | 37 | 54 | | 1994-11-29
(3 rows)
您可以在选择列表中写任意表达式,而不仅仅是字段列表。比如,您可以:
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
这样应该得出:
city | temp_avg | date
---------------+----------+------------
San Francisco | 48 | 1994-11-27
San Francisco | 50 | 1994-11-29
Hayward | 45 | 1994-11-29
(3 rows)
请注意这里的 AS 子句是如何给输出字段重新命名的。(AS 子句是可选的。)
92 WHERE;
一个查询可以使用 WHERE 子句"修饰",声明需要哪些行。 WHERE 子句包含一个布尔(真值)表达式,只有那些布尔表达式为真的行才会被返回。 允许您在条件中使用常用的布尔 *** 作符(AND,OR, 和 NOT)。 比如,下面的查询检索旧金山的下雨天的天气:
mydb#SELECT FROM weather
WHERE city = 'San Francisco' AND prcp > 00;
结果:
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
San Francisco | 46 | 50 | 025 | 1994-11-27
(1 row)
93 排序;
您可以要求返回的查询是排好序的:
mydb#SELECT FROM weather
ORDER BY city;
得出结果:
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
Hayward | 37 | 54 | | 1994-11-29
San Francisco | 43 | 57 | 0 | 1994-11-29
San Francisco | 46 | 50 | 025 | 1994-11-27
在这个例子里,排序的顺序并非绝对清晰的,因此您可能看到 San Francisco 行随机的排序。 但是如果您使用下面的语句,那么就总是会得到上面的结果
SELECT FROM weather
ORDER BY city, temp_lo;
您可以要求查询的结果按照某种顺序排序, 并且消除重复的行输出:
mydb#SELECT DISTINCT city
FROM weather;
得出结果:
city
---------------
Hayward
San Francisco
(2 rows)
以上就是关于PostgreSQL开源免费企业级数据库用着比较爽的地方有哪些全部的内容,包括:PostgreSQL开源免费企业级数据库用着比较爽的地方有哪些、postgresql 查看有哪些表、postgresql如何建立数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)