pg入门2—pg中的database和schema有什么区别

在 PostgreSQL(简称 PG)和 MySQL 中,DatabaseSchema 是两个不同层次的概念,而在 MySQL 中,DatabaseSchema 常常被混用。通过结合这两种数据库的设计,我们可以更清晰地理解它们之间的区别。

1. PostgreSQL 中的 DatabaseSchema

Database(数据库):
  • 作用: PostgreSQL 的 Database 是一个独立的存储实体,拥有独立的元数据、表、视图、函数等。
  • 隔离性: 每个数据库是完全独立的,数据库之间的数据和表无法直接相互访问。即便是在同一个 PostgreSQL 实例下,不同数据库的表也是互相隔离的,无法跨数据库直接执行查询。
  • 连接方式: 用户需要单独连接到一个数据库实例内的某个具体数据库,才能对其中的对象进行操作。
Schema(模式):
  • 作用: Schema 是数据库中的逻辑分组,用于组织数据库对象(如表、视图、函数等)。它充当命名空间的角色,使得同一数据库中的不同 schema 可以拥有同名的对象(如表),而不会发生冲突。
  • 隔离性: Schema 提供的是逻辑上的分离,而不是物理隔离。同一数据库内的多个 schema 可以通过 SQL 语句跨 schema 进行操作,只需使用 schema.object_name 的语法来指定具体的 schema。
  • 典型场景: 多个业务模块的数据可以在同一个数据库中使用不同的 schema 进行管理和隔离。

2. MySQL 中的 DatabaseSchema

  • DatabaseSchema 是同义词: 在 MySQL 中,DatabaseSchema 本质上是同一个概念,只是名称不同。MySQL 没有像 PostgreSQL 那样明确的 schema 概念。在 MySQL 中,创建一个数据库等同于创建一个 schema,二者是可以互换的。
  • 作用: MySQL 的数据库或 schema 主要用于逻辑组织数据表、视图等对象。在 MySQL 中,数据库是数据库对象(如表)的容器。
  • 隔离性: MySQL 数据库之间也是完全隔离的,类似于 PostgreSQL 的 Database 隔离性。不同数据库之间的表无法直接跨数据库查询。不过 MySQL 可以通过联合查询或设置 跨数据库访问权限 来实现数据库间的数据交互。

3. PostgreSQL 和 MySQL 的主要区别

特性PostgreSQL (Database)PostgreSQL (Schema)MySQL (Database/Schema)
概念层次实例中的顶层数据存储单位数据库内部的逻辑命名空间实例中的顶层数据存储单位
隔离性数据库之间完全隔离Schema 之间逻辑隔离,物理不隔离数据库之间完全隔离
命名冲突不同数据库间命名无冲突同一数据库内 schema 可用来避免冲突数据库间命名无冲突
Schema/Database访问无法跨 Database 查询数据可以跨 Schema 查询数据可以跨数据库访问(通过授权或使用全限定名)
典型应用用于项目或应用级别的隔离用于数据库内部的逻辑分组和模块化用于项目或应用级别的隔离

4. 对比示例

PostgreSQL 示例

假设你有一个 PostgreSQL 实例:

  • Database: company_db
    • Schema 1: sales(销售部门)
    • Schema 2: hr(人力资源部门)

你可以在 sales schema 中创建一个 employees 表,也可以在 hr schema 中创建一个同名的 employees 表。访问时需要指定 schema,如 sales.employeeshr.employees,但它们都位于同一个数据库 company_db 中。

MySQL 示例

假设你有一个 MySQL 实例:

  • Database(也称作 Schema): company_sales(销售部门)

    • employees
  • Database: company_hr(人力资源部门)

    • employees

在 MySQL 中,company_sales.employeescompany_hr.employees 位于两个不同的数据库,隔离性类似于 PostgreSQL 的 Database 层。

5. 总结

  • PostgreSQL 中,Database 是物理隔离的顶级容器,而 Schema 是数据库内的逻辑分组单位。
  • MySQL 中,DatabaseSchema 是同一个概念,用来组织和隔离数据表等对象,没有 PostgreSQL 中类似的 schema 概念。

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

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

相关文章

Apache subversion 编译流程

目录 1. 概述2. 依赖库简介2.1 Expat2.2 Apache apr2.3 Apache apr-iconv2.4 Apache apr-util2.5 Zlib2.6 OpenSSL2.7 Sqlite2.8 Apache Serf2.9 Apache subversion3. 编译3.1 Expat编译3.1.1 源码信息3.1.2 CMake-GUI3.1.3 编译步骤3.2 APR编译3.2.1 源码信息3.2.2 编译步骤3.…

【笔记】2.1 半导体三极管(BJT,Bipolar Junction Transistor)

一、结构和符号 1. 三极管结构 常用的三极管的结构有硅平面管和锗合金管两种类型。各有PNP型和NPN型两种结构。 左图是NPN型硅平面三极管,右图是PNP型锗合金三极管。 从图中可见平面型三极管是先在一块大的金属板上注入杂质使之变成N型,然后再在中间注入杂质使之变成P型,…

倒序循环(一)

题目描述 输入一个正整数n,输出从 n~ 1 递减的序列。 输入格式 一行一个整数 n 输出格式 n 行,每行一个符合题目要求的整数 样例数据 样例输入#1 5样例输出#1 5 4 3 2 1样例输入#2 6样例输出#2 6 5 4 3 2 1数据范围 对于100%的数据&#xff…

Java企业面试题2

1.语言的分代: 第1代:机器语言 机器语言是最底层的计算机编程语言,它是由二进制数构成的一系列指令,直接与计算机硬件交互。每个二进制位模式代表一条特定的指令或数据地址。因为它是直接在硬件上执行的,所以运行效率…

Java 23 的12 个新特性!!

Java 23 来啦!和 Java 22 一样,这也是一个非 LTS(长期支持)版本,Oracle 仅提供六个月的支持。下一个长期支持版是 Java 25,预计明年 9 月份发布。 Java 23 一共有 12 个新特性! 有同学表示&…

xmake与包管理:又一个现代c++构建工具?

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 主要起因是我在逛Reddit帖子时,看到关于一些c构建系统的评价. cmake似乎有些过于复杂,它与vcpkg,conan的包管理之间的"融合"可能在有些时候也显得麻烦. 一些人尝试了我没见过的选项, 所以这里主要试试除了…

Java重修笔记 第五十七天 坦克大战(七)多线程基础 - 编程练习

1. 线程之间的协调控制(通知方式) public class Homework04 {public static void main(String[] args) {// 在 main 方法中启动两个线程// 第一个线程内循环打印 1 到 100 以内的整数// 直到第二个线程从键盘读取到 "Q" 指令后结束第一个线程…

深入剖析大模型原理——Qwen Blog

1. 输入部分 Text:原始输入文本,模型需要处理的自然语言数据。Tokenizer:分词器,将输入文本转换为词汇表中的索引(ID),便于后续处理。Input_ids:经过分词处理后的ID序列&#xff0c…

交流回馈老化测试负载的智能升级

在电子设备的生产过程中,老化测试是不可或缺的环节。老化测试主要是通过模拟设备长时间工作的情况,检测设备在经过一定时间的使用后,其性能是否会发生降低,是否存在安全隐患等。老化测试负载是老化测试中的重要组成部分&#xff0…

今日所学啊

ArcGIS打不开焦点统计如何解决_arcgis焦点统计打不开-CSDN博客 好吧其实最后焦点统计还是不行&#xff0c;我就去ArcGIS Pro里做焦点统计了哈哈哈哈哈哈哈 visual studio多工程项目管理_visual studio 的模块管理-CSDN博客 1.今天成功#include <QNetworkReply>不画红线…

【MYSQL表的增删改查(基础)】

MYSQL表的增删改查&#xff08;基础&#xff09; 一、CRUD二、新增&#xff08;Create&#xff09;2.1 单行数据全列插入2.2 多行数据指定列插入 三、查询&#xff08;Retrieve&#xff09;3.1 全列查询3.2 指定列查询3.3 查询字段为表达式3.3.1 表达式不包含字段3.3.2 表达式包…

react是什么?

文章目录 核心特点1. **组件化**2. **虚拟 DOM** 3. **声明式编程**4. **单向数据流**5. **JSX 语法**6. **Hooks** react的优势劣势 React 是一个由 Facebook 开发和维护的开源 JavaScript 库&#xff0c;用于构建用户界面&#xff0c;特别是单页应用程序&#xff08;SPA&…

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能&#xff0c;但是遇到了如下问题&#xff1a; 在Unity里面没法串流调试眼动追踪功能&#xff0c;根本获取不到Device&#xff0c;只能将整个场景build成APK&#xff0c;安装到头盔里&#xff0c;才能在…

枚举(not二分)

前言&#xff1a;这一题似乎用不了二分以及三分&#xff0c;害我写这么久&#xff0c;但是查找下一个元素的时候要用到二分查找 题目地址 #include<bits/stdc.h> using namespace std; #define endl "\n"int n; const int N (int)2e510; vector<int> a;…

OceanBase 中 schema 的定义与应用

背景 经常在OceanBase 的问答社区 里看到一些关于 “schema 是什么” 的提问。 先纠正一些同学的误解&#xff0c; OceanBase 中的 Schema 并不简单的等同于 Database&#xff0c;本次分享将探讨 OceanBase 中的Schema是什么&#xff0c;及一些大家经常遇到的问题。 具体而…

JavaDS —— 图

图的概念 图是由顶点集合以及顶点之间的关系组成的一种数据结构&#xff1a;G &#xff08;V&#xff0c;E&#xff09; 其中 V 表示的是顶点集合 &#xff1a; V { x | x 属于某个数据对象集} 是有穷非空集合 E 叫做边的集合 &#xff1a; E {(x, y) | x, y 属于 V} 或者 …

UE5源码Windows编译、运行

官方文档 Welcome To Unreal Engine 5 Early Access Learn what to expect from the UE5 Early Access program. 链接如下&#xff1a;https://docs.unrealengine.com/5.0/en-US/Welcome/#gettingue5earlyaccessfromgithub Step 0&#xff1a;找到UE5源码 直接先上链接 https…

MySQL原理之UUID主键分析,插入或更新语法分析

文章目录 1 MySQL不能用UUID做主键1.1 前言1.2 mysql和程序实例1.2.1 准备工作1.2.2 开始测试1.2.3 程序写入结果1.2.4 效率测试结果 1.3 使用uuid和自增id的索引结构对比1.3.1 自增id1.3.2 uuid 1.4 自增id缺点1.5 雪花算法 2 插入或更新2.1 on duplicate key2.1.1 定义2.1.2 …

24年蓝桥杯及攻防世界赛题-MISC-3

21 reverseMe 复制图片&#xff0c;在线ocr识别&#xff0c;https://ocr.wdku.net/&#xff0c;都不费眼睛。 22 misc_pic_again ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc/zsteg] └─$ zsteg misc_pic_again.png imagedata … text: “$$KaTeX parse error: Undefined…

python基础(1)pyenv安装和对Django使用

pyenv安装 pyenv主要针对类 Unix 系统&#xff08;如 Linux、macOS&#xff09;用户&#xff0c;pyenv-win 是专为 Windows 开发的 pyenv 版本&#xff0c;允许您在不使用 WSL 的情况下管理多个 Python 版本和虚拟环境。 建议Git Bash&#xff1a; Powershell或Git Bash&…