postgresql-数据库与模式

这篇具有很好参考价值的文章主要介绍了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)组成。通
常所说的数据库管理系统也就是指数据库系统。
postgresql-数据库与模式,postgresql,数据库,postgresql

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

创建数据库

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

select datname from pg_database;

postgresql-数据库与模式,postgresql,数据库,postgresql

--使用 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-数据库与模式,postgresql,数据库,postgresql
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;

级联删除可能会删除一些我们意料之外的对象,使用时需要小心。
数据库中的大多数对象都位于某个模式之中,这样设计的好处在于:文章来源地址https://www.toymoban.com/news/detail-718015.html

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

到了这里,关于postgresql-数据库与模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PostgreSQL Linux操作PostgreSQL数据库

    PostgreSQL教程 菜鸟教程:https://www.runoob.com/postgresql/postgresql-tutorial.html 登录PG数据库:psql -U 用户名(U需要大写) 登录PG数据库(指定主机、端口,并进入指定数据库): psql -U 用户名 -h 127.0.0.1 -p 5432 -d 数据库名 -U 登录的用户名 -h 连接的主机(默认127.0.0.1,可替换成远程主机

    2024年02月11日
    浏览(44)
  • 数据库新闻速递 -- POSTGRESQL 正在蚕食数据库市场 (翻译)

    开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 ,在新加的朋友会分到3群(共1140人左右 1 + 2 + 3) 尽管NoSQL数据库继续蓬勃发展,但关系型数据库仍

    2024年02月13日
    浏览(45)
  • [运维|数据库] docker postgresql数据库环境变量配置

    要配置Docker中的PostgreSQL数据库的环境变量,可以使用以下方法: 使用Docker命令行: 将 用户名 , 密码 , 数据库名 替换为你想要设置的实际值。这将创建一个名为 mypostgres 的容器,并将 PostgreSQL 的用户名、密码和数据库名设置为指定的值。 -p 5432:5432 指定了容器内部和主机之间

    2024年02月09日
    浏览(47)
  • PostgreSQL-数据库命令

    一个数据库是一个或多个模式的集合,而模式包含表、函数等。因此,完整的逻辑组织结构层次是服务器实例(PostgreSQL Server)、数据库(Database)、模式(Schema)、表(Table),以及某些其他对象(如函数)。一个PostgreSQL服务器实例可以管理多个数据库。当应用程序连接到一

    2024年02月14日
    浏览(36)
  • PostgreSQL 创建数据库

    PostgreSQL 创建数据库可以用以下三种方式: CREATE DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下: 例如,我们创建一个 runoobdb 的数据库: createdb 命令创建数据库 createdb 是一个 SQL 命令 CREATE DATABASE 的封装。 参数说明: . dbname:要创建的数据库名。 . description:关

    2024年02月12日
    浏览(42)
  • Postgresql数据库死锁

    ERROR: deadlock detected DETAIL: Process 95 waits for ShareLock on transaction 3553457; blocked by process 187. Process 187 waits for ShareLock on transaction 3553458; blocked by process 95. HINT: See server log for query details. CONTEXT: while updating tuple (0,6) in relation “deadlock_example” 其中 Process 95 在等待共享锁(ShareLock)的事务

    2024年01月20日
    浏览(49)
  • 【PostgreSql】只删除整个数据库的表(不删除数据库)

    环境: windows 数据库: postgresql 前提: 此方法用来删除数据库所有的表,不包括保存的函数语句、查询语句等(可适用于需要删除整个数据库的数据却又不想删除数据库或者数据库正在连接无法被删除的情况) 查询数据库所有的表(假设表都在public模式下) 这个语句会列出

    2024年04月12日
    浏览(38)
  • postgresql 数据库 索引 介绍

    大家在学习数据库的时候,是不是常常听到索引?那什么是索引呢?索引有哪些作用呢?索引有哪些种类呢?为什么要建索引呢?带着这些疑问,本文带你一起学习postgresql数据库的索引。 索引是提高数据库性能的常用途径。比起没有索引,使用索引可以让数据库服务器更快

    2024年02月13日
    浏览(43)
  • PostgreSQL连接指定数据库

    要连接到PostgreSQL中的指定数据库,您需要使用以下格式的连接字符串: 其中,username是连接PostgreSQL的用户名,password是该用户的密码,hostname是PostgreSQL服务器的主机名或IP地址,port是PostgreSQL服务器的端口号,database_name是要连接的数据库名称。 例如,如果您要连接到名为my

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包