先来安装一波,我在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