postgresql-数据库与模式

news2024/12/25 10:06:30

postgresql-数据库

  • 基本概念
  • 创建数据库
  • 修改数据库
  • 删除数据库
  • 管理模式

基本概念

数据库管理系统(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)。

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

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

相关文章

vue3-ts-vite:Google 多语言调试 / 翻译

一、实现目标 二、代码实现 2.1、项目vue3 - ts - vite 2.2、index.html 引入文件 <script>window.onload function () {const script document.createElement(SCRIPT)script.src https://translate.google.com/translate_a/element.js?cbgoogleTranslateElementI…

kr 第三阶段(六)C++ 逆向

结构体 结构体对齐 设置结构体对齐值 方法1&#xff1a;在 Visual Studio 中可以在 项目属性 -> 配置属性 -> C/C -> 所有选项 -> 结构体成员对齐 中设置结构体对齐大小。方法2&#xff1a;使用 #pragma pack(对齐值) 来设置&#xff0c;不过要想单独设置一个结…

2023 “华为杯” 中国研究生数学建模竞赛(D题)深度剖析|数学建模完整代码+建模过程全解全析

问题一&#xff1a;区域碳排放量以及经济、人口、能源消费量的现状分析 思路&#xff1a; 定义碳排放量 Prediction 模型: CO2 P * (GDP/P) * (E/GDP) * (CO2/E) 其中: CO2:碳排放量 P:人口数量 GDP/P:人均GDP E/GDP:单位GDP能耗 CO2/E:单位能耗碳排放量 2.收集并统计相关…

vuereact质检工具(eslint)安装使用总结

1、ESLint ESLint工具主要类似java中的checkStyle和findbugs&#xff0c;是检查代码样式和逻辑规范的工具。 1.1、ESLint安装流程 打开VSCode软件&#xff0c;打开扩展中心&#xff0c;下载ESLint插件 图1.1 点击后面的install按进行安装&#xff0c;如图1.2所示&#xff1…

MySQL(8) 优化、MySQL8、常用命令

一、MySQL优化 从上图可以看出SQL及索引的优化效果是最好的&#xff0c;而且成本最低&#xff0c;所以工作中我们要在这块花更多时间。 服务端参数配置&#xff1b; max_connections3000 连接的创建和销毁都需要系统资源&#xff0c;比如内存、文件句柄&#xff0c;业务说的支持…

代码随想录算法训练营第四十二天| 01背包问题,你该了解这些! 01背包问题,你该了解这些! 滚动数组 416. 分割等和子集

正式开始背包问题&#xff0c;背包问题还是挺难的&#xff0c;虽然大家可能看了很多背包问题模板代码&#xff0c;感觉挺简单&#xff0c;但基本理解的都不够深入。 如果是直接从来没听过背包问题&#xff0c;可以先看文字讲解慢慢了解 这是干什么的。 如果做过背包类问题&…

网络安全深入学习第七课——热门框架漏洞(RCE— Fastjson反序列化漏洞)

文章目录 一、什么是json?二、Fastjson介绍三、Fastjson-历史漏洞四、Fastjson特征1、在请求包里面有json格式的2、报错信息中会显示fastjson字眼 五、Fastjson序列化和反序列化六、Fastjson反序列化漏洞原理七、Fastjson反序列化漏洞过程八、Fastjson反序列化漏洞&#xff08…

农林种植类VR虚拟仿真实验教学整体解决方案

传统的葡萄嫁接需要在固定月份&#xff0c;实操成本高&#xff0c;管理周期长&#xff0c;葡萄嫁接VR虚拟仿真实训是VR虚拟仿真公司深圳华锐视点通过在虚拟环境中模拟葡萄嫁接过程&#xff0c;融入教学和实训考核多种模式&#xff0c;打造了全新的职业技能培训方式。 葡萄嫁接V…

【Java实战项目】【超详细过程】—— 大饼的图片服务器6

目录 前言一、引入MD51.引入md5计算依赖2.按照md5值查找图片属性3.存储图片4.删除图片 二、防盗链三、分类查看图片1.思路&#xff1a;2.数据库3.Image4.from表单5.ImageDao类中原有方法6.按照类型sort在数据库中查找图片属性7.ImageServlet 类8.ImageSortServlet类9.WEB.xml绑…

DevExpress WinForms图表组件 - 直观的数据信息呈现新方式!(一)

凭借界面控件DevExpress WinForms全面的2D和3D图表类型的集合&#xff0c;DevExpress WinForms的图表控件设计大大简化了开发者直观地向最终用户呈现信息的方式。 DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。同时能完…

[python 刷题] 739 Daily Temperatures

[python 刷题] 739 Daily Temperatures 题目&#xff1a; Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperatur…

记一次实战案例

1、目标&#xff1a;inurl:news.php?id URL&#xff1a;https://www.lghk.com/news.php?id5 网站标题&#xff1a;趋时珠宝首饰有限公司 手工基础判断&#xff1a; And用法 and 11: 这个条件始终是为真的, 也就是说, 存在SQL注入的话, 这个and 11的返回结果必定是和正常页…

修改vscode底部栏背景和字体颜色

修改vscode底部栏背景和字体颜色 如图&#xff1a; 首先打开齿轮&#xff0c;打开设置搜索workbench.colorCustomizations,然后点击编辑setting.json修改setting.json内内容 "workbench.colorCustomizations": {"statusBar.foreground": "#FFFFFF…

为什么u盘在mac上显示不出来

插入U盘是个看似简单的操作&#xff0c;但有时候在Mac电脑上却出现了无法显示U盘的情况。这样的问题是非常让人头疼的&#xff0c;特别是当你急需使用U盘中的文件时。那么&#xff0c;究竟为什么U盘在Mac上会显示不出来呢&#xff1f;今天就让我们一起来深入了解一下这个问题&a…

OR54 字符串中找出连续最长的数字串

目录 一、题目 二、解答 &#xff08;一&#xff09;问题一&#xff1a;在记录完一组连续字符串后&#xff0c;没有注意判别紧随其后的非数字字符 &#xff08;二&#xff09;问题二&#xff1a;越界访问 &#xff08;三&#xff09;正确 一、题目 字符串中找出连续最长的…

powerDesigner 的基本使用

打开powerDesigner 新建 PDM(物理数据模型) 添加表字段 双击表&#xff0c;设置ID自增 选择导出数据库表SQL 导出成功 使用三方工具连接数据库&#xff0c;然后运行对应SQL文件即可 导入SQL文件数据到powerDesigner

Ae 效果:CC Tiler

扭曲/CC Tiler Distort/CC Tiler CC Tiler &#xff08;CC 平铺器&#xff09;主要用于将图像以平铺的方式重复显示&#xff0c;可以创建有趣的复制和平铺的视觉效果。 平铺的范围限制在图层大小。如果想在合成大小内进行平铺&#xff0c;最简单的方法是先将源图像&#xff08;…

【数据结构】逻辑结构与物理结构

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 根据视点的不同,我们把数据结构分为逻辑结构和物理结构. &#x1f333;逻辑结构 逻辑结构:是指数据对象中数据元素之间的相互关系. 逻辑结构分为以下四种: 1.集合结构 集合结…

计算机中实数的比较

计算机中实数的比较 最近被问到了实数与0为什么不能直接比较的问题&#xff0c;要想说清楚还真不容易。 这里从浮点数的表示、内存存储角度加以总结。 科学计数法 科学计数法表示十进制数的浮点数遵循了小数点前面只有一个数&#xff08;1~9&#xff09;的规则。 例如&…

python+nodejs+php+springboot+vue 法律知识分享科普系统平台

在设计过程中&#xff0c;充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 要想实现法律知…