15道 PostgreSQL 常见面试题(附答案)

2022年9月11日09:10:45数据库教程评论90 views字数 3407阅读模式

PostgreSQL简介

PostgreSQL是对象关系数据库管理系统最常用的语言之一。它主要用于大型 Web 应用程序。它是一个面向对象的关系型开源数据库系统。它非常强大,允许用户轻松扩展任何系统。它扩展了 SQL 语言并采用多种功能来安全地扩展和存储复杂的数据工作负载。15道 PostgreSQL 常见面试题(附答案)

PostgreSQL 的特点

  • 语言支持:PostgreSQL 支持四种标准的过程语言,包括 PL/pgSQL、PL/Tcl、PL/Perl 和 PL/Python。
  • 索引:PostgreSQL 索引支持 B+ 树、哈希、广义搜索树和广义倒排索引。个人还可以设计自己的个性化索引。
  • 视图:PostgreSQL 支持生成虚拟表的视图。
  • 规则:PostgreSQL 支持规则,允许重写查询的层次结构。
  • 继承:在 PostgreSQL 中,可以将表配置为通过继承从“父”表继承属性。
  • 用户定义的函数:它有助于构建几乎所有新的数据库对象,包括转换、转换、数据类型、域、函数、聚合函数和索引,包括自定义种类运算符的自定义索引。

PostgreSQL 面试问题

1、PostgreSQL的核心优势是什么?

以下是 PostgreSQL 的一些特性:

  • 关系对象数据库。
  • SQL 支持和可扩展性
  • API 和数据库验证的灵活性。
  • MVCC 和过程语言,
  • WAL 和客户端-服务器。

2.列出PostgreSQL支持的各种数据类型。

以下是添加到 PostgreSQL 的一些新数据类型:

  • UUID
  • 数值类型
  • 布尔值
  • 字符类型
  • 时间类型
  • 几何图元
  • 任意精度数值
  • XML
  • 数组等

3. PostgreSQL 的令牌是什么?

在 PostgreSQL 中,令牌充当源代码的构建元素。它们由各种特殊字符符号组成。标记是主要由预定义的 SQL 命令和含义组成的关键字。命令包含由分号 (';') 分隔的标记序列。这些可能包括常量、带引号的标识符、附加标识符、关键字或常量。通常,空格分隔标记。

4. 什么是 PostgreSQL 索引?

索引是一种特殊的 PostgreSQL 工具,用于改进从数据库中检索数据。数据库索引类似于书籍索引。索引提供对索引列中所有值的访问。PostgreSQL 索引允许数据库服务器定位和检索特定框架中包含的特定行。B-tree、hash、GiST、SP-GiST、GIN 和 BRIN 是其他示例。在 PostgreSQL 中,用户确实可以自由地创建自己的索引。然而,索引增加了数据处理操作的复杂性并且很少被使用。

5. 如何建立 PostgreSQL 数据库?

有两种方法可以生成数据库。CREATE DATABASE SQL 命令首先出现。

使用以下语法,我们可以构建数据库:-CREATE DATABASE ;

第二种方法使用 createdb 命令。

我们可以使用以下语法建立数据库:- createdb [option…] [description]。

根据使用场景,createDB 命令可能需要很多参数。

6. 如何在 PostgreSQL 中创建表?

您可以通过定义表的名称以及每列的名称和类型来创建新表:

CREATE TABLE [IF NOT EXISTS] table_name (
column1 datatype(length) column_contraint,
column2 datatype(length) column_contraint,
.
.
.
columnn datatype(length) column_contraint,
table_constraints
);

7. 对比“PostgreSQL”和“MongoDB”

PostgreSQL 是一个 SQL 数据库,其中数据存储在表的行和列中。它支持实体关系完整性和 JOINS 等概念。PostgreSQL 查询语言是 SQL。PostgreSQL 支持垂直缩放。这就需要使用大型服务器来存储数据。这导致需要停机时间来更新。如果您的应用程序需要关系数据库,或者您需要执行超出 SQL 功能的复杂查询,它的性能会更好。相比之下,MongoDB 是一个 NoSQL 数据库。不需要模式,因此可以存储非结构化数据。数据保存在 BSON 文档中,用户可以修改其结构。MongoDB 查询是用 JavaScript 编写的。由于其对水平扩展的适应性,可以根据需要添加额外的服务器,而停机时间很少甚至没有。

8.什么是PostgreSQL的多版本并发控制?

PostgreSQL 使用 MVCC(也称为多版本并发控制)来实现事务。它用于防止系统中意外的数据库锁定。每个查询数据库的事务都会看到不同版本的数据库。这可以防止显示不一致的数据并为每个数据库会话提供事务隔离。用于读取数据的 MVCC 锁不会干扰为写入数据而获取的锁。

9. pgAdmin 到底是什么?

pgAdmin 是一个基于 Web 的 GUI 实用程序,用于与 Postgres 数据库会话进行交互。它适用于本地和远程服务器。它的最新版本 pgAdmin4 是在 PostgreSQL 许可证下分发的。创建 pgAdmin4 需要完全重建原始 pgAdmin 程序。这个版本是由 Javascript/jQuery 和 Python 混合而成的。pgAdmin 现在可以用作桌面运行时或 Web 应用程序服务器,具体取决于您的需要。

10、PostgreSQL中的数据库是如何删除的?

使用该语法,可以在 PostgreSQL.DROP DATABASE [IF EXISTS] 中删除数据库;

请注意,只能丢弃不活动的数据库。

11. 模式由什么组成?

模式是数据库的元素,包括表。它们包括数据类型、函数和运算符,以及其他命名对象类型。对象名称跨模式兼容;与数据库不同,模式划分更自由。这表明用户可以访问他们链接到的数据库中任何模式中的对象,直到他们被授予适当的权限。当多个用户必须访问单个数据库而不相互干扰时,模式非常有用。它有助于将数据库项目组织成逻辑类别,以便更好地管理。为了防止基于名称的冲突,第三方应用程序可以放置在不同的模式中。

12. SQL 和 PostgreSQL 最显着的区别是什么?

PostgreSQL 是一个复杂的 SQL 变体。无法更新 PostgreSQL 视图。PostgreSQL 不支持计算列。但是,它确实提供了功能索引。在 PostgreSQL 中,复制采用报告的形式。PostgreSQL 提供动态的操作。

PostgreSQL 服务器提供多个级别的加密和灵活性,以提高数据安全性,防止在不安全的网络场景中泄露。同时,SQL server 旨在提供一个安全的数据库平台。为此,它包含多种功能,可以加密数据、减少授权和保护数据免受不道德行为的影响。

13. 详细解释预写日志。

预写日志 (WAL) 对于 Postgres 的持久性和数据一致性至关重要。所有修改最初都被捕获到这个仅附加的日志中,然后被捕获到磁盘上的数据文件中。使用预写日志记录,您可以保护您的数据免受损坏。由于这种方法,所有操作和更改的完整记录得以保存。众所周知,在实施或更新数据库更改之前备份它们可以提高某些数据库的稳定性。备份日志保存在这里,以防数据库出现故障。当 Postgres 强制执行写操作时,它会创建 WAL(例如,INSERT、UPDATE 等)。在 WAL 创建超出磁盘外 WAL 归档的能力或高数据库负载降低归档器性能的情况下,WAL 容量是有限的。

14. 非聚集索引的定义是什么?

PostgreSQL 中的非聚集索引是一种简单的索引,用于快速检索数据,不保证唯一性。它包括对保存数据的其他地方的引用。这也称为二级索引。您可以根据需要在给定表上拥有该类别的多个索引。非聚集索引类似于文档的“目录”。我们先检查页码,然后再检查页码以查看整个内容。它保留一个指向相应堆数据的指针,以根据索引获取整个数据。这与知道页码然后转到该页面以检索页面的实际内容完全相同。

15. PostgreSQL如何提供安全性?

PostgreSQL 采用两层安全性。

  1. 网络级安全——利用 Unix 域套接字、TCP/IP 套接字和防火墙实现网络级安全。
  2. 传输级安全性- 传输级安全性采用 SSL/TLS 来确保安全的数据库通信
  3. 数据库级安全性——角色和权限、行级安全性 (RLS) 和审计都是数据库级安全性的特征。

结论

在本文中,我们看到了重要的 PostgreSQL 问题。我们对不同的 PostgreSQL 术语有了很好的理解。以下是上述文章的一些主要内容:

1、我们已经看到了PostgreSQL的token以及使用PostgreSQL的好处。

2.我们学习了如何建立一个PostgreSQL数据库。

3. 我们了解了如何在 PostgreSQL 中创建表,

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/27609.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定