您的位置 首页 > 雕刻工具

postgresql PostgreSQL

这篇文章给大家聊聊关于postgresql,以及PostgreSQL对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

安装、设置、创建和开始使用PostgreSQL数据库。--GregPittman(作者)

每个人或许都有需要在数据库中保存的东西。即使你执着于使用纸质文件或电子文件,它们也会变得很麻烦。纸质文档可能会丢失或混乱,你需要访问的电子信息可能会隐藏在段落和页面的深处。

在我从事医学工作的时候,我使用PostgreSQL来跟踪我的住院患者名单并提交有关住院患者的信息。我将我的每日患者名单打印在口袋里,以便快速了解患者房间、诊断或其他细节的任何变化并做出快速记录。

我以为一切没问题,直到去年我妻子决定买一辆新车,我“接手”了她以前的那辆车。她保留了汽车维修和保养服务收据的文件夹,但随着时间的流逝,它变得杂乱。与其花时间筛选所有纸条以弄清楚什么时候做了什么,我认为PostgreSQL将是更好的跟踪此信息的方法。

自上次使用PostgreSQL以来已经有一段时间了,我已经忘记了如何使用它。实际上,我甚至没有在计算机上安装它。安装它是第一步。我使用Fedora,因此在控制台中运行:

dnflistpostgresql*

请注意,你无需使用sudo即可使用list选项。该命令返回了很长的软件包列表。看了眼后,我决定只需要三个:postgresql、postgresql-server和postgresql-docs。

为了了解下一步需要做什么,我决定查看PostgreSQL文档。文档参考内容非常丰富,实际上,丰富到令人生畏。幸运的是,我发现我在升级Fedora时曾经做过的一些笔记,希望有效地导出数据库,在新版本上重新启动PostgreSQL,以及导入旧数据库。

与大多数其他软件不同,你不能只是安装好PostgreSQL就开始使用它。你必须预先执行两个基本步骤:首先,你需要设置PostgreSQL,第二,你需要启动它。你必须以root用户身份执行这些操作(sudo在这里不起作用)。

postgresql-setup–initdb

这将确定PostgreSQL数据库在计算机上的位置。然后(仍为root)输入以下两个命令:

systemctlstartpostgresql.service\n\nsystemctlenablepostgresql.service

第一个命令为当前会话启动PostgreSQL(如果你关闭机器,那么PostgreSQL也将关闭)。第二个命令使PostgreSQL在随后的重启中自动启动。

PostgreSQL正在运行,但是你仍然不能使用它,因为你还没有用户。为此,你需要切换到特殊用户postgres。当你仍以root身份运行时,输入:

supostgres

由于你是以root的身份执行此操作的,因此无需输入密码。root用户可以在不知道密码的情况下以任何用户身份操作;这就是使其强大而危险的原因之一。

现在你就是postgres了,请运行下面两个命令,如下所示创建用户(创建用户gregp):

createusergregp\n\ncreatedbgregp

你可能会看到错误消息,如:Couldnotswitchto/home/gregp。这只是意味着用户postgres不能访问该目录。尽管如此,你的用户和数据库已创建。接下来,输入exit并按回车两次,这样就回到了原来的用户下(root)。

要开始使用PostgreSQL,请在命令行输入psql。你应该在每行左侧看到类似gregp=>的内容,以显示你使用的是PostgreSQL,并且只能使用它理解的命令。你自动获得一个数据库(我的名为gregp),它里面完全没有内容。对PostgreSQL来说,数据库只是一个工作空间。在空间内,你可以创建表。表包含变量列表,而表中的每个变量是构成数据库的数据。

以下是我设置汽车服务数据库的方式:

CREATETABLEautorepairs(\n\ndatedate,\n\nrepairsvarchar(80),\n\nlocationvarchar(80),\n\ncostnumeric(6,2)\n\n);

我本可以在一行内输入,但为了更好地说明结构,并表明PostgreSQL不会解释制表符和换行的空白,我分成了多行。字段包含在括号中,每个变量名和数据类型与下一个变量用逗号分隔(最后一个除外),命令以分号结尾。所有命令都必须以分号结尾!

第一个变量名是date,它的数据类型也是date,这在PostgreSQL中没关系。第二个和第三个变量repairs和location都是varchar(80)类型,这意味着它们可以是最多80个任意字符(字母、数字等)。最后一个变量cost使用numeric类型。括号中的数字表示最多有六位数字,其中两位是小数。最初,我尝试了real类型,这将是一个浮点数。real类型的问题是作为数据类型在使用时,在遇到WHERE子句,类似WHEREcost=0或其他任何特定数字。由于real值有些不精确,因此特定数字将永远不会匹配。

接下来,你可以使用INSERTINTO命令添加一些数据(在PostgreSQL中称为行):

INSERTINTOautorepairsVALUES('2017-08-11','airbagrecall','dealer',0);

请注意,括号构成了一个值的容器,它必须以正确的顺序,用逗号分隔,并在命令末尾加上分号。date和varchar(80)类型的值必须包含在单引号中,但数字值(如numeric)不用。作为反馈,你应该会看到:

INSERT01

与常规终端会话一样,你会有输入命令的历史记录,因此,在输入后续行时,通常可以按向上箭头键来显示最后一个命令并根据需要编辑数据,从而节省大量时间。

如果出了什么问题怎么办?使用UPDATE更改值:

UPDATEautorepairsSETdate='2017-11-08'WHERErepairs='airbagrecall';

或者,也许你不再需要表中的行。使用DELETE:

DELETEFROMautorepairsWHERErepairs='airbagrecall';

这将删除整行。

最后一件事:即使我在PostgreSQL命令中一直使用大写字母(在大多数文档中也这么做),你也可以用小写字母输入,我也经常如此。

如果你想展示数据,使用SELECT:

SELECT*FROMautorepairsORDERBYdate;

没有ORDERBY的话,行将不管你输入的内容来显示。例如,以下就是我终端中输出的我的汽车服务数据:

SELECTdate,repairsFROMautorepairsORDERBYdate;\n\n\n\ndate|repairs\n\n-----------+-----------------------------------------------------------------\n\n2008-08-08|oilchange,airfilter,sparkplugs\n\n2011-09-30|35000service,oilchange,rotatetires/balancewheels\n\n2012-03-07|replbattery\n\n2012-11-14|45000maint,oil/filter\n\n2014-04-09|55000maint,oil/filter,sparkplugs,air/dustfilters\n\n2014-04-21|replace4tires\n\n2014-04-21|wheelalignment\n\n2016-06-01|65000mileservice,oilchange\n\n2017-05-16|oilchange,replceoilfilthousing\n\n2017-05-26|rotatetires\n\n2017-06-05|airfilter,cabinfilter,sparkplugs\n\n2017-06-05|brakepadsandrotors,flushbrakes\n\n2017-08-11|airbagrecall\n\n2018-07-06|oil/filterchange,fuelfilter,batterysvc\n\n2018-07-06|transmissionfl,psteeringfl,reardifffl\n\n2019-07-22|oil&filterchange,brakefluidflush,frontdifferentialflush\n\n2019-08-20|replace4tires\n\n2019-10-09|replacepassengertaillightbulb\n\n2019-10-25|replacepassengertaillightassembly\n\n(19rows)

要将此发送到文件,将输出更改为:

\\oautorepairs.txt

然后再次运行SELECT命令。

最后,在终端中退出PostgreSQL,输入:

\\q

虽然这只是PostgreSQL的简要介绍,但我希望它展示了将数据库用于这样的简单任务既不困难也不费时。

via:https://opensource.com/article/19/11/getting-started-postgresql

作者:GregPittman选题:lujun9972译者:geekpi校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

文章分享结束,postgresql和PostgreSQL的答案你都知道了吗?欢迎再次光临本站哦!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023