世界上最好的数据库?PostgreSQL 入门指南!

一提数据库,大家就会想到 Oracle、MySQL。但还有一个数据库正在飞快地成长,并在 2017、2018 年蝉联「年度数据库」的称号,他就是 —— PostgreSQL。

PostgreSQL 很多人称为「世界上最先进的、功能最强大的开源数据库」,它可以和 Oracle 相媲美,而且没有那么昂贵的价格和傲慢的客服。

PostgreSQL 是完全由社区驱动的开源项目。它提供了单个完整功能的版本,而不像 MySQL 那样提供了多个不同的社区版、商业版与企业版。随着 PostgreSQL 这几年的迅猛发展,在国内也掀起了一波 PostgreSQL 的热潮。

今天我们就从「安装、设置、创建」等最基础的操作开始,带大家入门 PostgreSQL。

以下课程内容出自实验楼课程 ——《PostgreSQL 基础入门实战》:

PostgreSQL 简介与安装

大家好,本课程是关于 PostgreSQL 数据库的使用说明,细致讲解 PostgreSQL 的特性与使用方法,尽量做到描述朴实、深入浅出、示例充足、覆盖重点。

知识点
  • PostgreSQL 简介

  • 在 Ubuntu 系统中安装 PostgreSQL 数据库

PostgreSQL 简介

PostgreSQL 是一个功能强大的开源关系型数据库管理系统,用于安全地存储数据。PostgreSQL 在某些地方被简称为 PG 。

所谓 “功能强大”,就是优点很多:

  • 支持超多种类的数据类型,数量在开源数据库里是第 1 名

  • 可以在 Windows 、FreeBSD 、Linux 、macOS 等主流操作系统中运行

  • 支持 SQL 子查询、触发器、视图、事务多级隔离、多进程并发控制

  • 支持包括 C、C++、Java、Perl、Python、Ruby 在内的多种语言的编程接口

所谓 “开源”,就是指 PostgreSQL 所有版本的源代码均为公开状态,供任何个人和组织免费使用和修改。PostgreSQL 由全球志愿者团队开发,不受任何公司或其他私人实体控制。

所谓 “关系型”,就是提供各种约束。

所谓 “安全的存储”,这涉及到两层意思:一是数据持久化,这是大多数据库的基本功能;二是热备,PostgreSQL 采用物理复制,在保证主备数据一致上具有较高的可靠性。

关于 MySQL 与 PostgreSQL 有两句标语:

  • MySQL:世界上最受欢迎的数据库

  • PostgreSQL:世界上最先进的数据库

热度排名

当我们评判一些编程语言孰优孰劣时,当我们争辩一些框架性能高低时,一个很好的论据就是热度排名。

编程语言的数量几百上千,如果一门编程语言五年进不了 TIOBE 的前二十,谁还好意思吹嘘呢?当然啦,所有的这些评判和争辩的实际意义几乎没有,我们只是说着玩儿。

尽管如此,我们还是可以用热度排名佐证一门语言或一个框架的优秀与否。热度通常与用户量呈正相关性。

对于数据库的热度排名,就像 TIOBE 一样,也有一个叫做 DB Engines 的网站。

截止 2020 年 6 月底,排名前十的数据库热度表格如下:

如上表所示,前五基本是稳定的,热度在 400+ ,后面的几个热度差距很小。PostgreSQL 排名第四,且与前三名的差距极大,冲击前三的可能性微乎其微。所以它无法拥有 MySQL 的 Popular 标签。

排名第 5 的 MongoDB 是热度最高的非关系型数据库。如果告诉你 PostgreSQL 在 9.2 版本中加入了 JSON 数据类型以支持 NoSQL 数据存储功能,且在性能上甚至优于 MongoDB ,是不是觉得 PostgreSQL 也有点儿能打了呢?

此外还可以在网站中查看数据库的趋势图,可以看到近些年具有明显增长趋势的也就是 PostgreSQL 和 MongoDB 了:

安装 PostgreSQL 数据库

实验环境中使用的是 Ubuntu 操作系统,我们可以在终端执行 sudo apt 命令来安装软件。

首先执行如下命令刷新源:

$ sudo apt update

操作截图如下:

然后安装 PostgreSQL 数据库及其客户端插件:

$ sudo apt install -y postgresql postgresql-client

操作截图如下:

查询 PostgreSQL 数据库的状态:

$ sudo service postgresql status

如果打印信息结尾是 down ,表示服务未启动;如果打印信息结尾是 online ,表示服务器已启动。

执行如下命令启动服务:

$ sudo service postgresql start

操作截图如下:

至此,PostgreSQL 服务器和客户端就全部安装完成并启动了服务。

执行如下命令查看 PostgreSQL 的版本:

$ psql --version

我们安装的数据库版本是 9.5 ,这是目前使用量最大的版本,但不是最新的版本,目前最新版是 12.3 。不必担心版本不够新导致功能不强的问题,最新的功能都不是企业级应用的功能,甚至有可能还处于测试阶段。

客户端

PostgreSQL 的客户端需要执行 psql 命令来启动,这与 MySQL 的客户端类似,是一个命令行交互工具。

在安装 PostgreSQL 时,操作系统会创建一个名为 postgres 的用户。终端执行如下命令查看最近创建的十个用户:

$ sudo tail /etc/shadow

操作截图如下,可以看到最下面的用户就是 postgres ,我们要使用这个用户进入客户端,因为目前只有该用户有权限:

打开实验环境后,默认使用的用户是 shiyanlou ,我们首先切换到 postgres 用户:

$ sudo su postgres

使用 whoami 命令查看当前登录的用户:

切换到 postgres 用户后,在终端执行 psql-l 命令查看已有数据库:

其中 postgres 数据库是为用户 postgres 创建的同名数据库,它是一个自动创建的数据库。template0 和 template1 是两个模板数据库。当用户创建新的数据库时,会克隆模板数据库。

进入客户端

执行最简单的 psql 命令即可进入客户端,也就是命令行交互工具。执行 \c 命令查看当前用户和所选择的数据库。

PostgreSQL 的客户端与 MySQL 的不同,要先选择数据库,而不能进入之后再选。

可以看到默认选择的就是 postgres 数据库。

退出客户端要执行 \q 命令。

在 PostgreSQL 的客户端中有很多快捷命令,它们都是以反斜杠开头的。

例如查看全部数据库信息,可以使用 \l 命令:

如果使用 SQL 语句的话,就要这样:

SELECT
datname AS 数据库,
pg_encoding_to_char(encoding) AS 编码格式,
rolname AS 拥有者
FROM pg_database
JOIN pg_authid
ON pg_database.datdba = pg_authid.oid;

操作截图如下:

可以看到,数据库有 “拥有者” 的概念,这在 MySQL 中是没有的。实际上,在 PostgreSQL 中一切都有所属用户,数据库、数据表、视图、函数、触发器都有所属用户。

总结

本节实验内容较为简单,主要介绍了 PostgreSQL 的特点和基本功能以及在 Ubuntu 操作系统中如何安装。

在接下来的实验中,我们主要是在客户端命令行上操作。

后续还有 9 节课程,将细致讲解 PostgreSQL 的特性与使用方法,尽量做到描述朴实、深入浅出、示例充足、覆盖重点。如果你想学习完整的内容,欢迎到实验楼边敲代码边学习~

课程地址:https://www.lanqiao.cn/courses/1612

????????????  点击阅读原文,学习完整课程内容!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值