数据库:PostgreSQL:基础功能使用介绍

数据库:PostgreSQL:基础功能使用介绍
作为传统开源数据库的坚定支持者,PostgreSQL在数据库领域中一直有不错的名声,在TOP DB index指数中也基本上是在第五的位置。由于考虑到Oracle、MySQL和SQL Server常年居于前三,加之Microsoft Access借助Office的背景也一直有不错的背景,第五的位置的争夺其实才是相对有看头的,PostgreSQL在这种情况之下,在MongoDB和Firebase的追赶下还能保住第五已经是很不错。这篇文章来介绍一下PostgreSQL的基础功能和使用介绍。


TOP DB index

从2020年8月份的TOP DB index的表现可以看到,前四名虽然暂时稳不可破,但是持续不停的下跌已经是目前的趋势,如没有特殊的事件或者技术出现,这个趋势应该会持续下去。前5名都是传统的关系型数据库,所以在这个整体下降的趋势背景之下,第5的PostgreSQL的稳定上升更显得尤为可贵。至于Firebase能够继续上升取代PostgreSQL的位置还只能是继续观望,但是作为传统的关系型数据库,PostgreSQL已经成为重要的选择项之一,或者说是MySQL与PostgreSQL二选一。
数据库:PostgreSQL:基础功能使用介绍


概要介绍

项目 内容

官网
postgresql.org

License
PostgreSQL License

开源/闭源
开源

推出时间
1996/07/08

目前最新稳定版本
12.4

代码仓库
https://git.postgresql.org/gitweb/?p=postgresql.git

编写语言
C

支持平台
FreeBSD、 Linux、 macOS,、OpenBSD以及Windows


安装配置

PostgreSQl有多种安装方式,本文使用最为简单的容器化方式。

步骤1: docker pull

拉取官方镜像,官方镜像分普通版和alpine版,这里为了镜像尺寸小一点,选取拉取PostgreSQL 13的alpine版。

执行命令:docker pull postgres:12.4-alpine

liumiaocn:~ liumiao$ docker pull postgres:12.4-alpine
12.4-alpine: Pulling from library/postgres
...省略
Digest: sha256:b05c3311616d0d798225524e351423efa01dd3e5e6b56b2cca96a64d8fd4e746
Status: Downloaded newer image for postgres:12.4-alpine
docker.io/library/postgres:12.4-alpine
liumiaocn:~ liumiao$ docker images |grep 12.4-alpine
postgres 12.4-alpine 3781fe35c6b8 2 weeks ago 157MB
liumiaocn:~ liumiao$

启动镜像

执行如下命令,即可将步骤1中拉取的PostgreSQL 12.4版本的数据库服务启动起来。

执行命令:docker run --name postgres -v ${HOME}/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=liuiaocn -d postgres:12.4-alpine

上述命令启动了如下的数据库服务:

项目 说明

PostgreSQL的版本
为12.4

容器名称
postgres

数据库密码
liumiaocn

数据卷挂载目录
data

liumiaocn:postgres liumiao$ docker run --name postgres -v ${HOME}/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=liuiaocn -d postgres:12.4-alpine
a06874369dbfeff4b4a6f63d1410c566cdfc411f410126746d68a6b0b4e927c2
liumiaocn:postgres liumiao$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a06874369dbf postgres:12.4-alpine "docker-entrypoint.s…" 2 seconds ago Up 1 second 5432/tcp postgres
liumiaocn:postgres liumiao$

进入容器

liumiaocn:postgres liumiao$ docker exec -it postgres sh
/ # hostname
a06874369dbf
/ # which psql
/usr/local/bin/psql
/ #

版本确认

可以通过内置的环境变量确认

/ # env |grep VERSION
PG_VERSION=12.4
/ #

也可以通过内置的psql确认客户端版本

/ # psql --version
psql (PostgreSQL) 12.4
/ #

或者通过show命令确认(连接之后才能使用,注意提示符)

postgres=# show server_version_num;
server_version_num
--------------------
120004
(1 row)

postgres=#

或者使用SELECT语句

postgres=# SELECT current_setting('server_version_num');
current_setting
-----------------
120004
(1 row)

postgres=#

或者使用select version()语句

postgres=# select version();
version
---------------------------------------------------------------------------------------
PostgreSQL 12.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit
(1 row)

postgres=#

连接数据库

上述方式生成的数据库,缺省的数据库用户名为postgres,可以使用-U选项进行连接

/ # psql -U postgres
psql (12.4)
Type "help" for help.

postgres=#

查询当前用户信息可以使用如下select语句

postgres=# select * from current_user;
current_user
--------------
postgres
(1 row)

postgres=#

也可以使用简化语句select user

postgres=# select user;
user
----------
postgres
(1 row)

postgres=#

查看版权信息

postgres=# \copyright
PostgreSQL Database Management System
(formerly known as Postgres, then as Postgres95)

Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group

Portions Copyright (c) 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

postgres=#

查看已创建的数据库

/ # psql -U postgres
psql (12.4)
Type "help" for help.

postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)

postgres=#

创建数据库

使用create database test创建名为test的数据库

postgres=# create database test;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
(4 rows)

postgres=#

连接数据库

使用\c 数据库名 命令去连接所指定的数据库,比如\c test,将会连接刚刚创建的test数据库,在连接之后的操作比如创建表,在没有指明数据库名的情况下均对于当前所连接的数据库起作用。

postgres=# \c test
You are now connected to database "test" as user "postgres".
test=#

基本操作
版本确认

虽然psql --version也可以确认版本,就像MySQL或者Oracle一样,在连接实例之后才能进行的确认方式,和MySQL的使用方式基本都一致。

test=# select version();
version
---------------------------------------------------------------------------------------
PostgreSQL 12.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit
(1 row)

test=#

字符串处理

MySQL中可以使用select "hello world"命令,在PostgreSQL可以使用类似如下命令(注意需要是单引号)

test=# select 'hello' || ' world';
?column?
-------------
hello world
(1 row)

test=#

简单计算

类似Oracle里面的select from dual, 和mysql一样里面可以直接select

test=# select 3*7;
?column?
----------
21
(1 row)

test=#

总结

总结

数据库:PostgreSQL:基础功能使用介绍

淼叔

数据库:PostgreSQL:基础功能使用介绍
CSDN认证博客专家


神经网络
TensorFlow
NLP

资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过10年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累。

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

数据库:PostgreSQL:基础功能使用介绍

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 数据库:PostgreSQL:基础功能使用介绍
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏