postgresql-数据库与模式

PostgreSQL - 基础入门 它是开源的,其源代码是免费提供的。它是用PHP编写的PostgreSQL的基于Web的管理工具。PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。它是一个命令行工具,也是管理PostgreSQL的主要工具。左外连接返回从“ON”条件中指定的左侧表中的所有行,只返回满足条件的另一个表中的行。右外连接返回从“ON”条件中指定的右侧表中的所有行,只返回满足条件的另一个表中的行。右边的空格填充到相等大小的字符。 阅读详情

基本概念

数据库管理系统(DBMS)是用于管理数据库的软件系统。常见的关系型DBMS有PostgreSQL、
MySQL、Oracle、Microsoft SQL Server、SQLite 等。常见的 NoSQL 数据库有 Redis、MongoDB、
Cassandra、Neo4j 等。PostgreSQL 荣获了数据库排名网站DB-Engines 2017、2018 以及 2020 年度数据库管理系统称号

PostgreSQL 数据库系统由实例(Instance)和物理数据库集群(Database Cluster)组成。通
常所说的数据库管理系统也就是指数据库系统。
在这里插入图片描述

实例(Instance)由 PostgreSQL 后台进程和相关的内存组成。启动服务器进程时创建一个实
例,关闭服务器进程时实例随之关闭。启动 PostgreSQL 服务器进程之后,可以通过操作系统的
ps 命令查询相关的后台进程:
在这里插入图片描述
数据库集群,每个 PostgreSQL 实例管理的都是一个数据库集群,它可以包含多个数据库。
需要注意,这里的集群不是多台服务器组成的集群
在这里插入图片描述
数据库(Database),一个数据库由一组相关的对象组成,例如表、索引、视图、存储
过程
模式(Schema),数据库中的对象使用模式进行组织。准确地说,一个数据库由多个模式
组成,模式由许多对象组成
表空间(Tablespace),在 PostgreSQL 中,数据库对象(例如表)在文件系统中对应的是文
件,表空间指定了这些文件存储的目录。创建数据库对象时,只需要指定存储对象的表空间的名
称(或者使用默认值),而不需要指定磁盘上的物理路径

创建数据库

使用 SQL 语句查看已有的数据库

select datname from pg_database;

在这里插入图片描述

--使用 SQL 语 CREATE DATABASE 创建一个数据库:
CREATE DATABASE name;

创建数据库时还可以指定许多选项,例如字符集编码、拥有者、默认表空间、最大连接数等
等。具体参考官方文档中完整的create database

修改数据库

ALTER DATABASE name action;

action 指定了要执行的修改操作,例如修改数据库的名称、所有者、默认表空间、数
据库会话变量的默认值等

-- 修改 testdb 的名称为newdb
alter database testdb rename to newdb;

ALTER DATABASE 语句还可以用于修改运行时配置变量的会话默认值
当用户连接数据库时,PostgreSQL 使用配置文件 postgresql.conf 或者启动命令 postgres 中设
置的变量值作为默认值。使用 ALTER DATABASE 语句可以设置指定数据库的这些配置:

ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }

PostgreSQL 将会使用该命令设置的值覆盖 postgresql.conf 文件或者命
令行参数的值。注意,只有超级用户或者数据库的拥有者才能修改数据库的默认会话变量

-- 以下语句将会默认禁用数据库 newdb 中的索引扫描
alter database newdb set enable_indexscan to off;
-- 数据库newdb开启索引扫描
ALTER DATABASE newdb RESET enable_indexscan;

alter database 详细配置

删除数据库

-- 使用 DROP DATABASE 语句删除一个数据库 name表示数据库名称
DROP DATABASE [ IF EXISTS] name;

如果使用了 IF EXISTS,删除一个不存在的数据库时不会产生错误信息

删除数据库会同时删除该数据库中所有的对象,以及文件系统中的数据目录。只有数据库的
拥有者才能够删除数据库。另外,如果数据库上存在用户连接,无法执行删除操作,可以连接到
其他数据库执行删除命令

DROP DATABASE 命令的删除操作无法恢复,使用时千万小心!

管理模式

创建了数据库之后,还需要创建模式(Schema)才能够存储数据库对象。通常在创建一个
新的数据库时,默认会创建一个模式 public

-- 查看当前数据库中的模式
select * from pg_namespace ;

在这里插入图片描述
PostgreSQL 也提供了管理模式的语句:

  • CREATE SCHEMA,创建一个新的模式
  • ALTER SCHEMA,修改模式的属性
  • DROP SCHEMA,删除一个模式
-- 创建模式时还可以指定它的拥有者:
 CREATE SCHEMA app AUTHORIZATION tony;

以 pg_开头的名称是系统保留的模式名称,用户无法创建这样的模式。
创建了模式之后,我们就可以在模式中创建各种数据库对象,例如表、数据类型、函数以及
运算符(模式相当于表空间)

-- 如果需要修改已有模式的属性 ,可以使用 ALTER SCHEMA 语句:
ALTER SCHEMA name RENAME TO new_name
ALTER SCHEMA name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
-- 如果模式中没有任何对象,使用以下语句即可删除该模式:
DROP SCHEMA name;

如果模式中存在其他对象,需要先删除该模式中所有的对象,或者使用
以下语句级联删除这些对象

DROP SCHEMA name CASCADE;

级联删除可能会删除一些我们意料之外的对象,使用时需要小心。
数据库中的大多数对象都位于某个模式之中,这样设计的好处在于:

  • 允许多个用户使用同一个数据库而不会互相干扰,他们可以使用不同的模式来维护自己
    的数据
  • 将数据库对象进行逻辑上的分组,便于管理
  • 第三方应用可以使用单独的模式,不会与系统中的其他对象产生命名冲突
    在我们常用的数据库对象中,最主要的就是数据表(table)。
PostgreSql简介 PostgreSQL简介 阅读详情

相关推荐

【PostgreSQL】手把手教学PostgreSQL

PostgreSQL 是一个功能强大的开源对象关系数据库系统,它使用和扩展了 SQL 语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。PostgreSQL 因其经过验证的架构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背后的开源社区致力于始终如一地提供高性能和创新的解决方案而赢得了良好的声誉。数据类型基元:整数、数字、字符串、布尔值结构化:日期/时间、数组、范围/多范围、UUID文档:JSON/JSONB、XML、KEY-VALUE (HSTORE)几何:点、线、圆、多边形。

Fanjufei的博客 5570

PGSQL(PostgreSQL)数据库基础篇:PostgreSQL 的 主要优点 、 劣势 、体系结构 、核心功能 、安装教程。

1.最新版本和历史版本不分离存储,导致清理老旧版本时需要做更多的扫描,代价比较大但一般的数据库都有高峰期,如果合理安排VACUUM,这也不是很大的问题,而且在PostgreSQL9.0中VACUUM进一步被加强了。2.在PostgreSQL中,由于索引完全没有版本信息,不能实现Coverage index scan,即查询只扫描索引,不能直接从索引中返回所需的属性,还需要访问表,而Oracle与Innodb则可以。因为存储过程的存在也避免了在网络上大量原始的SQL语句的传输,这样的优势是显而易见的。

一码归一码@ 1万+

PostgreSQL-表空间、数据库、模式、角色实践

目录 1表空间(tablespace) 数据库(database) 模式(Schema) ​​​​​​​角色(role||user) 1. 表空间(tablespace) 不同的数据库表空间有不同的定义。在postgres中,表空间允许在文件系统中定义数据库对象存储的位置,实质上就是指定一个目录。 1.2 应用场景 存储磁盘没有空间时,可以使用表空间把数据存在其它地方; 利用表空间对数据库进行性能优化。常用来将频繁使用的数据表或者索引放在高性能的硬盘上,而较少使用的放在普...

技术改变世界 3436

数据库之PostgreSQL详解

在日常操作中,对于一组相关操作,通常要求要么都成功,要么都失败。在关系型数据库中,称这一组操作为事务。原子性A:事务是一个最小的执行单位,一次事务中的操作要么都成功,要么都失败。一致性C:在事务完成时,所有数据必须保持在一致的状态。(事务完成后吗,最终结果和预期结果是一致的)隔离性:一次事务操作,要么是其他事务操作前的状态,要么是其他事务操作后的状态,不存在中间状态。持久性:事务提交后,数据会落到本地磁盘,修改是永久性的。

励志成为一名优秀的全能型软件开发工程师。 2万+

《PostgreSQL开发指南》第05篇 数据库与模式

一个 PostgreSQL 实例管理一个数据库集群,一个集群可以包含一个或多个数据库(database),一个数据库包含一个或多个模式(shcema),模式就像是一个命名空间,其中包含了许多数据库对象,例如表、索引等等。 本文介绍 PostgreSQL 中数据库和模式的相关操作。

Tony.Dong的专栏 2275

STM32 RC522串口驱动程序 (简单直接)

rc522作为使用非常多的读写卡芯片,使用SPI芯片读写应用已经非常广了。但有些时候我们只有串口可以使用,或者我们觉得串口使用更加方便,那么就必须要编写串口的驱动程序。不过很难找到可以直接使用的串口程序。所以在此将我这边写好的串口驱动写好如下: 直接上代码 下面是RC522.C的驱动文件。支持读写卡号8位数据。rc522用的是stm32 的串口3,调试显示是串口1; #include "rc522.h" #include "delay.h" /////////////////////////////////

qq_42074368的博客 9000

PostgreSQL15——数据库与模式

注意,只有超级用户或者数据库的拥有者才能修改数据库的默认会话变量。删除数据库会同时删除该数据库中所有的对象,以及文件系统中的数据目录。以pg_开头的名称是系统保留的模式名称,用户无法创建这样的模式。创建了模式之后,我们就可以在模式中创建各种数据库对象,例如表、数据类型、函数以及运算符等等。数据库集群,每个 PostgreSQL 实例管理的都是一个数据库集群,它可以包含多个数据库。其中,action 指定了要执行的修改操作,例如修改数据库的名称、所有者、默认表空间、数据库会话变量的默认值等等。

吴声子夜歌的博客 1245

SAP-QM-质检操作

SAP-QM-质检操作

yanzibing99的博客 8176

PostgreSQL中数据库和模式的区别和作用

在 PostgreSQL 中,数据库(Database) 和 模式(Schema) 是两个层级不同的概念

weixin_44594317的博客 1762

robot framework循环读取excel表操作

robot framework循环读取excel表操作 1、安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-excellibrary-xwfintech 注意:网上有很多excel处理的,都是基于python2.7的,还有一些对python3以上都是修改包的方式,其实都不需要,在pip官网上有python3以上的excellibrary,名称是robotframework-excellib 2.0.0,但是该包关键字不

余墨的博客 1318

STC8H开发(十六): GPIO模拟SPI驱动Ci24R1实现低成本无线遥控

本文详细介绍了如何使用STC8H单片机通过GPIO模拟SPI驱动Ci24R1无线模块,实现低成本无线遥控方案。内容涵盖硬件设计要点、软件驱动开发技巧及实战优化经验,特别适合消费电子产品开发者参考。Ci24R1凭借其高性价比和双模协议支持,成为替代传统nRF24L01+的理想选择。

weixin_30378623的博客 349

postgresql10数据库之模式

模式的概念 官方文档中对于模式的解释: 一个postgresql数据库中包含一个或更多命名的数据库。用户和用户组被整个集簇共享,但没有其他数据在数据库之间共享。任何给定客户端连接只能访问在连接中指定的数据库中的数据。 换一种通俗易懂的方式,就是说: 模式(schema)是对数据库(database)的逻辑分割。 在数据库创建的同时,就默认为其创建了一个public模式。 数据库是被模式来分割的,一...

xuxu96 2268

【史上最全面esp32教程】网络篇和tcp/ip的使用

ESP32史上最全面wifi和tcp/ip连接及示例程序

m0_62599305的博客 9520

ECC 的 database-migrations 技能全解:PostgreSQL 与多 ORM 的零停机数据库迁移模式

本文基于 ECC(Everything Claude Code)仓库中 `.kiro/skills/database-migrations/SKILL.md` 技能文档展开,系统讲解生产级数据库迁移的五大核心原则、迁移前安全检查清单、PostgreSQL 下加列/建索引/改列名/删列/大数据回填的无锁操作模式,以及 Prisma、Drizzle、Kysely、Django、golang-migra

gitblog_00551的博客 244

智能水下机器人设计: 基于MATLAB的水下机器人动力学建模和控制系统设计,包括水下环境感知、路径规划和任务执行等

智能水下机器人是指能够在水下自主完成各种任务的机器人,例如探测、勘察、救援等。它具有广阔的应用前景,可用于海洋环境监测、水下考古、海上作业等领域。基于MATLAB的水下机器人设计可以为科研人员和工程师提供强大的建模和仿真工具,帮助他们设计更智能、更高效的水下机器人。智能水下机器人是未来海洋科技发展的重要方向,它将为海洋科学研究、水下考古和海上作业等领域带来新的机遇。MATLAB是一种功能强大的数学和科学计算软件,它可以为智能水下机器人设计提供强大的工具和支持。

走向CTO的路上... 958

【应用】什么是Azure?一文读懂微软云的核心逻辑与全球版图

作为微软的核心云计算服务平台,Azure不仅是数字化转型的引擎,更是全球企业在构建、扩展与优化IT基础设施时的首选平台。在这篇文章中,我们将深入探讨Azure云服务平台的各个方面,涵盖其核心优势、架构、功能、应用场景以及未来发展趋势。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1946

PostgreSQL 中模式和 MySQL 中的数据库的对比

在 PostgreSQL 中,模式(Schema) 和 MySQL 中的数据库(Database) 有一些相似之处,但它们的概念和作用并不完全相同。

weixin_44594317的博客 1322

在 SAP BTP 上为应用开启多租户能力:基于 SaaS Provisioning 和 XSUAA 的完整实践指南

本文介绍了在SAP BTP上配置多租户应用的实战指南。主要内容包括: 多租户架构概述:解释provider子账户、consumer子账户和tenant的概念,以及数据隔离机制。 安全配置:在xs-security.json中设置tenant-mode为shared,并为SaaS Provisioning服务添加回调scope授权。 路由配置:通过manifest.yml设置TENANT_HOST_PATTERN来定义多租户访问模式,确保不同租户通过不同子域名访问同一应用。 服务绑定:将XSUAA和SaaS

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 144

PostgreSQL 数据库模式基础操作

一个数据库可以包含多个模式,模式之间可以隔离,避免命名冲突。但是在MySQL中,模式(Schema)和数据库是同义词,MySQL的架构相对简单,主要由实例、数据库、表和列组成。我们创建了表,但未指定任何架构名称时,在这种默认情况下,会自动放入名为 “public” 的模式中。此外,还可以创建模式、在模式下创建表、删除模式。、模式和权限、系统目录架构、使用模式和可移植性等内容,我感觉暂时没有就没学习和做笔记,大家可以去看官网。来删除模式及其内部的所有对象,一旦执行,这些对象将无法恢复,除非有数据库备份。

weixin_43416590的博客 937

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PostgreSQL关闭数据库服务的三种模式例子解析

服务器不允许新的客户端连接,同时向所有的服务进程发送SIGTERM信号,回滚进行中的事务并且强制断开所有客户端的连接,然后关闭数据库。在PostgreSQL中,关闭数据库服务有三种模式,分别是智能关闭(Smart Shutdown)、快速关闭(Fast Shutdown)和立即关闭(Immediate Shutdown)。:不建议使用SIGKILL信号关闭服务,这种方式会阻止服务释放共享内存和信号量,并且这种方式终止主服务器进程时不会发送信息到子进程,因此还需要手动关闭每个子进程。

IT老农民的博客 885

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PostgreSQL 模式(SCHEMA)详解:数据库对象的命名空间管理

实现多租户隔离提高对象管理效率增强数据库安全性避免命名冲突掌握模式的创建、管理和使用技巧,是PostgreSQL数据库管理的重要基础。在实际应用中,建议结合业务需求设计合理的模式结构,并配合适当的权限控制,构建安全高效的数据库环境。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

postgresql 数据库,模式,表空间的关系

数据库与模式模式(schema)是对数据库(database)逻辑分割在数据库创建的同时,就已经默认为数据库创建了一个模式--public,这也是该数据库的默认模式。所有为此数据库创建的对象(表、函数、试图、索引、序列等)都是常见在这个模式中的。test2_user=# create database mypg; #创建一个数据库CREATE DATABASEtest2_user=# \c myp...

weixin_30616969的博客 1167

PostgreSQL学习笔记(一):数据库、模式、表空间、用户、用户角色

当需要对一组数据库表(或函数等)的并发数进行单独控制时,需要对这些表(或函数等)放入一个新建的 database 中,PostgreSQL 对最大并发访问会话进行单独控制的最小单元是 database。其中的层级关系是:数据库-模式-对象。需要注意的是,虽然能创建多个数据库实例,但不能同时访问不同数据库中的对象,当需要访问另一个数据库中的表或其他对象时,需要重新连接到这个数据库,而模式却没有此限制,一个用户在连接到一个数据库后,就可以同时访问这个数据库中多个模式的对象。不同的数据库表空间有不同的定义。

u011047968的专栏 4077

PostgreSQL 表空间、数据库、模式、角色和用户之间的关系梳理

不同的数据库表空间有不同的定义。在postgres中,表空间允许在文件系统中定义数据库对象存储的位置,实质上就是指定一个目录。应用场景:存储磁盘没有空间时,可以使用表空间把数据存在其它地方;利用表空间对数据库进行性能优化。常用来将频繁使用的数据表或者索引放在高性能的硬盘上,而较少使用的放在普通硬盘上。自带两个表空间:pg_default,pg_globalpg_default 用来存储系统目录对象,用户表、用户表index、临时表、临时表index、内部临时表的默认空间。

老苏畅谈运维 2647

PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系

看PostgreSQL9的官方文档,我越看越迷糊,这表空间,数据库,模式,表,用户,角色之间的关系怎么在PostgreSQL里这么混乱呢? 经过中午的一个小实验,我逐渐理清了个中来龙去脉。下面我来还原我的试验,并循序讲清其中关系。 首先,实验出角色与用户的关系 在PostgreSQL中,存在两个容易混淆的概念:角色/用户。之所以说这两个概念容易混淆,是因为对于PostgreSQL来说,这

深入理解PostgreSQL 1997

PostgreSQL-数据库、模式、表空间、用户、用户角色

在 PostgreSQL数据库中,数据库(database)可以认为是物理层面数据集合。当使用不同的文字编码/排序规则等管理数据对象时,不同的文字编码规则/排序规则要创建独立的的数据库。PostgreSQL 关于文字编码/排序规则等行为的默认规则是以database为单位的。当需要对一组数据库表(或函数等)的并发数进行单独控制时,需要对这些表(或函数等)放入一个新建的 database 中,PostgreSQL 对最大并发访问会话进行单独控制的最小单元是 database。

顺其自然~专栏 372
上一篇: postgresql用户和角色
下一篇: postgresql-管理数据表
迷失的小鹿
博客等级 码龄8年 1万+粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值