安装过程:
使用yum命令来安装
1.查看postgresql的源
yum list | grep postgresql
2.选择postgresql10-contrib(插件库)和postgresql10-server(数据库)
yum install postgresql10-contrib postgresql10-server -y
3.验真是否安装成功
rpm -aq| grep postgres
4.初始化数据库
/usr/pgsql-10/bin/postgresql-10-setup initdb
5.配置数据库开机自启
systemctl enable postgresql-10
systemctl start postgresql-10
6.配置防火墙
(见我上之前的博客)
7.修改用户密码
su - postgres 切换用户,执行后提示符会变为 '-bash-4.2$'
psql -U postgres 登录数据库,执行后提示符变为 'postgres=#'
ALTER USER postgres WITH PASSWORD 'postgres' 设置postgres用户密码为postgres
\q 退出数据库
8.配置远程访问
a.开启远程访问
vim /var/lib/pgsql/10/data/postgresql.conf
修改#listen_addresses = 'localhost' 为 listen_addresses='*' 当然,
此处‘*’也可以改为任何你想开放的服务器IP
b.信任远程访问
vi m/var/lib/pgsql/10/data/pg_hba.conf
修改如下内容,信任指定服务器连接
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.157.1/32(需要连接的服务器IP) trust
host all all 0.0.0.0/0 trust
其中0.0.0.0/0表示运行任意ip地址访问。
若设置为 192.168.1.0/24 则表示允许来自ip为192.168.1.0 ~ 192.168.1.255之间的访问。
9.重启数据库
systemctl restart postgresql-10
数据库的数据存储目录在 /var/lib/pgsql/10/data 下
数据库安装目录在 /usr/pgsql-10 下
插件使用:
大部分插件已经被封装在contrib里,安装时会一起被安装
查看插件位置 /usr/pgsql-10/lib
1.uuid
开启插件
create extension if not exists "uuid-ossp";
select uuid_generate_v1();
验证一下
数据库使用
在windows的dos窗口连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname
\du
查看用户
切换数据库,相当于mysql的use dbname
\c dbname
列举数据库,相当于mysql的show databases
\l
列举表,相当于mysql的show tables
\dt
查看表结构,相当于desc tblname,show columns from tbname
\d tblname
\di 查看索引
创建数据库:
create database [数据库名];
删除数据库:
drop database [数据库名];
*重命名一个表:
alter table [表名A] rename to [表名B];
*删除一个表:
drop table [表名];
*在已有的表里添加字段:
alter table [表名] add column [字段名] [类型];
删除表中的字段:
alter table [表名] drop column [字段名];
修改数据库列属性
alter table 表名 alter 列名 type 类型名(350)
重命名一个字段:
alter table [表名] rename column [字段名A] to [字段名B];
*给一个字段设置缺省值:
alter table [表名] alter column [字段名] set default [新的默认值];
*去除缺省值:
alter table [表名] alter column [字段名] drop default;
在表中插入数据:
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
修改表中的某行某列的数据:
update [表名] set [目标字段名]=[目标值] where [该行特征];
删除表中某行数据:
delete from [表名] where [该行特征];
delete from [表名];--删空整个表
创建表:
create table ([字段名1] [类型1] ;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);
\copyright 显示 PostgreSQL 的使用和发行条款
\encoding [字元编码名称]
显示或设定用户端字元编码
\h [名称] SQL 命令语法上的说明,用 * 显示全部命令
\prompt [文本] 名称
提示用户设定内部变数
\password [USERNAME]
securely change the password for a user
\q 退出 psql
可以使用pg_dump和pg_dumpall来完成。比如备份sales数据库:
pg_dump drupal>/opt/Postgresql/backup/1.bak
下面两点,本人觉得比较重要:
PostgreSQL对表名、字段名都是区分大小写的。在图形化界面可以正常新建。用SQL语句的时候需要加双引号,如果jdbc查询等处,记得使用转义符号。
PostgreSQL在SQL语句中对大小写是不敏感的 例如 select ID from t_user 和 select id from t_user 都会从t_user这个表中查询id这个字段。如果要查询大写字母的字段,同样要加上双引号:select "ID" from t_user