PostgreSQL数据库入门
副问题[/!--empirenews.page--]
安装、配置、建设和开始行使 PostgreSQL 数据库。 每小我私人或者都有必要在数据库中生涯的对象。纵然你执着于行使纸质文件或电子文件,它们也会变得很贫困。纸质文档也许会丢失或紊乱,你必要会见的电子信息也许会潜匿在段落和页面的深处。 在我从事医学事变的时辰,我行使 PostgreSQL 来跟踪我的住院患者名单并提交有关住院患者的信息。我将我的逐日患者名单打印在口袋里,以便快速相识患者房间、诊断或其他细节的任何变革并做出快速记录。 我觉得统统没题目,直到客岁我老婆抉择买一辆新车,我“接办”了她早年的那辆车。她保存了汽车维修和调养处事收条的文件夹,但跟着时刻的流逝,它变得混乱。与其花时刻筛选全部纸条以弄清晰什么时辰做了什么,我以为 PostgreSQL 将是更好的跟踪此信息的要领。 安装 PostgreSQL自前次行使 PostgreSQL 以来已经有一段时刻了,我已经健忘了怎样行使它。现实上,我乃至没有在计较机上安装它。安装它是第一步。我行使 Fedora,因此在节制台中运行: dnf list postgresql* 请留意,你无需行使 sudo 即可行使 list 选项。该呼吁返回了很长的软件包列表。看了眼后,我抉择只必要三个:postgresql、postgresql-server 和 postgresql-docs。 为了相识下一步必要做什么,我抉择查察 PostgreSQL 文档。文档参考内容很是富厚,现实上,富厚到令人生畏。荣幸的是,我发明我在进级 Fedora 时曾经做过的一些条记,但愿有用地导出数据库,在新版本上从头启动 PostgreSQL,以及导入旧数据库。 配置 PostgreSQL与大大都其他软件差异,你不能只是安装好 PostgreSQL 就开始行使它。你必需预先执行两个根基步调:起首,你必要配置 PostgreSQL,第二,你必要启动它。你必需以 root 用户身份执行这些操纵(sudo 在这里不起浸染)。 要配置它,请输入: postgresql-setup –initdb 这将确定 PostgreSQL 数据库在计较机上的位置。然后(仍为 root)输入以下两个呼吁: systemctl start postgresql.service systemctl enable postgresql.service 第一个呼吁为当前会话启动 PostgreSQL(假如你封锁呆板,那么 PostgreSQL 也将封锁)。第二个呼吁使 PostgreSQL 在随后的重启中自动启动。 建设用户PostgreSQL 正在运行,可是你如故不能行使它,由于你还没有效户。为此,你必要切换到非凡用户 postgres。当你仍以 root 身份运行时,输入: su postgres 因为你是以 root 的身份执行此操纵的,因此无需输入暗码。root 用户可以在不知道暗码的环境下以任何用户身份操纵;这就是使其强盛而伤害的缘故起因之一。 此刻你就是 postgres 了,请运行下面两个呼吁,如下所示建设用户(建设用户 gregp): createuser gregp createdb gregp 你也许会看到错误动静,如:Could not switch to /home/gregp。这只是意味着用户 postgres不能会见该目次。尽量云云,你的用户和数据库已建设。接下来,输入 exit 并按回车两次,这样就回到了原本的用户下(root)。 配置数据库要开始行使 PostgreSQL,请在呼吁行输入 psql。你应该在每行左侧看到相同 gregp=> 的内容,以表现你行使的是 PostgreSQL,而且只能行使它领略的呼吁。你自动得到一个数据库(我的名为 gregp),它内里完全没有内容。对 PostgreSQL 来说,数据库只是一个事变空间。在空间内,你可以建设表。表包括变量列表,而表中的每个变量是组成数据库的数据。 以下是我配置汽车处事数据库的方法: CREATE TABLE 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 01 与通例终端会话一样,你会有输入呼吁的汗青记录,因此,在输入后续行时,凡是可以按向上箭头键来表现最后一个呼吁并按照必要编辑数据,从而节减大量时刻。 假如出了什么题目怎么办?行使 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;
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |