出处:http://www.cnblogs.com/stephen-liu74/archive/2012/06/08/2315679.html
一、概述:
数据库可以被看成是SQL对象(数据库对象)的命名集合,通常而言,每个数据库对象(表、函数等)只属于一个数据库。不过对于部分系统表而言,如pg_database,是属于整个集群的。更准确地说,数据库是模式的集合,而模式包含表、函数等SQL对象。因此完整的对象层次应该是这样的:服务器、数据库、模式、表或其他类型的对象。
在与数据库服务器建立连接时,该连接只能与一个数据库形成关联,不允许在一个会话中进行多个数据库的访问。如以postgres用户登录,该用户可以访问的缺省数据库为postgres,在登录后如果执行下面的SQL语句将会收到PostgreSQL给出的相关错误信息。
postgres=# SELECT * FROM MyTest."MyUser".testtables;
ERROR: cross-database references are not implemented: "otherdb.otheruser.sometable"
LINE 1: select * from otherdb.otheruser.sometable
在PostgreSQL中,数据库在物理上是相互隔离的,对它们的访问控制也是在会话层次上进行的。然而模式只是逻辑上的对象管理结构,是否能访问某个模式的对象是由权限系统来控制的。
执行下面的基于系统表的查询语句可以列出现有的数据库集合。
SELECT datname FROM pg_database;
注:psql应用程序的\l元命令和-l命令行选项也可以用来列出当前服务器中已有的数据库。
二、创建数据库:
在PostgreSQL服务器上执行下面的SQL语句可以创建数据库。
CREATE DATABASE db_name;
在数据库成功创建之后,当前登录角色将自动成为此新数据库的所有者。在删除该数据库时,也需要该用户的特权。如果你想让当前创建的数据库的所有者为其它角色,可以执行下面的SQL语句。
CREATE DATABASE db_name OWNER role_name;
三、修改数据库配置:
PostgreSQL服务器提供了大量的运行时配置变量,我们可以根据自己的实际情况为某一数据库的某一配置变量指定特殊值,通过执行下面的SQL命令可以使该数据库的某一配置被设置为指定值,而不再使用缺省值。
ALTER DATABASE db_name SET varname TO new_value;
这样在之后基于该数据库的会话中,被修改的配置值已经生效。如果要撤消这样的设置并恢复为原有的缺省值,可以执行下面的SQL命令。
ALTER DATABASE dbname RESET varname;
四、删除数据库:
只有数据库的所有者和超级用户可以删除数据库。删除数据库将会删除数据库中包括的所有对象,该操作是不可恢复的。见如下删除SQL命令:
DROP DATABASE db_name;
五、表空间:
在PostgreSQL中,表空间表示一组文件存放的目录位置。在创建之后,就可以在该表空间上创建数据库对象。通过使用表空间,管理员可以控制一个PostgreSQL服务器的磁盘布局。这样管理员就可以根据数据库对象的数据量和数据使用频度等参照来规划这些对象的存储位置,以便减少IO等待,从而优化系统的整体运行性能。比如,将一个使用频繁的索引放在非常可靠、高效的磁盘设备上,如固态硬盘。而将很少使用的数据库对象存放在相对较慢的磁盘系统上。下面的SQL命令用于创建表空间。
CREATE TABLESPACE fastspace LOCATION '/mnt/sda1/postgresql/data';
需要说明的是,表空间指定的位置必须是一个现有的空目录,且属于PostgreSQL系统用户,如postgres。在成功创建之后,所有在该表空间上创建的对象都将被存放在这个目录下的文件里。
在PostgreSQL中只有超级用户可以创建表空间,但是在成功创建之后,就可以允许普通数据库用户在其上创建数据库对象了。要完成此操作,必须在表空间上给这些用户授予CREATE权限。表、索引和整个数据库都可以放在特定的表空间里。见如下SQL命令:
CREATE TABLE foo(i int) TABLESPACE space1;
此外,我们还可以通过修改default_tablespace配置变量,以使指定的表空间成为缺省表空间,这样在创建任何数据库对象时,如果没有显示指定表空间,那么该对象将被创建在缺省表空间中,如:
SET default_tablespace = space1;
CREATE TABLE foo(i int);
与数据库相关联的表空间用于存储该数据库的系统表,以及任何使用该数据库的服务器进程创建的临时文件。
要删除一个空的表空间,可以直接使用DROP TABLESPACE命令,然而要删除一个包含数据库对象的表空间,则需要先将该表空间上的所有对象全部删除后,才可以再在删除该表空间。
要检索当前系统中有哪些表空间,可以执行以下查询,其中pg_tablespace为PostgreSQL中的系统表。
SELECT spcname FROM pg_tablespace;
我们还可以通过psql程序的\db元命令列出现有的表空间。
相关推荐
PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它以其强大的功能、高度的可靠性和灵活性而备受赞誉。本文将详细解析"postgresql-12.1.tar.gz"这个压缩包,以及在CentOS7系统中如何操作源码包进行安装...
PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它以其强大的功能、高度的可靠性和灵活性而备受赞誉。标题中的"postgresql-10.12-1-linux-x64-binaries.tar.gz"指示了这是PostgreSQL 10.12.1版本的...
PostgreSQL是一种开源的关系型数据库管理系统,它以其强大、稳定和灵活性而著名。 在描述中提到,“帆软连接postgre数据库插件”,指的是这个压缩包可能包含了帆软报表工具连接PostgreSQL数据库的特定组件。帆软...
"ruoyi-postgresql-flowable" 是一个基于 PostgreSQL 数据库的 Ruoyi 前后端分离项目,它集成了 Flowable 工作流引擎,用于实现高效的企业级流程管理。这个项目旨在提供一个完整的解决方案,使开发人员能够快速构建...
【PostgreSQL 9.6.1 初级手册:安装与使用】 PostgreSQL 是一个功能强大...以上就是PostgreSQL 9.6.1在Linux和Windows平台上的安装与基础使用方法,通过学习这些知识,您可以快速上手PostgreSQL并开始数据库管理工作。
在Linux环境中,...现在,你可以创建数据库、用户,开始你的数据库管理工作。如果你需要进一步了解PostgreSQL的使用,建议查阅官方文档或在线教程,学习如何创建数据库、管理用户权限、备份与恢复等高级操作。
PostgreSQL是一种开源关系型数据库管理系统(RDBMS),在IT领域广泛应用,特别是在需要高度可靠性和复杂查询的场景中。此“postgresql-9.5.0-1-windows 32位”压缩包是针对Windows操作系统32位架构的PostgreSQL ...
尽管给出的文档内容有所缺失,从现有的部分可以推断出postgresql-10权威指南是一个全面的文档资源,为数据库管理员和开发人员提供了详细的指导,以使他们能够熟练掌握postgresql数据库的设计、部署和维护。...
PostgreSQL 是一款强大的开源关系型数据库管理系统,具有高度的稳定性和可扩展性,被广泛应用于各种规模的企业和项目。本文将详细介绍如何使用提供的 PostgreSQL-10 安装包进行安装,以及在安装过程中可能遇到的关键...
PostgreSQL 是一个强大的开源对象关系型数据库管理系统,其9.1.1版本是该系统的一个稳定发行版。在"postgresql-9.1.1-1-windows-binaries"这个压缩包中,包含了在Windows操作系统上安装和运行PostgreSQL 9.1.1所需的...
在开始学习任何数据库之前,最重要的第一步就是安装部署一个可供学习和测试的环境。选择一个在业界广泛使用的操作系统版本,以及一个成熟稳定的数据库版本至关重要。PostgreSQL作为一款强大的开源关系型数据库系统,...
总结,PostgreSQL 11.1作为一款64位的Windows数据库系统,提供了诸多性能优化和管理功能。通过安装文件postgresql-11.1-1-windows-x64.exe,用户可以在Windows环境中轻松搭建自己的数据库服务器,享受PostgreSQL带来...
标题 "51CTOマツヤリ-postgresql-9.2.4-1-windows.zip" 指示了这是一个与 PostgreSQL 数据库相关的压缩文件,特别...无论你是开发者、数据库管理员还是学习数据库技术的学生,PostgreSQL 都是一个值得探索的优秀选择。
通过理解和分析PostgreSQL的内核源码,特别是其备份恢复机制的实现原理,可以帮助数据库管理员和技术人员更好地维护数据库的正常运作。以上内容总结了PostgreSQL内核分析和逻辑备份还原的关键知识点,并提供了相关的...
**PostgreSQL 9.5.1 源码包详解** ...无论是为了自定义、优化还是学习,掌握源码安装和使用都是提升数据库管理技能的重要步骤。在实践中,不断探索和应用这些知识点,能够让你更好地驾驭这个强大的数据库系统。
这个版本发布于2019年,它提供了对64位Windows操作系统的全面支持,为开发者和系统管理员提供了在Windows环境下部署和管理PostgreSQL数据库的能力。 在解压这个压缩包后,您会得到一系列的pgsql文件,这些文件包含...
PostgreSQL 是一个强大的开源关系型数据库管理系统,以其稳定性和丰富的功能在IT行业中备受推崇。这里的“postgresql-9.2.24-1-windows-binaries.zip”是一个针对Windows操作系统的32位版本的PostgreSQL数据库软件包...
- **Berkeley POSTGRES 项目**(2.1节):该项目始于 1986 年,是加州大学伯克利分校的一个研究项目,旨在开发下一代的数据库管理系统。其目标是在关系数据库中实现面向对象的概念。 - **Postgres95**(2.2节):...
### PostgreSQL 9.0 高性能优化指南 #### 核心知识点概述 ...通过以上知识点的学习与实践,可以有效地提升PostgreSQL数据库系统的整体性能,避免常见的性能陷阱,为用户提供更加快速稳定的服务体验。