数据存储_PGSQL

2023-11-08  本文已影响0人  xieyan0811

1 概念

1.1 PGSQL 与 MySQL

1.2 schema

在 PostgreSQL 中,schema 是一个命名空间,它可以包含数据库对象的名称,如表、视图、索引、数据类型、函数以及运算符。在一个数据库中可以存在多个 schema,它们都有各自的命名空间。这使得多个用户可以在同一个数据库中使用相同的表名,因为它们在不同的 schema 中。

相关SQL命令:

2 建立服务器环境

$ docker pull postgres:11.0
$ mkdir /exports/project/pv/data/ -p
$ docker run --rm --name pv_postgres -v /exports/project/pv/data/:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:11.0

此后即可操作:

3 用命令行连接服务

$ psql -h ip -p 5432 -U username

4 常用 sql 命令

4.1.1 查看数据库

\l

4.1.2 连接数据库

\c 数据库名;

4.1.3 查看当前库中的数据表

\dt

4.1.4 查看表结构

\d 表名;

实在找不到建表语句,可以把表结构贴到 chatGPT,让他写对应的建表语句

4.1.5 退出

\q

4.1.6 查看 SCHEMA 命名空间

\dn

4.1.7 查看所有表

即使使用最高权限的 postgres 用户,命令行连接也可能看不到某些 schema 对应的表,使用以下命令可以看到命名空间中的表。

select * from pg_tables;

4.1.8 访问表

select * from SCHEMA名.表名;

5 使用 sqlalchemy 连接 pgsql

5.1 安装

$ pip install sqlalchemy
$ pip install psycopg2

5.2 代码

from sqlalchemy import create_engine, text
from sqlalchemy.orm import sessionmaker

db_url = "postgresql://postgres:123456@192.168.10.106:5432/data"
engine = create_engine(db_url)
Session = sessionmaker(bind=engine)
session = Session()

result = session.execute(text("select * from pg_type;"))
for row in result:
    print(row)
session.commit()
session.close()
engine.dispose()

6 注意事项

7 参考

postgresql数据库中多个Schemas互相访问
PostgreSQL命令行工具psql常用命令
psql基本命令

上一篇 下一篇

猜你喜欢

热点阅读