天天看點

《PostgreSQL伺服器程式設計》一一1.2 關于本書的代碼示例

本節書摘來自華章計算機《postgresql伺服器程式設計》一書中的第1章,第1.2節,作者:(美)hannu krosing, jim mlodgenski, kirk roybal 著,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

這裡輸出顯示的示例都是使用postgresql的psql工具建立的,psql工具通常是在linux系統上運作的。如果你使用一個gui工具(比如pgadmin3)去通路伺服器,絕大多數的代碼同樣是生效的。當你看見以下的代碼行時:

《PostgreSQL伺服器程式設計》一一1.2 關于本書的代碼示例

postgres=#部分是psql指令顯示的提示。

本書中的例子已經在postgresql 9.2中測試通過,它們應該可以在postgresql 8.3或更高版本中運作。相比postgresql最近幾個版本上的伺服器程式設計,其實并沒有發生多少根本性的改變。但postgresql文法變得越來越嚴謹了,進而降低了伺服器開發代碼中錯誤的機率。鑒于這些改變本身,新版本上的大多數代碼依然可以在老版本上運作,除非代碼中使用了非常新的特性。然而,由于最近強化的一些限制,老版本的代碼很容易出現運作失敗的狀況。

切換到擴充顯示

當使用psql工具執行查詢的時候,postgresql通常使用豎直對齊的列的形式,輸出結果:

《PostgreSQL伺服器程式設計》一一1.2 關于本書的代碼示例

當你看到一個輸出時,你可以辨識出它是否屬于一個規則的輸出,因為這個輸出會以行數顯示結束。

這類輸出較難融入到像本書這樣的文本中。而通過調用擴充顯示,輸出結果便可以輕松顯示出來。這種方式将每一列拆分到隔離的行中。你可以通過-x指令行或者發送x到psql程式來切換到擴充顯示模式。下面是兩種方法的例子:

《PostgreSQL伺服器程式設計》一一1.2 關于本書的代碼示例

請注意,擴充輸出并沒有顯示行數,而是統計了每個輸出的行數。為了節省空間,本書中并不是所有例子都會顯示擴充輸出。如果你看到rows或record,便可識别你看到的是哪種類型。在一般情況下,這種擴充模式是比較受歡迎的,隻是查詢的輸出太長,超出的本書的版面寬度。

繼續閱讀