postgresql存圖片字段類型_PostgreSQL 入門

f9d40d30e227fba391eb2d4ade1fd54a.png
安裝、設置、創建和開始使用 PostgreSQL 數據庫。
-- Greg Pittman(作者)

每個人或許都有需要在數據庫中保存的東西。即使你執著于使用紙質文件或電子文件,它們也會變得很麻煩。紙質文檔可能會丟失或混亂,你需要訪問的電子信息可能會隱藏在段落和頁面的深處。

在我從事醫學工作的時候,我使用 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 中沒關系。第二個和第三個變量 repairslocation 都是 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);

請注意,括號構成了一個值的容器,它必須以正確的順序,用逗號分隔,并在命令末尾加上分號。datevarchar(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 plugs
2011-09-30 | 35000 service, oil change, rotate tires/balance wheels
2012-03-07 | repl battery
2012-11-14 | 45000 maint, oil/filter
2014-04-09 | 55000 maint, oil/filter, spark plugs, air/dust filters
2014-04-21 | replace 4 tires
2014-04-21 | wheel alignment
2016-06-01 | 65000 mile service, oil change
2017-05-16 | oil change, replce oil filt housing
2017-05-26 | rotate tires
2017-06-05 | air filter, cabin filter,spark plugs
2017-06-05 | brake pads and rotors, flush brakes
2017-08-11 | airbag recall
2018-07-06 | oil/filter change, fuel filter, battery svc
2018-07-06 | transmission fl, p steering fl, rear diff fl
2019-07-22 | oil & filter change, brake fluid flush, front differential flush
2019-08-20 | replace 4 tires
2019-10-09 | replace passenger taillight bulb
2019-10-25 | replace passenger taillight assembly
(19 rows)

要將此發送到文件,將輸出更改為:

o autorepairs.txt

然后再次運行 SELECT 命令。

退出 PostgreSQL

最后,在終端中退出 PostgreSQL,輸入:

quit

或者它的縮寫版:

q

雖然這只是 PostgreSQL 的簡要介紹,但我希望它展示了將數據庫用于這樣的簡單任務既不困難也不費時。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529436.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ibm服務器 p5 硬盤,IBM虛擬化實戰之p5服務器邏輯分區解讀

創建 AIX 分區現在您將創建一個 AIX 分區,它使用 VIO Server 的 SEA 來訪問網絡。它還將其 rootvg 寄宿在 VIO LPAR 上。創建 AIX 服務器分區和概要除了下面的變化以外,創建 AIX 分區和概要的步驟與創建VIO Server 分區和概要部分中的步驟完全相同。1. 在…

cad動態塊制作翻轉_裝X必學,手把手教你做CAD動態屬性塊

最近很多粉絲后臺問熊大,如何制作CAD動態屬性塊,這個問題把我難到了。因為這個不是一句兩句話能夠說得清楚的,于是我拿出珍藏的“西蜀鄙夫”寫的教程,并通過與我們設計過程的實際需要給大家說說。干貨文章,大家耐心看完…

云服務器怎么執行sql文件在哪里,總結帝國CMS下在PHP文件中怎么調用數據庫類執行SQL語句實例...

總結帝國CMS下在PHP文件中怎么調用數據庫類執行SQL語句實例發布時間:2020-10-19 14:58:08來源:億速云閱讀:83作者:小新這篇文章將為大家詳細講解有關總結帝國CMS下在PHP文件中怎么調用數據庫類執行SQL語句實例,小編覺得…

網和aoe網的區別_運動內衣與普通內衣有什么區別?運動內衣里面還需要穿文胸嗎? 小家生活網20201002 11:03:04...

閱讀本文前,請您先點擊上面的“藍色字體可以說愛情就是他們最大的軟肋。不會在雙魚女那出現。在對于周邊的親戚時。她們那種溫柔大方的氣勢。更符合媽媽的需求。整雙腿沒有視覺連貫性。但唯獨感情這件事一直是水瓶們的知識盲區。他們雙商超高。可能最開始還是會去挽…

機器人無限火力無限e符文_LOL:無限火力開黑指南 三大玩法讓你快樂加倍

無限火力上線以來受到大家的熱烈追捧,今天給大家介紹幾個主流的系列,讓你在峽谷能夠感受到雙倍的快樂!超強控制流這一類英雄都是帶有強力控制的,無限火力的80%減CD,能夠讓女坦等英雄可以打出長達幾秒的完美控制技能。首…

ps3無線無法與服務器通信,psp上網出現無法與服務器通信(8001006F)

滿意答案引用:一:自己網絡配置:大亞db102 adsl撥號上網。INTEL網卡。神卡:Zydas 54M 同時支持PSP 和NDS的無線USB網卡三:安裝過程中出現的問題DNS錯誤(8041040F)四、總結出現問題的關鍵:并非DNS設置錯誤,主…

bootstrap-table toolbar圖標換文字_iPhone 也能隨意換字體啦~

呔咯昨天從老大手里喜提一臺 iPhone XS Max ,終于讓表妹從安卓陣營轉入蘋果,嘻嘻~當她拿著 iPhone 的時候,一臉懵的問我:iPhone 自帶字體也太丑了吧,還我的輸入法!!!呔咯&#xff1a…

網絡服務器分為文件服務器通信服務器和,近代中國落后、貧困的根本原因是()...

近代far, find, lights, minutes, to, right, tellA: Excuse me. Could you ____ me the way ____ the bookshop?B: Ok. Go along this road and turn____ at the traffic ____. Then go straight on. Youll ____ it next to the post office.A: Is it ____ from here?B: No,…

搭建bitwarden_Docker輕松部署Bitwarden私有密碼管理系統服務

0x01. 什么是Bitwarden?開源免費的密碼管理器,Bitwarden的原理是使用高強度的AES256 算法對你的個人數據進行本地加密,然后再傳輸到云端服務器來實現網絡同步。bitwarden使用的是微軟的Azure云服務器,利用PBKDF2 加密主密碼,而且…

取文件 shell_webshell文件上傳分析溯源

由于最近比較忙,暫時沒有時間更新,所以分享分享一些其他博主文章,大家敬請諒解摘要: dirbuster掃描目錄發現幾個有用的東東/admin/upload.php/admin/upload1.php/admin/upload2.php訪問的時候最后都會跳轉到/admin/upload...dirbu…

web系統數據庫服務器,Web Gateway

字段名稱SPB 關鍵字描述*目的地目錄DMS.Destination您希望 Web Gateway 服務器文件所處的目錄的全限定路徑。缺省值是:對于 Solaris 與 Linux,是 /opt/TivTwg對于 AIX,是 /usr/TivTwg對于 Windows,是 c:\Program Files\TivTwg*…

java socket發送定長報文_一個基于TCP協議的Socket通信實例

原標題:一個基于TCP協議的Socket通信實例1. 前言一般接口對接多以http/https或webservice的方式,socket方式的對接比較少并且會有一些難度。正好前段時間完成了一個socket的接口的對接需求,現將實現的思路做一個整理。2. 需求概述2.1 需要提供…

7系統軟raid_使用圖形界面來配置RAID

RAID 配置起來要比 LVM 方便,因為它不像 LVM 那樣分了物理卷、卷組和邏輯卷三層,而且每層都需要配置。我們在圖形安裝界面中配置 RAID 1和 RAID 5,先來看看 RAID 1 的配置方法。RAID 1 配置配置 RAID 1 時同樣需要啟動圖形安裝程序&#xff0…

python字典的內置函數_python – 用于字典轉換的特殊方法名稱的內置函數

我一直在深入研究Python類中的運算符重載和特殊方法,并且我注意到許多內置函數具有等效的特殊方法名稱:> int(x)調用x .__ int __()> next(x)在Python 2中調用x .__ next __()或x.next()但是,一些函數,即tuple()和dict(),沒有任何等價物.我知道對于這種特殊方…

合并相同數據的行_R語言筆記(六):數據框重塑(reshape2)

數據處理主要內容包括:1. 特殊值處理1.1 缺失值1.2 離群值1.3 日期2. 數據轉換(base vs. dplyr)2.1 篩選(subset vs. filter/select/rename)2.2 排序(order vs. arrange)2.3 轉換(tr…

華為交換機s2700怎么重置_華為交換機忘記console的密碼,怎么恢復出廠設置

展開全部1、啟動時,32313133353236313431303231363533e58685e5aeb931333366303064按CtrlB進入BOOTROM目錄2、輸入BOOTROM的密碼盒式交換機的某些款型支持使用快捷鍵“CtrlE”進入BootROM主菜單,請根據設備的界面提示操作。盒式交換機在V100R006C03之前的…

啟動linux_使用 UEFI 雙啟動 Windows 和 Linux | Linux 中國

這是一份在同一臺機器上設置 Linux 和 Windows 雙重啟動的速成解釋,使用統一可擴展固件接口(UEFI)。來源:https://linux.cn/article-12891-1.html作者:Alan Formy-duval譯者:鄭(本文字數&#x…

域控下發腳本_域用戶登陸腳本

如何為一個域用戶設置登陸腳本?- BAT可否作為登陸腳本?- 在域用戶“屬性”中,應如何指定登陸腳本名?"D:\x.bat"還是"\\srv\x.bat"?還是其它?- 腳本應該放在何處?- 還有沒有…

mysql增量腳本_mysql全量和增量備份腳本

全量:[rootmaster leo]# cat DBfullBak.sh#!/bin/bash#use mysqldump to fully backup mysql dataBakDir/root/leo/fullLogFile/root/leo/full/bak.logDatedate %Y%m%dBegindate "%Y年%m月%d日 %H:%M:%S"cd $BakDirDumpFile$Date.sqlGZDumpFile$Date.sql.…

mysql 事務 引擎_mysql引擎和事務

對于應用程序和用戶來說,同樣一張表的數據無論用什么引擎來存儲,看到的數據都是一樣的,只是不同的引擎在功能、占用空間大小、讀取性能等方面可能有所差別。mysql最常用的存儲引擎為Innodb、MyISAM和全文索引5.5.5以前默認存儲引擎為MyISAM&a…