PostgreSQL学习笔记六:模式SCHEMA

news2024/11/22 6:51:40

模式(Schema)

PostgreSQL中的模式(Schema)是一个命名的数据库对象集合,包括表、视图、索引、数据类型、函数、存储过程和操作符等。模式的主要作用是组织和命名空间数据库对象,使得同一个数据库中可以包含多个具有相同名称的对象,只要它们位于不同的模式中就不会冲突。

在这里插入图片描述

创建模式

创建模式使用CREATE SCHEMA命令。例如:

CREATE SCHEMA myschema;

这将创建一个名为myschema的新模式。

默认模式

PostgreSQL为每个新数据库自动创建一个名为public的模式。如果在创建对象时没有指定模式名称,PostgreSQL会将对象放置在此public模式中。

模式搜索路径

在实际应用中,通常会使用不带模式名称的非限定名来引用表,例如staff表而不是完全限定名sales.staff表。当使用名称引用表时,PostgreSQL会使用模式搜索路径来查找表,这是一系列模式的列表。PostgreSQL将访问搜索路径中的第一个匹配的表。如果没有找到匹配项,即使数据库中的其他模式中存在具有相同名称的表,也会返回错误。

模式和权限

默认情况下,用户无法访问他们不拥有的模式中的任何对象。要允许这样做,模式的所有者必须在模式上授予USAGE权限。默认情况下,每个人对public模式都有该权限。

模式的用途

使用模式的原因包括:

  • 允许多个用户使用一个数据库而不会相互干扰。
  • 将数据库对象组织成逻辑组,使它们更易于管理。
  • 第三方应用程序可以放入单独的模式中,因此它们不会与其他对象的名称冲突。

注意事项

  • 模式类似于操作系统级别的目录,但模式不能嵌套。
  • 在SQL标准中,模式内的对象被不同用户拥有的概念是不存在的。此外,一些实现不允许创建与所有者名称不同的模式名称。实际上,在只实现标准中指定的基本模式支持的数据库系统中,模式和用户的概念几乎等同。
  • 默认情况下,如果用户没有指定模式名称,创建对象时会使用当前模式(search path中的第一个模式)。如果在CREATE TABLE命令中没有指定模式名称,新表将被创建在当前模式中。

在这里插入图片描述

示例

创建模式:

CREATE SCHEMA ecommerce;

删除模式:

DROP SCHEMA ecommerce;

或者级联删除模式及其所有引用对象:

DROP SCHEMA ecommerce CASCADE;

在模式中创建表:

CREATE TABLE ecommerce.customers (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

这些是PostgreSQL模式的基本概念和操作。

模式和数据库中的表有什么区别?

在 PostgreSQL 中,模式(Schema)和表(Table)是两个不同的概念,它们在数据库结构中扮演着不同的角色:

  1. 模式(Schema)

    • 模式是一个命名空间,它包含了一组数据库对象,如表、视图、索引、数据类型、函数和操作符。
    • 模式用于逻辑上组织数据库对象,使得具有相同名称的不同对象可以共存于不同的模式中,从而避免了命名冲突。
    • 模式可以看作是数据库中的一个容器或一个目录,它们包含的对象对于数据库用户来说是透明的。
    • 模式可以提高数据库的组织性,使得管理和访问控制更加方便。
    • PostgreSQL 默认提供了一个名为 public 的模式,用户也可以创建自己的模式。
  2. 表(Table)

    • 表是数据库中存储数据的实际结构,是关系型数据库的基本构建块。
    • 表由行(rows)和列(columns)组成,每一列可以有一个数据类型,每一行代表一个数据记录。
    • 表总是属于某个模式,并且每个模式可以包含多个表。
    • 表是实际存储数据的地方,用户可以通过 SQL 语句对表中的数据进行查询、插入、更新和删除等操作。

区别

  • 逻辑层次:模式是逻辑上的分组,而表是物理上存储数据的结构。
  • 命名空间:模式提供了一个命名空间,可以包含同名的表,这些表在不同的模式中不会冲突。
  • 组织结构:模式用于组织和分类数据库对象,而表则是这些对象中的一种,用于存储具体的数据。
  • 权限管理:模式可以有自己的权限设置,可以控制用户对模式内对象的访问,而表的权限通常是通过模式来继承的。

例如,你可以在一个名为 ecommerce 的模式中创建一个名为 customers 的表,这个表就属于 ecommerce 模式。如果你不指定模式,那么创建的表将默认放在 public 模式中。

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

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

相关文章

uniapp打包安卓apk步骤

然后安装在手机上就可以啦

MedMamba代码解释及用于糖尿病视网膜病变分类

MedMamba原理和用于糖尿病视网膜病变检测尝试 1.MedMamba原理 MedMamba发表于2024.9.28,是构建在Vision Mamba基础之上,融合了卷积神经网的架构,结构如下图: 原理简述就是图片输入后按通道输入后切分为两部分,一部分走…

每日论文18-24ISCAS采用磁调谐变压器低温CMOS28GHzVCO

《28 GHz VCO Using Magnetically Tuning Trifilar Transformer in Cryogenic CMOS Application 》24ISCAS 瞟到了这篇文章,开关真的是可以加在任何地方哈哈哈,还挺特别 通过改变电感偏压来改变Var的偏压,来拓宽带宽,其实是个挺简…

processing像素画教程

前提:各位已经安装了processing 第一步:创建一个简单的网格 我们首先创建一个网格来定义我们作品的像素画布。网格将帮助您在适当的位置绘制每个像素。 int gridSize 20; // 每个像素的大小 int cols, rows; void setup() {size(400, 400); // 设置画…

k8s 的网络通信

目录 1 k8s通信整体架构 2 flannel 网络插件 2.1 flannel 插件组成 2.2 flannel 插件的通信过程 2.3 flannel 支持的后端模式 3 calico 网络插件 3.1 calico 简介 3.2 calico 网络架构 3.3 部署 calico 1 k8s通信整体架构 k8s通过CNI接口接入其他插件来实现网络通讯。目前比较…

QTableView加入小灯泡

通过重载QAbstractTableModel中的data方法 QVariant CTblModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); int col index.column(); if (col ledColIndex && role Qt::DecorationRole) { return Q…

股指期货的杠杆是怎么体现和使用的?

股指期货的杠杆效应是通过保证金交易实现的。投资者只需支付合约价值的一小部分作为保证金,即可控制整个合约的价值。例如,如果一个股指期货合约的价值为100,000元,而保证金比例为10%,那么投资者只需支付10,000元即可控制这个合约…

PPT分享:埃森哲-业务流程BPM能力框架体系

PPT下载链接见文末~ 业务流程管理(BPM, Business Process Management)的能力框架体系是一个全面、系统的流程管理方法论和工具集,旨在帮助企业优化和持续改进其业务流程,从而提升运营效率和市场竞争力。 一、BPM能力框架体系概述…

云计算的江湖,风云再起

大数据产业创新服务媒体 ——聚焦数据 改变商业 还记得当年英特尔的广告语吗?“Intel Inside”,这个标志性的标签几乎成了计算设备的象征。然而,随着AI大模型的迅速崛起,计算的核心从CPU悄然转向了GPU。一场前所未有的技术革命正…

【学术会议征稿】第四届公共管理与大数据分析国际学术会议(PMBDA 2024)

第四届公共管理与大数据分析国际学术会议(PMBDA 2024) 2024 4th International Conference on Public Management and Big Data Analysis 第四届公共管理与大数据分析国际学术会议 (PMBDA 2024)将于2024年12月20-22日在中国青岛召开。会议主题主要围绕…

MySQL-表相关(DDL DML)

文章目录 表的基本操作表的创建表的删除 MySQL中的数据类型整数类型浮点数类型定点数类型日期和时间类型字符串类型charvarchartext 二进制类型 DDL语句查看建表语句修改表名新增字段修改字段(名类型)修改字段(仅类型)删除字段 表的基本操作 在介绍DDL和DQL的操作语句之前, 我…

HCIP-HarmonyOS Application Developer 习题(六)

(多选)1、Harmonyos多窗口交互能力提供了以下哪几种交互方式? A. 平行视界 B.全局消息通知 C.分屏 D.悬浮窗 答案:ACD 分析:系统提供了悬浮窗、分屏、平行视界三种多窗口交互,为用户在大屏幕设备上的多任务并行、便捷…

V2M2引擎传奇全套源码2024BLUE最新版 可自定义UI

特点优势是最新XE10.4或者XE12编辑器,微端,各种自定义UI 无限仿GOM引擎功能下载地址:BlueCodePXL_415.rar官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 提取码: AuX7BlueCodePXL_415.rar官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘…

无需复杂计算!如何用“加法”打造高效而低功耗的语言模型

当我们聊到人工智能特别是语言模型时,大家脑海中可能浮现的都是庞大的计算能力、高能耗的服务器群。然而,最近有一篇有趣的论文《Addition Is All You Need for Energy-Efficient Language Models》(加法才是低能耗语言模型的关键)却颠覆了我们对语言模型的传统认知。那么,…

Redis高级篇 —— 分布式缓存

Redis高级篇 —— 分布式缓存 文章目录 Redis高级篇 —— 分布式缓存1 Redis持久化1.1 RDB1.2 RDB的fork原理1.3 RDB总结1.4 AOF持久化1.5 RDB和AOF的对比 2 Redis主从2.1 搭建主从架构2.2 数据同步原理2.2.1 全量同步2.2.2 增量同步 3 Redis哨兵3.1 哨兵的作用和原理3.1.1 哨兵…

基于IOU匹配的DeepSort目标跟踪与匈牙利算法解析

在多目标跟踪任务中,如何将检测框与已有轨迹进行关联,进而维持目标的连续跟踪,是一个关键问题。DeepSort(Deep Simple Online and Realtime Tracking)是一种常用的多目标跟踪算法,它结合了IOU(交…

Linux搭建Hadoop集群(详细步骤)

前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 说白了就是实现一个任务可以在多个电脑上计算的过程。 一:准备工具 1.1 VMware 1.2L…

利用内部知识库优化SOP与HR培训效果评估

在当今快速变化的商业环境中,企业运营的高效性和员工的综合能力成为决定竞争力的关键因素。SOP作为确保业务一致性和质量的基础,其有效执行至关重要。同时,HR培训作为提升员工技能和知识的重要手段,其效果直接影响到企业的整体绩效…

【顶刊核心变量】中国地级市绿色金融试点改革试验区名单数据(2010-2023年)

一、测算方式: 参考《中国工业经济》崔惠玉(2023)老师的研究,2017 年,国务院决定将浙江、广东、江西、贵州和新疆的部分地区作为绿色金融改革创新试验 区的首批试点地区。试点地区在顶层设计、组织体系、产品创新、配…

Docker容器简介及部署方法

1.1 Docker简介 Docker之父Solomon Hykes:Docker就好比传统的货运集装箱 2008 年LXC(LinuX Contiainer)发布,但是没有行业标准,兼容性非常差 docker2013年首次发布,由Docker, Inc开发 1.1.1什么是Docker Docker是管理容器的引…