简介

  PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS),用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。
  PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。
  PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Windows等。

安装

Debian系Linux

1
2
3
sudo apt install postgresql # 服务器
sudo apt install postgresql-client # 客户端
sudo apt install pgadmin3 # 图形化管理界面(postgresql9.5以下)

postgresql9.5以上需要使用pgadmin4,但此版本并没有.deb安装包,只能使用Python安装,具体安装办法请百度

Windows

直接在官网下载Windows安装包,按步骤安装即可。

配置

密码配置

安装完之后会自动产生一个无法登录的用户[postgres]和数据库[postgres],[template0],[template1]
其中用户[postgres]是没有密码的,但使用时必须有密码,因此要为其设置一个密码:

1
sudo -u postgres psql

使用这条命令后将进入psql命令状态,模式如下:

1
postgres=#

此时可使用psql的命令来操作数据库了

1
2
postgres=# alert user postgres with password 'root';
postgres=# \q

注意:每条psql命令后都必须以分号[;]结尾

安装完成后,默认只能本地才能连接数据库,其他机子访问不了,需要进行配置。

访问配置

1、修改监听地址

1
sudo gedit /etc/postgresql/9.5/main/postgresql.conf

将 #listen_addresses = ‘localhost’ 的注释去掉并改为 listen_addresses = ‘*’
2、修改可访问用户的IP段

1
sudo gedit /etc/postgresql/9.5/main/pg_hba.conf

在文件末尾添加: host all all 0.0.0.0 0.0.0.0 md5 ,表示运行任何IP连接
3、重启数据库

1
sudo /etc/init.d/postgresql restart

测试连接

1
psql -U postgres -h 127.0.0.1

如果无法连接可将127.0.0.1改为localhost再次尝试

数据库操作

初始化

1.创建新用户

1
create user 用户名 with password '密码';

2.创建用户的数据库

1
create database 数据库名 owner 用户名;

3.将数据库的所有权限都赋予用户

1
grant all privileges on database 数据库名 to 用户名;

登录

4.登录数据库

1
psql -U 用户名 -d 数据库名 -h 127.0.0.1 -p 5432

控制台命令

1
2
3
4
5
6
7
8
9
\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。

基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
创建新表
create table 表名(栏位1 varchar(20), 栏位2 date);
插入数据
insert into 表名(栏位1, 栏位2) values('xxx', 'xxx');
选择记录
select * from 表名;
更新数据
update 表名 set name = 'xx' where name = 'xxx';
删除记录
delete from 表名 where name = '李四' ;
添加栏位
alter table 表名 add 栏位名 varchar(40);
更新结构
alter table 表名 alter column 栏位名 set not null;
更名栏位
alter table 表名 rename column 原栏位名 to 新栏位名;
删除栏位
alter table 表名 drop column 栏位名;
表格更名
alter table 表名 rename to 新表名;
删除表格
drop table if exists 表名;