先来安装一波,我在docker上安装的

#先运行docker,我使用的是自定义的centos+vim镜像
docker run -itd --name pgsql centos-vim /usr/sbin/init  

#然后执行docker容器
docker exec -it pgsql /bin/bash

#按以下命令安装postgresql数据库
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y  #更新yum源

#安装数据库
yum install postgresql10-contrib postgresql10-server -y

#初始化数据库
/usr/pgsql-10/bin/postgresql-10-setup initdb

#运行postgeesql数据库
systemctl start postgresql-10

#进入交互式环境
su - postgres psql

PostgreSql的命令和mysql的命令很相似,我就简单列举一些常用的语句

1,创建数据库

create database db1;

分号不能丢了
在这里插入图片描述
2,切换数据库:

\c db1;

3,创建表

create table test(title varchar(255),content text);

4,展示该数据库中所有的数据库,数据表

\l  #展示数据库
\dt  #展示表
\d 表名  #查看表结构

5,数据的增删改查:

insert into test(title,content) values('news1','this is boom');
select * from test;
update test set title='news2';
delete from test where title='news2';

在这里插入图片描述
常用的字段类型:
数值型:
interger #整数型
real #浮点型
serial #序列型(自增加1的字段)

文字型:
char #固定长度文本
varchar #可变长度文本
text #大文本类型

布尔型:
boolean #布尔类型

日期型:
data #日期
time #时间
timestamp #时间戳

特色类型:
Array #数组
JSON #json数据类型
XML #xml数据类型

字段约束
not null #非空约束
unique #唯一性约束
check #字段设置条件
default #字段默认值
primary key #主键约束,非空并唯一

例:

create table test2(
id seial primary key,  #主键约束
title varchar(255) not null,  #非空约束
content text check(length(content)>80),  #字段条件
is_draft boolean default TRUE,  #默认值
is_del boolean default FALSE,
create_data timestamp default 'now'
);

事务的使用:
一般三个关键字
begin
commit
rollback

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

注意:
1,PostgreSQL对表名、字段名都是区分大小写的。在图形化界面可以正常新建。用SQL语句的时候需要加双引号,如果jdbc查询等处,记得使用转义符号。
2,PostgreSQL在SQL语句中对大小写是不敏感的 例如 select ID from t_user 和 select id from t_user 都会从t_user这个表中查询id这个字段。如果要查询大写字母的字段,同样要加上双引号:select “ID” from t_user

在windows的dos窗口连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname
\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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐