Backend - PgAdmin(PostgreSQL 数据库工具)

目录

一、安装pgadmin

二、创建数据库

(一)创建本地数据库

1. 先创建server,会自动生成一个postgres数据库

2. 创建自定义数据库

3. 查询本地数据库

4. create server失败: unable to connect to server:connection timeout expired

原因:

检查:

(二)链接问题

1. authentication 问题

2. 无法自定义创建DB

(三)修改用户名

1. SQL 命令 

2. 执行情况 

三、链接远端数据库

四、删除数据库

(一)方法(两种)

(二)移除失败问题

五、断开数据库链接

(一)断开所有链接

方法1:执行SQL命令,终止所有数据库链接

方法2:找到每个链接该数据库的地方,手动断开链接

(二)关闭数据库相关操作

六、查找数据库表

七、清空数据库所有表

八、拷贝数据库

(一)拷贝前的重要前提

1. 限制数据量

2. 拷贝操作

(1)针对不知数据库有多大时

(2)针对已知数据库很小时

(二)单独拷贝整个表记录

1. 右击表,选择import/export

2. 若出现Error:Please configure the PostgreSQL Binary Path in the Preferences dialog.

(1)需要如下图配置

(2)然后重新执行导出操作

3. 设置储存文件

4. 栏位可自己选择

5. 当出现下图,则表示导出成功

6. 点击More detail,可以看到导出文件的储存位置

7. 导入文件

(三)限制笔数的导出表记录

1. 执行查询 

2. 下载当前的查询结果(限制了笔数的记录) 

(四)直接拷贝整个数据库

1. 导出

注意:pgadmin数据库导出数据后,一定要检查导出的数据内容是否为正确格式。

2. 导入

九、查看外键

十、lock锁表问题

1. 出现情况

2. 解决

十一、表记录查询

1. 选中数据库表,右击

2. 注释SQL语句

3. 取消注释SQL语句

4. 有可能是相同的server,不同的DB,有不同的使用者或密码。


PgAdmin 是一种 PostgreSQL 工具

一、安装pgadmin

若想pgadmin能够正常使用,还需下载&安装postgresql。

pgadmin官网下载:Download

postgresql 官网下载:EDB: Open-Source, Enterprise Postgres Database Management

二、创建数据库

(一)创建本地数据库

1. 先创建server,会自动生成一个postgres数据库

首次创建本地数据库时,需要先创建一个postgres数据库。

即,数据库名、用户名都只能填写postgres。若想创建自定义数据库名,可以在建立好postgres数据库的基础上,重新再创建一个自定义的数据库。

2. 创建自定义数据库

3. 查询本地数据库

SELECT datname FROM pg_database;

4. create server失败: unable to connect to server:connection timeout expired

原因:

        缺少postgresql服务。或者未启动该服务。

检查:

        首先,快捷键Windows+R弹出执行程序,输入services.msc,回车。在打开的服务管理器中,找到postgresql-x64-14 - PostgreSQL Server 14。

        如无该服务,则需要下载和安装postgresql;安装好后,检查该服务是否启动。

(二)链接问题

1. authentication 问题

若创建时遇到如下错误提示:

解决:
        修改 pg_hda.conf 文档(文档路径:C:\Program Files\PostgreSQL\14\data\pg_hba.conf)
将method的值全部修改为 trust 。

2. 无法自定义创建DB

原因:通过create server的形式,自定义数据库database,可能会无法创建。

解决:先创建postgres数据库(如上面的创建本地数据库的操作),然后通过 create database的形式,自定义数据库database。

(三)修改用户名

1. SQL 命令 

--- 创建用户,并赋予权限
CREATE USER luobo WITH PASSWORD 'luobo123';
ALTER DATABASE "LuoboDB" OWNER TO luobo;

2. 执行情况 

三、链接远端数据库

其实和创建数据库是一样的,只是说链接的主机IP等不同。

1. 按照下图,点击Servers > Create > Server

2. 自定义数据库属性,点击save

其中,这些数据库属性值都需要和项目代码里的数据库设置符合一致

四、删除数据库

(一)方法(两种)

方法1. 使用命令

DROP DATABASE LuoboDB2

方法2. 右击数据库,然后选择delete/drop

(二)移除失败问题

若移除失败,如下图所示,则表示需要先断开该数据库的所有连接。然后,再次移除数据库。

五、断开数据库链接

(一)断开所有链接

断开所有链接本地数据库的地方,包括其他人员使用该数据库。

方法1:执行SQL命令,终止所有数据库链接

SELECT 
    pg_terminate_backend(pg_stat_activity.pid)
FROM 
    pg_stat_activity
WHERE 
    pg_stat_activity.datname = 'LuoboDB2'
    AND pid <> pg_backend_pid();

其中,
pg_terminate_backend:函数,终止数据库连接的进程ID。
pg_stat_activity:系统表,用于存储服务进程的属性和状态。
pg_backend_pid():系统函数,获取附加到当前会话的服务器进程的ID。

示例:下方表示有两个链接了该数据库的地方,然后已执行断开链接了。

方法2:找到每个链接该数据库的地方,手动断开链接

即,右击数据库,选择disconnect database

(二)关闭数据库相关操作

包括 关掉该数据库的所有panel框

六、查找数据库表

七、清空数据库所有表

针对要清空表的数据库,打开其执行端

执行删除所有表的命令

DROP SCHEMA public CASCADE;
CREATE SCHEMA public;

执行完语句,即可看到库已清空所有表。

八、拷贝数据库

(一)拷贝前的重要前提

1. 限制数据量

        操作:拷贝数据库时,最好是加上"限制记录笔数"的条件。

        原因:有的数据库资料,可能有400G这么大,如果直接拷贝,会导致数据库卡死。

        解释:pgadmin会全力支援该拷贝进程,而其他操作者想执行一些简单查询就会一直等待。

只有等到有闲置的资源,等待的进程才能继续进行。

2. 拷贝操作

(1)针对不知数据库有多大时

        ① 先检查表是否很多,表的栏位是否很多。如果不多,则先拷贝表结构。

        ② 表结构拷贝好后,单独给每个表插入数据。(补充查询条件,限制记录笔数,插入数据)

(2)针对已知数据库很小时

        可以直接拷贝

(二)单独拷贝整个表记录

先导出文件,然后导入文件。

1. 右击表,选择import/export

2. 若出现Error:Please configure the PostgreSQL Binary Path in the Preferences dialog.

(1)需要如下图配置

(2)然后重新执行导出操作

3. 设置储存文件

文件名一定要csv的格式

4. 栏位可自己选择

5. 当出现下图,则表示导出成功

6. 点击More detail,可以看到导出文件的储存位置

7. 导入文件

(三)限制笔数的导出表记录

1. 执行查询 

2. 下载当前的查询结果(限制了笔数的记录) 

(四)直接拷贝整个数据库

包括所有表、所有表的数据内容。

1. 导出

注意:pgadmin数据库导出数据后,一定要检查导出的数据内容是否为正确格式。

(因为有的可能是乱码) 

2. 导入

九、查看外键

1. 直接点击“数据库表” Table > 右边导航栏出现的SQL栏位 > 查看fk关系

2. 右键单击“数据库表” Table > 选择Create Scripts> 查看fk关系

3. 打开“数据库表” Table 的下层 > 打开Constraints属性 > 查看fk关系

十、lock锁表问题

1. 出现情况

系统运行时,无法继续操作数据库。并且数据库的Dashboard工具栏出现如下图的红色记录。

2. 解决

(1)查询所有lock状况

select * from pg_stat_activity where wait_event_type = 'Lock' order by query_start desc limit 100

(2)删除lock状态的pid(一笔一笔的执行删除)

select pg_terminate_backend('PID')
--- 例如:SELECT pg_terminate_backend('12338')

(3)总结:发现有state为active的记录时,查找并删除lock状态的记录。

十一、表记录查询

1. 选中数据库表,右击

2. 注释SQL语句

        快捷键:Ctrl + /

3. 取消注释SQL语句

        快捷键:Ctrl + Shift + /

4. 有可能是相同的server,不同的DB,有不同的使用者或密码。

在操作某DB时,请确认用户和密码是否对应。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值