数据库什么是 PostgreSQL?开源数据库系统

Posted 逆流°只是风景-bjhxcc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库什么是 PostgreSQL?开源数据库系统相关的知识,希望对你有一定的参考价值。

文章目录

前言

PostgreSQL 是一个开源的对象关系数据库系统,本文,我们将讨论 PostgreSQL、它的用途和好处。

什么是 PostgreSQL?

PostgreSQL 是由 PostgreSQL Global Development Group
开发的高级开源关系数据库管理系统(RDBMS)。它作为 POSTGRES 项目的一部分于 1986 年在加州大学伯克利分校启动,它最初于 1996 年 7 月 8 日发布。

PostgreSQL 是一个企业级的关系数据库,允许关系和非关系查询,它支持过程语言,例如 PL/pgSQL、PL/Python、PL/Tcl 和 PL/Perl,以及其他非标准的过程语言,例如 Java、.Net、Go、Ruby、C、C++、ODBC等。

该 RDBMS 还可以在单个产品中存储结构化和非结构化数据,它支持大多数数据类型,例如数字、货币、字符、二进制、日期/时间、布尔、枚举、几何、网络地址、BitString、文本搜索、UUID、XML、JSON、数组、复合、范围、域、对象标识符、pg_lsn 和伪。

PostgreSQL 可用于 macOS、Windows、Linux、FreeBSD、OpenBSD、NetBSD、AIX、HP-UX、Solaris 和 UnixWare 操作系统,也适用于大多数其他类 Unix 系统。此外,PostgreSQL 是 Apple 的 macOS 服务器的默认数据库。

PostgreSQL 中的 SQL

SQL(结构化查询语言)旨在存储、操作和检索数据,在 PostgreSQL 中使用SQL 语言使其可扩展且符合标准,RDBMS 为内置数据类型提供了大量的运算符和函数,还支持其他丰富的 SQL 语言操作,使其成为有效而强大的选择。

服务器管理

PostgreSQL 服务器管理能够完成许多必要的优化任务,数据库管理涵盖基本活动,例如软件安装、服务器设置和配置、用户和数据库管理以及维护任务。

接口

基本 PostgreSQL 发行版中包含两个客户端接口,libpq 和 ECPG。RDBMS 的图形用户界面 (GUI) 工具允许开源数据库用户管理、操作和可视化数据。流行的 GUI 工具包括 pgAdmin、DBeaver、Navicat、DataGrip 和 OmniDB。

PostgreSQL 用途

PostgreSQL 是更稳定的数据库管理系统之一,通常用作网站、地理空间和分析应用程序的主要数据存储或仓库。

通用 OLTP:

在线事务处理 (OLTP) 系统捕获和维护数据库中的事务数据,OLTP 数据库经常被写入、读取和更新,重点是快速处理。许多初创公司和大型企业使用此 RDBMS 作为产品、互联网规模应用程序和解决方案的主要数据存储。

联合中心:

PostgreSQL 可以联合数据,并充当基础设施中的中心,它具有用于 mysql、Oracle、MongoDB、CouchDB、Redis、Informix、Neo4j 等的外部数据包装器。社区为这些扩展的开发做出了重大贡献,它们可以映射到 ODBC、JDBC 和 LDAP 接口。

地理空间:

空间或地理数据分析是数据分析的一个重要方面,可帮助查找位置、距离和其他地理属性,PostgreSQL 的 PostGIS 扩展允许使用地理对象,并可用作基于位置的服务的地理信息系统 (GIS) 和地理空间数据存储,值得注意的是,PostGIS 提供了许多在其他空间数据库中很少见的独特功能。

LAPP 堆栈:

LAPP(Linux、Apache、PostgreSQL、php/Perl/Python)堆栈是一个开源网络平台,可用于运行动态网站和服务器。因此,作为LAMP 堆栈的强大替代方案的一部分,RDBMS 可以运行动态网站和应用程序。

使用 PostgreSQL 有什么好处?

PostgreSQL 标榜自己是“世界上最先进的开源关系数据库”,使用它有很多好处。

开源许可证:

它在开源许可证下可用,可根据需要自由使用、实施和修改它,无需任何费用,无许可成本消除了过度部署的风险。这是最大的好处——所有类型的用户都可以自由体验先进的数据库系统和服务。

易于扩展:

该系统的功能旨在帮助开发人员和管理员构建应用程序、保护数据完整性以及管理大小数据集,相应地,它被设计为易于扩展,并且将扩展加载到数据库中的功能就像内置功能一样。

可靠性和完整性:

可靠性是任何数据库系统的重要特性,PostgreSQL 千方百计保证数据的可靠运行,例如,为了确保数据完整性,RDBMS 允许预写日志 (WAL)。

高可用和负载均衡:

通过持续规划、备服务器运行、备主备备、设置备服务器、流复制、复制槽、级联复制、同步复制、连续归档等方式,保证高可用和负载均衡。

备份和恢复:

可以配置 PostgreSQL 数据库以确保定期备份有价值的数据,备份数据有三种不同的方法:SQL 转储、文件系统级备份和连续归档。

“当我们决定哪些工具最适合作为 FlightAware 雄心勃勃的目标的基础时,有很多争论。然而,对于底层数据库,使用 PostgreSQL 的选择从一开始就很明确,”FlightAware 的 CIO David McNett 说。

这个 RDBMS 得到了 30 多年社区发展的支持,并已被证明是高度可扩展的,它是每天使用的许多关键技术和应用程序的支柱,开发人员和企业可以使用 PostgreSQL 构建具有可靠性和高可用性的应用程序。

Postgresql的使用

一、PostgreSQL是什么?

PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。

PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。

PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,OS X和Microsoft Windows等。

二、PostgreSQL特点

  1. 跨平台
  2. 支持文本、图像、视频、声音等
  3. 并提供C/C++、Java、Perl、Python、Ruby放数据库连接(ODBC)的编程接口。
  4. 支持SQL的许多功能,例如复杂的SQL查询,子查询,外键,触发器,视图,视图,多进程并发控制(MVCC)、异步复制。
  5. 在PostgreSQL中,表可以设置为从“父”表继承其特征。

PostgreSQL是第一个实现多版本并发控制(MVCC)功能的数据库管理系统,甚至在Oracle之前。MVCC功能在Oracle中称为快照隔离。

PostgreSQL是一个通用的对象 - 关系数据库管理系统。它允许您添加使用不同编程语言(如C / C ++,Java等)开发的自定义函数。

PostgreSQL旨在实现可扩展性。在PostgreSQL中,您可以定义自己的数据类型,索引类型,函数语言等。如果您不喜欢系统的任何部分,您可以随时开发自定义插件以增强它以满足您的要求,例如,添加新的优化。

如果您需要任何支持,可以使用活跃的社区来提供帮助。您可以随时找到PostgreSQL社区的答案,以了解使用PostgreSQL时可能遇到的问题。许多公司在您需要时提供商业支持服务。

三、PostgreSQL工具

  1. psql:命令行工具,也是管理PostgreSQL的主要工具
  2. pgAdmin:是PostgreSQL免费开源的图形化界面管理工具

四、PostgreSQL安装

1、添加RPM

 

yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm

2、安装PostgreSQL 9.5

 

yum install postgresql95-server postgresql95-contrib

 

 3、初始化数据库

/usr/pgsql-9.5/bin/postgresql95-setup initdb

 4、设置开机自启动

systemctl enable postgresql-9.5.service

 5、启动服务

 

systemctl start postgresql-9.5.service

 

 6、查看版本  psql  -V

 

PostgreSQL 9.5安装配置

1、修改用户密码

su - postgres
psql -U postgres
ALTER USER postgres WITH PASSWORD \'123456\'
\\q

 2、开启远程访问

 

vi /var/lib/pgsql/9.5/data/postgresql.conf
修改#listen_addresses = \'localhost\'  为  listen_addresses=\'*\'

3、信任远程连接

vi /var/lib/pgsql/9.5/data/pg_hba.conf
修改如下内容,信任指定服务器连接
# IPv4 local connections:
host    all            all      127.0.0.1/32      ident
host    all            all      192.168.137.1/32(需要连接的服务器IP)  trust

 4、重启服务

 

systemctl restart postgresql-9.5.service

 

 

 

 

 

(1)登录

peng@peng-virtual-machine:~$ sudo -u postgres psql

以用户postgres身份登录,postgres为用户名,可有多个用户,登录时会要求输入相应密码,之后就会进入psql环境了

(2)切换数据库


有时候需要在psql环境下切换数据库,此时执行如下psql命令:
\\c dbname username serverIP port
其中除了数据库名外,其他的参数都是可选的,如果使用默认值可以使用-作为占位符
执行这个命令后,也是提示输入密码。
(3)查看帮助
psql提供了很好的在线帮助文档,总入口命令是help,输入这个命令就可以看到
vsb9=# help
You are using psql, the command-line interface to PostgreSQL.
Type:  \\copyright for distribution terms
       \\h for help with SQL commands(查看SQL命令帮助)
       \\? for help with psql commands(查看psql命令帮助)
       \\g or terminate with semicolon to execute query(\\g表示命令已经输入完成,开始执行查询或操作任务)
      
       例如上面截图中select id from courses之后#前变"-"表示还在等待输入命令,这一次命令没输入完整,而输入\\g就告诉它开始执行吧。select id from courses;(注意这里加了“;”)表示输入完成开始执行。这两种得到的结果是一致的都是返回表中id属性的值。
       \\q to quit(退出登录)

可以看到,标准SQL命令的帮助和psql特有命令的帮助是分开的。输入\\?查看psql命令,会发现所有的psql命令都是以\\开头,这就很容易和标准的SQL命令进行区分开来。

(4)常用数据库命令(mysql为MySQL数据库操作命令,psql为postgresql数据库命令)
1列出所有的数据库
mysql: show databases
psql: \\l或\\list

2切换数据库
mysql: use dbname
psql: \\c dbname

3列出当前数据库下的所有表
mysql: show tables
psql: \\d

4列出指定表的所有字段
mysql: show columns from table name
psql: \\d tablename

5查看表的基本情况
mysql: describe tablename
psql: \\d+ tablename

SQL常用命令
在切换到某数据库环境后:
select attr from tablename;(加分号立即执行该语句,该表中的属性值,这个表应当是当前数据库中存在的表)
select attr
from tablename;(这样也是可以的,二者效果等同,这一形式在其他情况下会用到)
postgresql操作

以上是关于数据库什么是 PostgreSQL?开源数据库系统的主要内容,如果未能解决你的问题,请参考以下文章

免费开源ERP Odoo实施指南 连载二:POSTGRESQL概述

MySQL与PostgreSQL比较 哪个数据库更好

PostgreSQL开源免费企业级数据库用着比较爽的地方都有哪些?

PostgresSQL数据库安装及操作

postgresql相关开源软件及架构简介

一文看懂分布式数据库原理和 PostgreSQL 分布式架构