postgres数据库相关
1.基于docker快速安装
# 拉取镜像
docker pull postgres:12-alpine3.20
# 运行
docker run --name pgsql --restart=always -d -p 5432:5432 \
-v /opt/pgsql/data:/var/lib/postgressql/data \
--shm-size=10g \
-e POSTGRES_USER=root \
-e POSTGRES_PASSWORD=password \
postgres:12-alpine3.20
# 进入容器创建用户
docker exec -it pgsql /bin/bash
adduser postgres
su postgres
psql
2.PGSQL的基本使用
连接数据库
psql -U postgres
psql -U root -d root -h 127.0.0.1 -p 5432
数据库操作
-- 创建数据库
create database db;
-- 查看数据库列表
\l
-- 删除数据库
drop database db;
数据表操作
-- 建表
create table test(id serial primary key, name varchar(16) not null);
-- 插入数据
insert into test(name) values('枫枫');
-- 查询
select * from test;
-- 查看表
\d
\d test
用户操作
-- 创建用户
create user username with password 'password';
create user username superuser password 'password';
-- 赋予权限
GRANT ALL PRIVILEGES ON DATABASE db_name TO username;
-- 取消权限
REVOKE ALL PRIVILEGES ON DATABASE db_name FROM username;
-- 删除用户
DROP USER username;
Schema
Schema 是 PostgreSQL 中库下面的命名空间,用于组织数据库对象。
-- 创建模式
CREATE SCHEMA schema_name;
-- 创建表到指定模式
CREATE TABLE schema_name.table_name (...);
-- 切换模式
SET search_path TO schema_name;
备份与恢复
# 备份
pg_dump -U postgres db_name > dbname.sql
# 恢复
psql -f xx.sql -U postgres db