当前位置: 首页 > news >正文

【赵渝强老师】PostgreSQL的数据库

在这里插入图片描述

PostgreSQL的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。下图展示了PostgreSQL数据库的逻辑存储结构。
在这里插入图片描述

下面重点介绍一下PostgreSQL中的数据库。

视频讲解如下

【赵渝强老师】Postgresql的数据库

在PostgreSQL中,一个数据库是数据库对象的集合。通常每个数据库对象属于并且只属于一个数据库。更准确地说,一个数据库是一个模式的集合,而模式包含表、函数等等各种数据库对象。因此数据库的完整层次应该包含如下组成部分:数据库服务器、数据库、模式、表或者某些其他对象类型,如存储过程、存储函数等等。当连接到数据库服务器时,客户端必须在它的连接请求中指定它要连接的数据库名,通过数据库实例来操作数据库中的对象。用户可能是在同一个数据库里,但可能在不同的模式中。

执行下面的语句可以查看当前PostgreSQL数据库集群中已有的数据库信息。

postgres=# \lList of databasesName    |  Owner   | Encoding |......
-----------+----------+----------+-------postgres  | postgres | UTF8     |......template0 | postgres | UTF8     |......template1 | postgres | UTF8     |......(3 rows)

下面详细解释一下每个数据库的作用。

  • postgres数据库由initdb命令在初始化数据存储区域时创建的。该数据库也是客户端默认连接的数据库。
  • template0是标准系统数据库,该数据库中只包含PostgreSQL版本预定义的标准对象。在数据库集群被初始化之后,不应该对template0做任何修改。在创建数据库时通过指示使用template0取代template1进行拷贝,可以创建一个“纯净的”用户数据库。
  • template1是第二标准系统数据库。当在PostgreSQL中创建一个新数据库时,实际上就是克隆了template1。这就意味着对template1所做的任何修改都会体现在所有后续创建的用户数据库中。因此应避免在template1中创建对象,除非想把这些对象传播到每一个新创建的数据库中。

查询现有数据库集合信息也可以通过查询系统表pg_database得到。

postgres=# select datname from pg_database;# 输出的信息如下:datname  
-----------postgrestemplate1template0(3 rows)
http://www.lryc.cn/news/493705.html

相关文章:

  • linux安全管理-会话安全
  • Ubuntu监视显卡占用情况
  • 学成在线day06
  • Mac安装及合规无限使用Beyond Compare
  • 【青牛科技】2K02 电动工具专用调速电路芯片描述
  • 基于SpringBoot实现的民宿管理系统(代码+论文)
  • 安装QT6.8(MSVC MinGW)+QT webengine+QT5.15.2
  • MinIO常见操作及Python实现对象的增删改查
  • 网络编程中的字节序函数htonl()、htons()、ntohl()和ntohs()
  • 【dvwa靶场:File Upload系列】File Upload低-中-高级别,通关啦
  • RHCE NFS
  • 【数据结构】ArrayList与顺序表
  • 互联网基础
  • ffmpeg.js视频播放(转换)
  • 后端 Java发送邮件 JavaMail 模版 20241128测试可用
  • 电脑中的vcruntime140_1.dll文件有问题要怎么解决?一键修复vcruntime140_1.dll
  • 探索 Vue 3.0中Treeshaking特性?
  • Paddle Inference部署推理(十)
  • 万能门店小程序管理系统 doPageGetFormList SQL注入漏洞复现
  • 全面+彻底解决VMware安装后没有VMnet1和VMnet8的问题
  • 什么是堆?
  • 微距动物和植物摄影后期森系风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • Qt6.8安卓Android开发环境配置
  • RK3568部署yolo8记录
  • 数据可视化复习2-绘制折线图+条形图(叠加条形图,并列条形图,水平条形图)+ 饼状图 + 直方图
  • JavaScript原生深拷贝方法 structuredClone使用
  • SpringBoot无法使用jkd8问题
  • 使用 Jina Embeddings v2 在 Elasticsearch 中进行后期分块
  • QT简易项目 数据库可视化界面 数据库编程SQLITE QT5.12.3环境 C++实现
  • python json.dump()和json.dumps()的区别