Code前端首页关于Code前端联系我们

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

terry 2年前 (2023-09-26) 阅读数 72 #数据库

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 支持的不同数据类型的列表。 ? 可选精度数值​​

  • XML
  • 数组等
  • 3. PostgreSQL 的令牌是什么?

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

    4。什么是 PostgreSQL 索引?

    索引是一种特殊的 PostgreSQL 实用程序,用于改进从数据库中检索数据。数据库索引与书籍索引类似。索引提供对索引列中所有值的访问。 PostgreSQL 索引允许数据库服务器定位和检索特定帧中包含的特定行。 B 树、哈希、GiST、SP-GiST、GIN 和 BRIN 是其他示例。在 PostgreSQL 中,用户实际上可以自由创建自己的索引。但索引增加了数据处理操作的复杂性,很少使用。

    5。如何创建 PostgreSQL 数据库?

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

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

    第二种方法使用 createb 命令。

    我们可以使用以下语法创建数据库:-createdb [选项...] [描述]。

    根据使用场景,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 数据库,其中数据按行和列存储在表中。它支持实体关系完整性和联接等概念。 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 Server 提供多级加密和灵活性,以提高数据安全性并防止在不安全的网络场景中发生泄漏。同时,SQL Server旨在提供一个安全的数据库平台。为此,它包括加密数据、减少授权和保护数据免遭不道德行为的功能。

    13。详细解释投影日志。

    预写日志 (WAL) 对于 Postgres 的耐用性和数据一致性至关重要。所有更改都会首先捕获到此仅附加日志中,然后捕获到磁盘上的数据文件中。通过使用投影日志记录,您可以保护数据免遭损坏。通过这种方法,可以保留所有操作和更改的完整记录。众所周知,在部署或更新数据库更改之前对其进行备份可以提高某些数据库的稳定性。备份日志保存在此处,以防数据库发生故障。 Postgres 在强制执行写入操作(例如 INSERT、UPDATE 等)时创建 WAL。当 WAL 创建的内容超出磁盘外 WAL 归档的能力或高数据库负载降低归档性能的情况下,WAL 容量会受到限制。

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

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

    15。 PostgreSQL 如何提供安全性?

    PostgreSQL 使用两层安全性。

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

    结论

    在本文中,我们看到了重要的 PostgreSQL 问题。我们对各种 PostgreSQL 术语有很好的理解。以下为上述文章的部分主要内容:

    1.我们已经了解了 PostgreSQL 令牌以及使用 PostgreSQL 的好处。

    2。我们学习了如何设置 PostgreSQL 数据库。

    3。我们学习了如何在 PostgreSQL 中创建表,

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门