PostgreSQL 开发团队在在2017年9月已经发布了最新版本的 PostgreSQL 10

PostgreSQL是一个开源的对象关系数据库系统。它是用于生产服务器的领先数据库服务器之一。PostgreSQL 允许我们用各种编程语言来执行存储过程,比如C / C ++,Python,Java,Perl,Ruby...和它自己的 PL / pgSQL,这与 Oracle 的 PL / SQL类似。本教程将帮助您在 Ubuntu 16.04 LTS 和 14.04 LTS 系统上安装 PostgreSQL 数据库服务器。

安装

首先,导入 PostgreSQL 包的 GPG 密钥

$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O  -  | sudo apt-key add  -

然后,将存储库添加到您的系统

$ sudo sh -c'echo“deb http://apt.postgresql.org/pub/repos/apt/`lsb_release -cs`-pgdg main >> >> /etc/apt/sources.list.d/pgdg.list “

最后,执行更新与安装数据库命令

$ sudo apt-get update 
$ sudo apt-get install postgresql postgresql-contri

连接 PostgreSQL 数据库

安装 PostgreSQL 数据库服务器之后,会自动创建一个角色为 'postgres' 的用户 'postgres'。同时还创建了一个名为 'postgres' 的系统帐户。因此,要连接到 postgres 服务器,必须以用户为 postgres 身份权限登录到系统进行连接。

$ sudo su  -  postgres 
$ psql

登陆后进入到 PostgreSQL 的命令行状态:

postgres-#

要支持外网访问的简单配置

打开 pg_hba.conf 文件

sudo vi /etc/postgresql/10/main/pg_hba.conf 

如下:

 #TYPE  DATABASE        USER            ADDRESS                 METHOD

 #"local" is for Unix domain socket connections only
 local   all             all                                     peer
 #IPv4 local connections:
 host    all             all             127.0.0.1/32            md5

在IPv4 下增加:

host    all             all             192.168.0.0/16          md5

修改后 :wq 强制保存退出

再打开 postgresql.conf 文件

sudo vi /etc/postgresql/10/main/postgresql.conf

使用 listen 找到

listen_addresses = 'localhost'

更改为

listen_addresses = '*'

保存后,重启 postgresql

/etc/init.d/postgresql restart 

扩展

使用 navicat 可正常远程连接 postgresql 数据库

几个常用的 PostgreSQL 命令:

  • 列出所有数据库

mysql: show databases
psql: \l 或 \list

  • 切换数据库

mysql: use dbname
psql: \c dbname

  • 列出当前数据库下的数据表

mysql: show tables
psql: \d

  • 列出指定表的所有字段

mysql: show columns from table name
psql: \d tablename

  • 查看指定表的基本情况

mysql: describe tablename
psql: \d+ tablename

  • 退出登录

mysql: quit 或者 \q
psql: \q

扩展

常用语句

  • 创建新表
    CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
  • 插入数据
    INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
  • 选择记录
    SELECT * FROM user_tbl;
  • 更新数据
    UPDATE user_tbl set name = '李四' WHERE name = '张三';
  • 删除记录
    DELETE FROM user_tbl WHERE name = '李四' ;
  • 添加栏位
    ALTER TABLE user_tbl ADD email VARCHAR(40);
  • 更新结构
    ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
  • 更名栏位
    ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
  • 删除栏位
    ALTER TABLE user_tbl DROP COLUMN email;
  • 表格更名
    ALTER TABLE user_tbl RENAME TO backup_tbl;
  • 删除表格
    DROP TABLE IF EXISTS backup_tbl;