首页 > 数据库 >psql学习笔记

psql学习笔记

时间:2023-07-13 14:33:25浏览次数:42  
标签:psql volume name 笔记 学习 pg docker size

目录

Q:命令行执行文件里面的语句

psql -U galax -W "wei***@123" -d db_name -p 5432 -f xxx.sql

Q:docker 本地运行 psql

1、获取最新的 postgreSql 镜像。

2、创建一个挂载卷 volume:docker volume create my_volume_01

docker volume create my_volume_01  # my_volume_01 是自定义的 volume 的名字
docker volume ls                   # 查看所有的 volume
docker volume inspect my_volume_01 # 查看 volume 具体在宿主机的目录信息
举例:
[root@centos7 ~]# docker volume ls
DRIVER    VOLUME NAME
local     my_volume_01
[root@centos7 ~]# docker volume inspect my_volume_01 
[
    {
        "CreatedAt": "2022-08-23T04:41:24-04:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my_volume_01/_data",
        "Name": "my_volume_01",
        "Options": {},
        "Scope": "local"
    }
]
[root@centos7 ~]# 

3、运行 psql 镜像:

docker run -d --name=postgres_local -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=wei***@123 postgres:latest

1)默认用户为 postgres,也可以通过 -e POSTGRES_USER=user_name 来指定。

2)-e POSTGRES_PASSWORD 必须指定,超级管理员密码。

3)运行起来之后,需要进入到容器中创建数据库:

docker exec -it <image_id> psql -h <host_ip> -U <user_name>

举例:
[root@centos7 ~]# docker exec -it 0c990bb6c998 psql -h localhost -U postgres
psql (14.1 (Debian 14.1-1.pgdg110+1))
Type "help" for help.

postgres=# 

4)创建完数据库,就可以使用 Navicate 等数据库管理软件添加访问了。

Q:常用命令

1、登录数据库

$ psql -U galax db_name(登录db_name数据库)
输入密码:

2、查看数据:

查看数据库:\l
切换数据库:\c DB_NAME
查看数据表列表:\d
查看数据表详情:\d TABLE_NAME;
退出:\q
切换显示:\x		// 再次输入则取消
设置schema:ALTER SESSION SET current_schema = xxx;   // 默认进入的是 public

3、创建数据库:

CREATE DATABASE dbname;

Q:windows 启动命令

pg_ctl -D "D:\dev\psql\postgresql-12.7-2-windows-x64-binaries\pgsql\data" -l "D:\dev\psql\postgresql-12.7-2-windows-x64-binaries\pgsql\log\mylog.log" start

默认用户名:s******

默认密码: postgres

默认数据库: postgres

需要在安装目录新建data和log目录。关掉启动窗口,数据库结束。除非安装服务。

Q:统计数据库或表的磁盘空间占用

1、统计数据库中各表占用磁盘大小:

SELECT table_schema
	OR '.'
	OR table_name AS table_full_name
	, pg_size_pretty(pg_total_relation_size('"'
		OR table_schema
		OR '"."'
		OR table_name
		OR '"')) AS size
FROM information_schema.tables
ORDER BY pg_total_relation_size('"'
	OR table_schema
	OR '"."'
	OR table_name
	OR '"') DESC
	
或者:

SELECT relname, pg_size_pretty(pg_relation_size(relid))
FROM pg_stat_user_tables
WHERE schemaname = 'public'
ORDER BY pg_size_pretty(pg_relation_size(relid)) DESC
	

统计单个表的占用磁盘空间的大小:

#单个表方法一:
select pg_relation_size('public.tbl_******_namespace');

#单个表方法二:
select pg_size_pretty(pg_total_relation_size('public.tbl_******_namespace'));

注:还可以在上面查询的基础上,增加schema的过滤项,比如:wheretable_schema='public',就可以只查看 public 下面的相关表的磁盘空间占用情况。

2、统计数据库大小:

1)单个库查询:

select pg_database_size('db_name');

2)查询所有的库:

SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM pg_database;

或者:

SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner
	, CASE
		WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
		ELSE 'No Access'
	END AS SIZE
FROM pg_catalog.pg_database d
ORDER BY CASE
	WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname)
	ELSE NULL
END DESC

Q:查询 psql 中的表结构信息

1、进入数据库:psql -U galax db_name,回车输入密码
2、显示某个表的详细信息,包括字段、索引、外键约束等等:=>\d TABLE_NAME

举例:
db_name=> \d tbl_******_cluster;


                                Table "PUBLIC.TBL_******_CLUSTER"
            Column            |            Type             |            Modifiers            
------------------------------+-----------------------------+---------------------------------
 ID                           | CHARACTER VARYING(255)      | not null
 CREATE_TIME                  | TIMESTAMP WITHOUT TIME ZONE | not null
 CREATE_BY                    | CHARACTER VARYING(255)      | 
 UPDATE_TIME                  | TIMESTAMP WITHOUT TIME ZONE | 
 UPDATE_BY                    | CHARACTER VARYING(255)      | 

Indexes:
    "TBL_******_CLUSTER_PKEY" PRIMARY KEY, BTREE (ID)
    "UK_GP1T67WBGQKCE01YC44JXITJ6" UNIQUE CONSTRAINT, BTREE (NAME)
Foreign-key constraints:
    "FK62VQAOD40NSVXKNR0RYTC80EI" FOREIGN KEY (SHAREDBUSINESSHOSTNETWORK_ID) REFERENCES TBL_******_HOST_NETWORK(ID)
Referenced by:
    TABLE "TBL_******_CLUSTER_HOST_NETWORK" CONSTRAINT "FK2UDBD8SNMOHHYQG1NJ8FBHS6R" FOREIGN KEY (CLUSTER_ID) REFERENCES TBL_******_CLUSTER(ID)

标签:psql,volume,name,笔记,学习,pg,docker,size
From: https://www.cnblogs.com/selonsy/p/17550379.html

相关文章

  • python学习笔记:第九章异常
    1.1异常是什么python使用异常对象来表示异常状态,并在遇到错误时引发异常。异常对象未被处理,程序将终止并显示一条错误信息。我们可以通过各种方法引发和捕获错误,并采取对应措施。1.2将“错误”变成异常自主地引发异常1.2.1raise语句我们通过预测异常可能发生的位置,通过ra......
  • Vue 学习 Day2
    摘要:动态属性的限制当使用DOM内嵌模板(直接写在HTML文件里的模板)时,我们需要避免在名称中使用大写字母,因为浏览器会强制将其转换为小写: <a:[someAttr]="value">...</a> “someAttr”属性而非“someattr”,这段代码将不会  ......
  • [笔记]组成原理_中央处理器_异常和中断、指令流水线
    异常和中断机制有关异常和中断的基本概念:由CPU内部产生的意外事件被称为异常,有些教材中也称为内中断;由来自CPU外部的设备向CPU发出的中断请求,被称为中断,通常用于信息的输入与输出。有些教材中也称为外中断。通常情况下,对异常和中断的具体处理过程,由操作系统(和驱动程序)完成。异......
  • 2023烟台7天编程集训笔记4
    匈牙利算法点击查看代码//匈牙利算法代码//匈牙利算法可用邻接矩阵和编表,优化用编表,不优化用邻接矩阵//时间复杂度:O(n^3)#include<bits/stdc++.h>usingnamespacestd;boolz[maxn][maxn],vis[maxn];//z[i][j]代表左边第i个点和右边第j个点能不能匹配vis[i]代表右边......
  • 关于学习的方法定律
    关于学习的方法定律定律1人们往往善于从事情的内容学习,而不善于从事情本身学习。公司的PLDP/PMDP培训效果很好,参加的人学到了如何做一个合格的PL/PM,却没有学会如何做好培训。从事情本身学习,是向别人学习的关键。定律2人们往往善于从失败中学习,而不善于从成功中学习。一件事......
  • 干货 | 深入理解深度学习中的激活函数
    理解深度学习中的激活函数在这个文章中,我们将会了解几种不同的激活函数,同时也会了解到哪个激活函数优于其他的激活函数,以及各个激活函数的优缺点。1.什么是激活函数?生物神经网络是人工神经网络的起源。然而,人工神经网络(ANNs)的工作机制与大脑的工作机制并不是十分的相似。不过在我......
  • 解决指定GPU运行和训练 python程序 、深度学习单卡、多卡 训练GPU设置【一文读懂】的
    指定GPU运行和训练Python程序,深度学习单卡、多卡训练GPU设置在进行深度学习任务时,GPU的使用是提高训练速度和效果的重要手段之一。在Python中,我们可以通过一些方法来指定GPU的运行和训练。指定GPU运行当我们使用多个GPU进行训练时,有时需要手动指定程序运行在哪个GPU上。这可以......
  • 强化学习Chapter2——优化目标(1)
    强化学习Chapter2——优化目标(1)上节涉及强化学习基本思路以及利用数学方式表征强化学习,但对强化学习的目标并没有进行详尽的定义。本节的目标旨在介绍algorithm-free的优化目标,即本文将不涉及算法地详述强化学习的目标。强化学习一般性目标上文提到,强化学习的目标可以解释为:......
  • STM32笔记(3) 按键驱动
    include"key.h"defineKEY1(GPIOA->IDR&(0X1<<0))defineKEY2(GPIOC->IDR&(0X1<<4))defineKEY3(GPIOC->IDR&(0X1<<5))defineKEY4(GPIOC->IDR&(0X1<<6))voidKEY_Config(void)//key1按键{......
  • 数据结构学习5
    17、顺序查找①查找的基本概念基本概念查找表:由同一类型的数据元素(或记录)构成的集合查找:查询特定元素是否在表中查找成功:若表中存在特定元素,称查找成功,应输出该记录查找不成功:表中不存在给定值的元素,称查找不成功静态查找:只查找,不改变集合内的数据元素动态查找:......