本文向您展示了如何开始使用PostgreSQL数据库。内容简洁易懂。一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。
安装、设置、创建并开始使用PostgreSQL数据库。
每个人都可能有一些东西要保存在数据库中。即使你坚持使用纸质文档或电子文档,它们也会变得非常麻烦。纸质文档可能会丢失或混淆,您需要访问的电子信息可能隐藏在段落和页面的深处。
我在从事医疗工作的时候,用PostgreSQL跟踪我的住院患者名单,提交住院患者的信息。我把每天的病人名单打印在口袋里,这样我就可以快速知道病人房间、诊断或其他细节的任何变化,并快速记录下来。
我以为一切都很好,直到去年我妻子决定买一辆新车,我“接管”了她的旧车。她保留着汽车维修服务收据的文件夹,但随着时间的推移,变得凌乱不堪。我认为PostgreSQL将是跟踪这些信息的更好方法,而不是花时间筛选所有的笔记来找出什么时候做了什么。
安装 PostgreSQL
上次用PostgreSQL已经有一段时间了,已经忘记怎么用了。其实我连电脑都没装。安装它是第一步。我使用Fedora,所以我在控制台中运行它:
请注意,您可以在不使用sudo的情况下使用列表选项。该命令返回了一长串包。看完之后,我决定只需要三个:postgresql、postgresql-server和postgresql-docs。
为了知道下一步该做什么,我决定检查PostgreSQL文档。参考内容非常丰富,其实令人望而生畏。幸运的是,我发现了一些我在升级Fedora时做的笔记,希望能有效导出数据库,在新版本中重启PostgreSQL,导入旧数据库。
00-1010不同于大多数其他软件,你不能只安装PostgreSQL就开始使用。您必须提前执行两个基本步骤:首先,您需要设置PostgreSQL,其次,您需要启动它。您必须以root用户身份执行这些操作(sudo在这里不起作用)。
要进行设置,请输入:
PostgreSQL-setupndash;Initdb这将确定PostgreSQL数据库在计算机上的位置。然后(仍然是root用户)输入以下两个命令:
systemlstartspostgresql . service systemctlenablepostgresql . service的第一个命令为当前会话启动PostgreSQL(如果关闭机器,PostgreSQL也会关闭)。第二个命令使PostgreSQL在随后的重新启动中自动启动。
设置 PostgreSQL
PostgreSQL正在运行,但您仍然无法使用它,因为您还没有用户。为此,您需要切换到特殊用户postgres。当您仍以root用户身份运行时,请输入:
Supostgres因为您是以root用户身份执行此操作,所以不需要输入密码。根用户可以在不知道密码的情况下作为任何用户操作;这是使它强大而危险的原因之一。
既然您是postgres,请运行以下两个命令来创建用户(创建用户gregp),如下所示:
您可能会看到错误消息,例如:无法切换到/home/gregp。这仅仅意味着用户postgres不能访问该目录。尽管如此,您的用户和数据库已经创建。接下来,输入exit并按两次enter,这样您就可以返回到原始用户(root)了。
00-1010要开始使用PostgreSQL,请在命令行中输入psql。您应该在每一行的左侧看到类似gregp=的内容,以表明您正在使用PostgreSQL,并且您只能使用它理解的命令。你会自动得到一个数据库(我的名字是gregp),里面什么都没有。对于PostgreSQL,数据库只是一个工作空间。在空间中,您可以创建表格。一个表包含一个变量列表,表中的每个变量都是构成数据库的数据。
我是这样建立汽车服务数据库的:
CREATETABL
E autorepairs ( date date, repairs varchar(80), location varchar(80), cost numeric(6,2));
我本可以在一行内输入,但为了更好地说明结构,并表明 PostgreSQL 不会解释制表符和换行的空白,我分成了多行。字段包含在括号中,每个变量名和数据类型与下一个变量用逗号分隔(最后一个除外),命令以分号结尾。所有命令都必须以分号结尾!
第一个变量名是 date
,它的数据类型也是 date
,这在 PostgreSQL 中没关系。第二个和第三个变量 repairs
和 location
都是 varchar(80)
类型,这意味着它们可以是最多 80 个任意字符(字母、数字等)。最后一个变量 cost
使用 numeric
类型。括号中的数字表示最多有六位数字,其中两位是小数。最初,我尝试了 real
类型,这将是一个浮点数。real
类型的问题是作为数据类型在使用时,在遇到 WHERE
子句,类似 WHERE cost = 0
或其他任何特定数字。由于 real
值有些不精确,因此特定数字将永远不会匹配。
输入数据
接下来,你可以使用 INSERT INTO
命令添加一些数据(在 PostgreSQL 中称为行):
INSERT INTO autorepairs VALUES ('2017-08-11', 'airbag recall', 'dealer', 0);
请注意,括号构成了一个值的容器,它必须以正确的顺序,用逗号分隔,并在命令末尾加上分号。date
和 varchar(80)
类型的值必须包含在单引号中,但数字值(如 numeric
)不用。作为反馈,你应该会看到:
INSERT 0 1
与常规终端会话一样,你会有输入命令的历史记录,因此,在输入后续行时,通常可以按向上箭头键来显示最后一个命令并根据需要编辑数据,从而节省大量时间。
如果出了什么问题怎么办?使用 UPDATE
更改值:
UPDATE autorepairs SET date = '2017-11-08' WHERE repairs = 'airbag recall';
或者,也许你不再需要表中的行。使用 DELETE
:
DELETE FROM autorepairs WHERE repairs = 'airbag recall';
这将删除整行。
最后一件事:即使我在 PostgreSQL 命令中一直使用大写字母(在大多数文档中也这么做),你也可以用小写字母输入,我也经常如此。
输出数据
如果你想展示数据,使用 SELECT
:
SELECT * FROM autorepairs ORDER BY date;
没有 ORDER BY
的话,行将不管你输入的内容来显示。例如,以下就是我终端中输出的我的汽车服务数据:
SELECT date, repairs FROM autorepairs ORDER BY date; date | repairs -----------+-----------------------------------------------------------------2008-08-08 | oil change, air filter, spark plugs2011-09-30 | 35000 service, oil change, rotate tires/balance wheels2012-03-07 | repl battery2012-11-14 | 45000 maint, oil/filter2014-04-09 | 55000 maint, oil/filter, spark plugs, air/dust filters2014-04-21 | replace 4 tires2014-04-21 | wheel alignment2016-06-01 | 65000 mile service, oil change2017-05-16 | oil change, replce oil filt housing2017-05-26 | rotate tires2017-06-05 | air filter, cabin filter,spark plugs2017-06-05 | brake pads and rotors, flush brakes2017-08-11 | airbag recall2018-07-06 | oil/filter change, fuel filter, battery svc2018-07-06 | transmission fl, p steering fl, rear diff fl2019-07-22 | oil & filter change, brake fluid flush, front differential flush2019-08-20 | replace 4 tires2019-10-09 | replace passenger taillight bulb2019-10-25 | replace passenger taillight assembly(19 rows)
要将此发送到文件,将输出更改为:
\o autorepairs.txt
然后再次运行 SELECT
命令。
退出 PostgreSQL
最后,在终端中退出 PostgreSQL,输入:
quit
或者它的缩写版:
\q
虽然这只是 PostgreSQL 的简要介绍,但我希望它展示了将数据库用于这样的简单任务既不困难也不费时。
上述内容就是怎样进行PostgreSQL数据库入门,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/125349.html