PG的入门

PG的入门
https://www.postgresql.org/docs/12/tutorial-install.html
https://www.postgresql.org/docs/12/history.html
https://www.postgresql.org/docs/12/tutorial-createdb.html
https://www.postgresql.org/docs/12/tutorial-accessdb.html

1.安装

当然,在使用PostgreSQL之前,您需要安装它。PostgreSQL可能已经安装在您的站点上,因为它已包含在您的操作系统分发版中,或者因为系统管理员已经安装了它。如果是这种情况,您应该从操作系统文档或系统管理员那里获取有关如何访问PostgreSQL的信息。

如果您不确定PostgreSQL是否已经可用或者您是否可以将其用于实验,那么您可以自己安装它。这样做并不难,这可能是一个很好的锻炼。任何没有特权的用户都可以安装PostgreSQL ; 不需要超级用户(root)访问权限。

如果您自己安装PostgreSQL,请参阅第16章以获取安装说明,并在安装完成后返回本指南。请务必严格遵循有关设置适当环境变量的部分。

如果您的站点管理员没有以默认方式进行设置,您可能还需要做更多工作。例如,如果数据库服务器计算机是远程计算机,则需要将PGHOST环境变量设置为数据库服务器计算机的名称。PGPORT也可能必须设置环境变量。最重要的是:如果您尝试启动应用程序并且它抱怨它无法连接到数据库,您应该咨询您的站点管理员,或者,如果是您,请咨询文档以确保您的环境已正确设置。如果您不理解前一段,请阅读下一节。

2. 建筑基础

在我们继续之前,您应该了解基本的PostgreSQL系统架构。了解PostgreSQL的各个部分如何相互作用将使本章更加清晰。

在数据库行话中,PostgreSQL使用客户端/服务器模型。一个PostgreSQL的会议包括以下协作进程(程序):

  • 管理数据库文件的服务器进程接受来自客户端应用程序的数据库连接,并代表客户端执行数据库操作。调用数据库服务器程序postgres。

  • 要执行数据库操作的用户的客户端(前端)应用程序。客户端应用程序本质上可以是多种多样的:客户端可以是面向文本的工具,图形应用程序,访问数据库以显示网页的Web服务器,或专用数据库维护工具。一些客户端应用程序随PostgreSQL发行版一起提供; 大多数是由用户开发的。

与客户端/服务器应用程序的典型情况一样,客户端和服务器可以位于不同的主机上。在这种情况下,它们通过TCP / IP网络连接进行通信。您应该牢记这一点,因为在客户端计算机上可以访问的文件可能无法在数据库服务器计算机上访问(或者可能只能使用不同的文件名访问)。

在PostgreSQL的服务器可以处理来自客户端的多个并发连接。为实现这一点,它为每个连接启动(“ 分叉 ”)一个新进程。从那时起,客户端和新服务器进程在没有原始postgres进程干预的情况下进行通信。因此,主服务器进程始终在运行,等待客户端连接,而客户端和关联的服务器进程来来去去。(所有这些当然对用户来说是不可见的。我们在这里只提到完整性。)

3. 创建数据库

第一个检查是否可以访问数据库服务器的测试是尝试创建数据库。正在运行的PostgreSQL服务器可以管理许多数据库。通常,每个项目或每个用户使用单独的数据库。

您的站点管理员可能已经创建了一个供您使用的数据库。在这种情况下,您可以省略此步骤并跳到下一部分。

要创建新数据库,请在此示例中命名mydb,使用以下命令:

$ createdb mydb
如果这没有响应,则此步骤成功,您可以跳过本节的其余部分。

如果您看到类似于以下内容的消息:

createdb:找不到命令
然后PostgreSQL安装不正确。要么它根本没有安装,要么你的shell的搜索路径没有设置为包含它。尝试使用绝对路径调用该命令:

$ /usr/local/pgsql/bin/createdb mydb
您站点的路径可能不同。请与您的站点管理员联系或查看安装说明以更正此情况。

另一个回应可能是:

createdb:无法连接到数据库postgres:无法连接到服务器:没有这样的文件或目录
        服务器是在本地运行还是接受
        Unix域套接字“/tmp/.s.PGSQL.5432”上的连接?
这意味着服务器未启动,或者未在createdb预期的位置启动。再次,请查看安装说明或咨询管理员。

另一个回应可能是:

createdb:无法连接到数据库postgres:FATAL:角色“joe”不存在
提到您自己的登录名。如果管理员尚未为您创建PostgreSQL用户帐户,则会发生这种情况。(PostgreSQL用户帐户与操作系统用户帐户不同。)如果您是管理员,请参阅第21章以获取有关创建帐户的帮助。您需要成为安装PostgreSQL的操作系统用户(通常postgres)才能创建第一个用户帐户。也可能是您被分配了一个与您的操作系统用户名不同的PostgreSQL用户名; 在这种情况下,您需要使用-U开关或设置PGUSER环境变量来指定PostgreSQL用户名。

如果您有用户帐户但没有创建数据库所需的权限,您将看到以下内容:

createdb:数据库创建失败:错误:拒绝创建数据库的权限
并非每个用户都有权创建新数据库。如果PostgreSQL拒绝为您创建数据库,那么站点管理员需要授予您创建数据库的权限。如果发生这种情况,请咨 如果您自己安装了PostgreSQL,那么您应该在启动服务器的用户帐户下登录本教程的目的。[1]

您还可以使用其他名称创建数据库。PostgreSQL允许您在给定站点创建任意数量的数据库。数据库名称必须具有字母第一个字符,并且长度限制为63个字节。一个方便的选择是创建一个与当前用户名同名的数据库。许多工具都假设数据库名称为默认值,因此它可以为您节省一些输入。要创建该数据库,只需键入:

$ createdb
如果您不想再使用数据库,可以将其删除。例如,如果您是数据库的所有者(创建者),则mydb可以使用以下命令将其销毁:

$ dropdb mydb
(对于此命令,数据库名称不默认为用户帐户名。您始终需要指定它。)此操作将物理删除与数据库关联的所有文件,并且无法撤消,因此这应该只需要很多预见的。

有关createdb和dropdb可以分别在createdb和dropdb中找到更多信息。


1: 作为解释其原因: PostgreSQL用户名与操作系统用户帐户分开。连接到数据库时,可以选择要连接的 PostgreSQL用户名; 如果不这样做,它将默认使用与当前操作系统帐户相同的名称。碰巧的是,总会有一个 PostgreSQL用户帐户与启动服务器的操作系统用户同名,并且该用户始终有权创建数据库。您可以在-U任何地方指定选项,而不是以该用户身份登录,以选择要连接的 PostgreSQL用户名。

4. 访问数据库

创建数据库后,您可以通过以下方式访问它:

  • 运行名为psql的PostgreSQL交互式终端程序,它允许您以交互方式输入,编辑和执行SQL命令。

  • 使用现有的图形前端工具(如pgAdmin)或具有ODBC或JDBC支持的办公套件来创建和操作数据库。本教程不涉及这些可能性。

  • 使用几种可用的语言绑定之一编写自定义应用程序。第四部分将进一步讨论这些可能性。

您可能想要开始psql尝试本教程中的示例。可以mydb通过键入以下命令为数据库激活它:

$ psql mydb
如果您不提供数据库名称,则默认为您的用户帐户名称。您已在上一节中使用了发现此方案createdb。

在psql,您将收到以下消息:

psql(12beta1)
输入“帮助”以获取帮助。

MYDB =>

最后一行也可以是:

MYDB =#
这意味着您是一个数据库超级用户,如果您自己安装了PostgreSQL实例,则很可能就是这种情况。作为超级用户意味着您不受访问控制的约束。出于本教程的目的,这并不重要。

如果您遇到问题,psql请返回上一部分。诊断createdb和psql类似,如果前者工作,后者也应该工作。

打印出的最后一行psql是提示符,它表示psql正在监听您,并且您可以将SQL查询键入到由其维护的工作空间中psql。试试这些命令:

mydb=> SELECT version();
                                         version
------------------------------------------------------------------------------------------
 PostgreSQL 12beta1 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
(1 row)

mydb=> SELECT current_date;
    date
------------
 2016-01-07
(1 row)

mydb=> SELECT 2 + 2;
 ?column?
----------
        4
(1 row)

该psql程序有许多不是SQL命令的内部命令。它们以反斜杠字符“ \”开头。例如,您可以通过键入以下内容获得有关各种PostgreSQL SQL命令语法的帮助:

mydb=> \h
要退出psql,请输入:

mydb=> \q
并且psql将退出并回到你的命令行shell。(有关更多内部命令,请?在psql提示符处键入。)psqlpsql中记录了完整功能。在本教程中,我们不会明确地使用这些功能,但您可以在有用时自己使用它们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值