PosgreSQL篇之常见的postgres指令及操作

本文详细介绍了Postgres数据库的基本操作,包括登录、数据库管理、表操作、用户管理以及数据库备份与恢复。通过示例命令,展示了如何创建、查询、修改数据库以及用户权限设置,是Postgres使用者的实用参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言
众所周知,postgres是一种比较先进的对象关系型数据库DBMS,支持SQL标准的扩展,包括事务、外键、子查询等一系列关系型数据库的特性。

二、常见的Postgres操作
1、基本操作
登录

#注意:登录时,默认使用postgres用户和postgres数据库
#首先确保系统中存在postgres用户和对应的用户组
su - postgres
psql

执行后,即可进入postgres界面

2、数据库操作

#1、列举数据库,相当于MySQL中的 show databases
\l
#2、切换数据库,相当于MySQL中的use db
\c <dbname>
#3、列出数据库中对应的表信息,相当于show tables;
\dt
#4、查看表结构,相当于 desc;
\d tdlname
#5、创建数据库
create database <database>
#6、删除数据库
drop database <dbname>
#7、创建表
create table ([字段名1] [类型1] ;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;); 
#8、在表中插入数据
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
#9、备份数据库
pg_dump -U postgres -f /tmp/postgres.sql postgres           #(导出postgres数据库保存为postgres.sql)
pg_dump -U postgres -f /tmp/postgres.sql -t test01 postgres #(导出postgres数据库中表test01的数据)
pg_dump -U postgres -F t -f /tmp/postgres.tar postgres      #(导出postgres数据库以tar形式压缩保存为postgres.tar)
#10、恢复数据库
psql -U postgres -f /tmp/postgres.sql test01  # 恢复postgres.sql数据到test01数据库
pg_restore -U postgres -d test01 /tmp/postgres.tar  # 恢复postgres.tar数据到test01数据库

3、用户操作
1、切换用户

\c - <username>

2、创建用户并设置密码

create user 'username' with password 'password';
create role 'username' createdb password 'password' login; # 创建角色并授予创建数据库及密码登录的属性

3、修改用户密码

alter user 'username' with password 'password';

4、修改用户权限

alter role 'username' createdb;   # 授予某个用户创建数据库权限
alter role 'username' superuser;  # 授予超级管理员权限

5、数据库授权

grant all privileges on database 'dbname' to 'username'

6、角色属性

属性	                                                               说明
login	                                         只有具有 LOGIN 属性的角色可以用做数据库连接的初始角色名。
superuser	                                 数据库超级用户
createdb	                                     创建数据库权限
createrole	                                 允许其创建或删除其他普通的用户角色(超级用户除外)
replication	                                 做流复制的时候用到的一个用户属性,一般单独设定。
password	                                     在登录时要求指定密码时才会起作用,比如md5或者password模式,跟客户端的连接认证方式有关
inherit	                                         用户组对组员的一个继承标志,成员可以继承用户组的权限特性
### 使用Flink CDC连接PostgreSQL进行变更数据捕获 为了实现使用 Apache Flink 进行 PostgreSQL 的变更数据捕获 (CDC),主要依赖于 Debezium 提供的功能来捕捉数据库的变化并将其流式传输至 Kafka 或者直接由 Flink 处理。具体来说: 通过配置 Debezium Connector 来监听 PostgreSQL 数据库上的任何更改事件,这些事件会被转换成标准的消息格式并通过 Kafka 流传递给下游消费者如 Flink 应用程序[^3]。 对于希望利用 Flink 实现此功能的应用开发者而言,在启动项目之前需确保安装了必要的组件和服务,包括但不限于 PostgreSQL 数据库实例、Kafka 集群以及已部署好相应版本的 Flie-CDC 和 Debezium Connectors 插件。 实际操作过程中涉及到的关键步骤如下所示(注意这里不采用指示词描述): 创建一个名为 `flink-cdc-postgres` 的表用于演示目的,并启用逻辑解码插槽以便后续能够接收到来自该表结构内的所有变动通知;这一步骤可通过执行特定命令完成,例如在 PostgreSQL 中设置逻辑复制槽位以准备向外部系统发送更新记录[^2]: ```sql CREATE TABLE flink_cdc_postgres ( id SERIAL PRIMARY KEY, name VARCHAR(50), description TEXT ); ``` 接着定义一个 Source Function 类型的任务节点作为输入源接入点,它负责从指定位置读取原始数据集或者持续监控目标对象状态变化情况并将新产生的元组加入到计算流程当中去。此处推荐选用官方提供的 `JDBCSourceFunction` 或者更高级别的 `DeclarativeStreamTableDescriptor` API 接口来进行快速开发工作。 最后编写一段简单的 Java/Scala 代码片段展示如何构建基于上述前提条件下的完整应用程序框架,其中包含了初始化环境参数设定部分以及核心业务逻辑处理单元的设计思路: ```java import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import com.ververica.cdc.connectors.postgresql.PostgreSQLSource; public class PostgresCdcExample { public static void main(String[] args) throws Exception { final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // Define the source using Ververica's PostgreSQL connector. var postgresSource = PostgreSQLSource.<String>builder() .hostname("localhost") .port(5432) .database("mydb") // The target database(s). .tableList("public.flink_cdc_postgres") // Table to monitor changes on. .username("postgres") .password("mypassword") .deserializer(new SimpleStringDeserializer()) // Converts row updates into strings. .build(); env.fromSource(postgresSource, WatermarkStrategy.noWatermarks(), "PG Source") .print(); env.execute("Print PostgreSQL Changes"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听说唐僧不吃肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值