数据存储_PGSQL

1 概念

1.1 PGSQL 与 MySQL

  • 在开源方面,PostgreSQL 是一个完全开源的数据库管理系统,MySQL 分为两个版本:开源版本和商业版本。
  • 数据类型方面,PostgreSQL 提供了丰富的内置数据类型,包括数组、JSON、HSTORE(键值对)等。
  • PostgreSQL 对 SQL 标准的支持较好,支持更多高级 SQL 功能。
  • 性能方面,PostgreSQL 支持表分区、并行查询和内置的复制功能,使其适用于大规模应用。

1.2 schema

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

相关SQL命令:

  • CREATE SCHEMA:创建一个新的 schema,
  • DROP SCHEMA:删除一个 schema
  • ALTER SCHEMA:更改一个已存在的 schema 的属性

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

此后即可操作:

  • 使用 Navicat 连接;
  • 创建数据库(注意:字符集按 sql 中的设置)
  • 创建 schema
  • 用sql导入数据

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 sessionmakerdb_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 注意事项

  • where 中注意用单引号
  • 设置搜索路径:SET search_path TO data;(设定命名空间)
  • 表名:注意大小写,不加引号直接转成小写,对于大写表名,需要加引号

7 参考

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/139797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CSS】解决上层盒子遮挡下层图片点击事件的三种方法

1. Pointer Events 属性 CSS 的 pointer-events 属性是一个强大的工具,可以控制元素是否接收用户的交互事件。通过将上层盒子的 pointer-events 设置为 none,我们可以确保它不会阻止下层图片的点击事件。 .upper-box {z-index: 999; /* 设置更高的 z-i…

js案例:打地鼠游戏(打灰太狼)

效果预览图 游戏规则 当灰太狼出现的时候鼠标左键点击灰太狼加10分,小灰灰出现的时候鼠标左键点小灰灰击减10分,不点击不减分不加分。 整体思路 1.把获取背景图片中每个地洞的位置,把所有位置放到一个数组中。 2.封装随机数函数,随…

腾讯域名优惠卷领取

腾讯域名到到期了,听说申请此计划,可获得优惠卷,看到网上5年域名只需要10元,姑且试试看。 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?in…

【hacker送书第一期】嵌入式虚拟化技术与应用

第一期图书推荐 前言为什么嵌入式系统需要虚拟化技术?专家推荐本书适用群体内容简介目录权威作者团队参与方式 前言 随着物联网设备的爆炸式增长和万物互联应用的快速发展,虚拟化技术在嵌入式系统上受到了业界越来越多的关注、重视和实际应用。嵌入式系…

Win10专业版安装wsl-ubuntu子系统

文章目录 一、查看是否满足安装要求二、管理员权限启动 Windows PowerShell三、启用Windows10子系统功能四、启用虚拟机平台功能五、重启电脑六、下载 Linux 内核更新包(适用于 x64 计算机的 WSL2 Linux 内核更新包)七、将 WSL 2 设置为默认版本八、打开…

利用检测结果实现半自动标注

1. 将目标检测结果保存为xml格式 #-----------------------------------------------------------------------------------# # 下面定义了xml里面的组成模块,无需改动。 #-----------------------------------------------------------------------------------…

关于session的不断变化问题

今天在帮同学解决一个小问题,差点阴沟翻船。 问题再现:他从github上拉了一个项目下来跑,结果发生跑不通问题出现在验证码一直不对。 我一看项目源码,验证码生成后存储再session中了,等用户发送请求验证的时候sessionI…

「帝国风暴兵」加入 The Sandbox,推出真实的全新人物化身系列和体验!

我们很高兴宣布与流行文化中最具标志性的娱乐品牌 Shepperton 设计工作室的「帝国风暴兵」达成合作伙伴关系。这一合作标志着该科幻品牌首次进入元宇宙,让风暴兵的粉丝们以全新的方式体验「帝国风暴兵」。 在这个体验中,玩家将置身于帝国风暴兵的营地&am…

数据分析实战 | 泊松回归——航班数据分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 一、数据及分析对象 CSV文件:o-ring-erosion-only.csv 数据集链接:https://download.csdn.net/download/m0_7…

网络安全之文件包含漏洞及其防护

一、引言 文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。举个例子,PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件…

基于 Gin 的 HTTP 代理 demo

上次用 TCP 模拟了一个 HTTP 代理之后,感觉那样还是太简陋了,想着是不是可以用框架来做一个有点实际用处的东西。所以,就思索如何用 golang 的 Gin 框架来实现一个?嗯,对的你没有听错,是 gin 框架。你可能会…

Java 数据结构篇-实现双链表的核心API

🔥博客主页: 小扳_-CSDN博客 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 双链表的说明 1.1 双链表 - 创建 1.2 双链表 - 根据索引查找节点 1.3 双链表 - 根据索引插入节点 1.4 双链表 - 头插节点 1.5 双链表 - 尾插 1.6 双链表 - 根据索引来…

Dell戴尔灵越Inspiron 7700 AIO一体机电脑原厂预装Windows10系统

链接:https://pan.baidu.com/s/1-slgR9t4Df_eko0Y6xaeyw?pwdmk0p 提取码:mk0p 灵越7700一体机原装出厂系统自带声卡驱动、无线网卡驱动、面部识别等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 由于时间关系,…

Spring 事务失效的场景

1.直接new出来的对象添加事务不起作用,因为只有spring定义的bean才接受事务。 2.由于mysql的引擎用Myisam不支持事务,所以如果使用mysql的myisam引擎的话,事务不起作用。 3.如果Transaction注解到非public方法上,事务不起作用&…

【数据库设计和SQL基础语法】--导论

一、什么是数据库设计和SQL 1.1. 数据库设计: 数据库设计是指在创建和管理数据库系统时,通过合理的规划和设计来组织、存储和管理数据的过程。一个好的数据库设计能够确保数据的有效性、完整性、一致性和可扩展性,同时提高系统的性能和可维护…

RT-Thread上部署TinyMaix推理框架,使MCU赋予AI能力

概要 当谈到微控制器(MCU)和人工智能(AI)的结合,我们进入了一个激动人心的领域。传统上,AI应用程序需要大型计算机或云服务器的处理能力,但随着技术的发展,现在可以将AI嵌入到微控制器中。这为嵌入式系统、物联网设备、机器人和各种其他应用开启了新的可能性。 MCU A…

Linux如何修改主机名(hostname)(亲测可用)

文章目录 背景Linux如何修改主机名(hostname)方法方法1. 使用 hostnamectl 命令示例 2. 编辑 /etc/hostname 文件注意事项 背景 我创建虚拟机的时候没设置主机名,现在显示localhost,有点尴尬😅: 需要重新设…

冒泡排序

贵阳这个地方的天气变化好大呀,前两天晒大太阳,今天就冷的脚抖,简直不要太冷,但是不管怎么样,还是要学习的哟! 冬天来了,春天确实还有一点远! 好了,话不多说,…

SpringBoot 缓存之 @Cacheable 详细介绍

一、简介 1、缓存介绍 Spring 从 3.1 开始就引入了对 Cache 的支持。定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术。并支持使用 JCache(JSR-107)注解简化我们的开发。 其…

由浅入深学习统计学 - 常用统计图形学习

学习笔记 第一章- 信息图形化 图形化(可视化) 在一堆数据中,自己发现了这些数据的规律,但是无法表述给其他人知道,图形化就是便于他人理解数据的规律的展示的手段。 或者说我们也可以从统计的数据图形中发现某些没有…