返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

19.1. 概述

发布于 2019-09-30 03:07:16 字数 841 浏览 987 评论 0 收藏 0

数据库是一些 SQL 对象("数据库对象")的集合;通常每个数据库对象(表、函数等)属于并且只属于一个数据库。不过有几个系统表(比如 pg_database)属于整个集群并且可以在集群之内的每个数据库里访问。更准确地说,一个数据库是一个模式的集合,而模式包含表、函数等等。因此完整的层次是这样的:服务器→数据库→模式→表(或者其它类型对象,比如函数)。

在与数据库服务器连接的时候,应用应该在它的连接请求里指明它想连接的数据库名称。不允许在一次连接里访问多个数据库(不过没有限制一个应用可以建立的连接数量)。数据库是物理上相互隔离的,对它们的访问控制是在连接层次进行的。如果一个 PostgreSQL 服务器实例用于承载那些应该分隔并且相互之间并不知晓的用户和项目,那么我们建议把它们放在不同的数据库里。如果项目或者用户是相互关联的,并且可以相互使用对方的资源,那么应该把它们放在同一个数据库里,但可能在不同的模式中。模式只是一个纯粹的逻辑结构,谁能访问某个模式由权限系统控制。有关管理模式的更多信息在节5.7里。

数据库是使用 CREATE DATABASE 命令创建的(参阅节19.2),用 DROP DATABASE 命令删除(参阅节19.5)。要查看现有数据库的集合,可以检查系统表 pg_database ,比如

SELECT datname FROM pg_database;

psql 程序的 \l 元命令和 -l 命令行选项也可以用来列出现存的数据库。

【注意】SQL 标准把数据库称作"目录"(catalog),不过这两个东西实际上没有什么区别。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文