Time of Update: 2017-01-18
一、pg_tables: 該視圖提供了對有關資料庫中每個表的有用資訊地訪問。 名字 類型 引用 描述 schemaname name pg_namespace.nspname 包含表的模式名字。 tablename name pg_class.relname 表的名字。
Time of Update: 2017-01-18
一、恢複磁碟空間: 在PostgreSQL中,使用delete和update語句刪除或更新的資料行並沒有被實際刪除,而只是在舊版本資料行的物理地址上將該行的狀態置為已刪除或已到期。因此當資料表中的資料變化極為頻繁時,那麼在一段時間之後該表所佔用的空間將會變得很大,然而資料量卻可能變化不大。要解決該問題,需要定期對資料變化頻繁的資料表執行VACUUM操作。 VACUUM命令存在兩種形式,VACUUM和VACUUM
Time of Update: 2017-01-18
一、概述: 資料庫可以被看成是SQL對象(資料庫物件)的命名集合,通常而言,每個資料庫物件(表、函數等)只屬於一個資料庫。不過對於部分系統資料表而言,如pg_database,是屬於整個叢集的。更準確地說,資料庫是模式的集合,而模式包含表、函數等SQL對象。因此完整的對象層次應該是這樣的:伺服器、資料庫、模式、表或其他類型的對象。
Time of Update: 2017-01-18
PostgreSQL是通過角色來管理資料庫存取權限的,我們可以將一個角色看成是一個資料庫使用者,或者一組資料庫使用者。角色可以擁有資料庫物件,如表、索引,也可以把這些對象上的許可權賦予其它角色,以控制哪些使用者對哪些對象擁有哪些許可權。 一、資料庫角色: 1. 建立角色: 複製代碼 代碼如下: CREATE ROLE
Time of Update: 2017-01-18
一、伺服器處理序的啟動和關閉: 下面是pg_ctl命令的使用方法和常用選項,需要指出的是,該命令是postgres命令的封裝體,因此在使用上比直接使用postgres更加方便。複製代碼 代碼如下: pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"] pg_ctl start [-w] [-t
Time of Update: 2017-01-18
一、使用EXPLAIN: PostgreSQL為每個查詢都產生一個查詢規劃,因為選擇正確的查詢路徑對效能的影響是極為關鍵的。PostgreSQL本身已經包含了一個規劃器用於尋找最優規劃,我們可以通過使用EXPLAIN命令來查看規劃器為每個查詢產生的查詢規劃。
Time of Update: 2017-01-18
在SQL的標準中事物隔離等級分為以下四種: 1. 讀未提交(Read uncommitted) 2. 讀已提交(Read committed) 3. 可重複讀(Repeatable read) 4. 可序列化(Serializable)
Time of Update: 2017-01-18
一、索引的類型: PostgreSQL提供了多 種索引類型:B-Tree、Hash、GiST和GIN,由於它們使用了不同的演算法,因此每種索引類型都有其適合的查詢類型,預設時,CREATE INDEX命令將建立B-Tree索引。 1. B-Tree: 複製代碼 代碼如下: CREATE TABLE test1
Time of Update: 2017-01-18
六、模式比對: PostgreSQL中提供了三種實現模式比對的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-風格Regex。 1. LIKE: 複製代碼 代碼如下: string LIKE pattern [ ESCAPE escape-character ] string NOT LIKE pattern
Time of Update: 2017-01-18
一、邏輯操作符: 常用的邏輯操作符有:AND、OR和NOT。其語義與其它程式設計語言中的邏輯操作符完全相同。二、比較操作符: 下面是PostgreSQL中提供的比較操作符列表:比較操作符可以用於所有可以比較的資料類型。所有比較操作符都是雙目操作符,且返回boolean類型。除了比較操作符以外,我們還可以使用BETWEEN語句,如: a BETWEEN x AND y 等效於 a >=
Time of Update: 2017-01-18
一個資料庫包含一個或多個命名的模式,模式又包含表。模式還包含其它命名的對象,包括資料類型、函數,以及操作符。同一個對象名可以在不同的模式裡使用而不會導致衝突; 比如,schema1和myschema都可以包含叫做mytable的表。和資料庫不同,模式不是嚴格分離的:一個使用者可以訪問他所串連的資料庫中的任意模式中的對象,只要他有許可權。 我們需要模式有以下幾個主要原因: 1).
Time of Update: 2017-01-18
一、表的定義: 對於任何一種關係型資料庫而言,表都是資料存放區的最核心、最基礎的對象單元。現在就讓我們從這裡起步吧。 1. 建立表: 複製代碼 代碼如下: CREATE TABLE products ( product_no
Time of Update: 2017-01-18
折騰了好長時間,重新初始化好多次。安裝的時候,命令:pkg search postgresql.額 好多包,選擇最新的9.4安裝server,會一起安裝client。安裝完會有很多文字提示,這個很有用。安裝完會建立一個使用者pgsql,家目錄為/usr/local/pgsql.第一步要先切換到pgsql使用者下,su root, su pgsql。然後在pgsql home目錄建立data檔案夾。root使用者下好像是不允許的初始化,initdb -D
Time of Update: 2017-01-18
由於使用的PostgreSQL資料庫,沒有資料。只好進行Google。最終在一個英文論壇中發現瞭解決方法。如下:1.檢索出死結進程的ID複製代碼 代碼如下:SELECT * FROM pg_stat_activity WHERE datname='死結的資料庫ID ';檢索出來的欄位中,【wating 】欄位,資料為t的那條,就是死結的進程。找到對應的【procpid 】列的值。2.將進程殺掉複製代碼 代碼如下:SELECT pg_cancel_backend('死結那條資料的procpid值
Time of Update: 2017-01-18
1、命令列登入資料庫有兩種方式,一是直接在系統shell下執行psql命令;而是先進入psql環境,然後再串連資料庫。下面分別給出執行個體:(1)直接登入執行命令:psql -h 172.16.35.179 -U username -d dbname ,其中username為資料庫使用者名稱,dbname為要串連的資料庫名,執行後提示輸入密碼如下:複製代碼 代碼如下:Password for user username:
Time of Update: 2017-01-18
這裡用一個執行個體來示範PostgreSQL預存程序如何返回資料集。1、首先準備資料表複製代碼 代碼如下://member_categorycreate table member_category(id serial, name text, discount_rate real, base_integral integer);alter table member_category add primary key(id);alter table member_category add check(
Time of Update: 2017-01-18
什麼是預存程序, 百度百科是這麼定義的:預存程序(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 陳述式集,儲存在資料庫中經過第一次編譯後再次調用不需要再次編譯,使用者通過指定預存程序的名字並給出參數(如果該預存程序帶有參數)來執行它。預存程序是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程式都應該用到預存程序。Postgresql的預存程序文法結構如下:複製代碼 代碼如下:CREATE OR REPLACE FUNCTION
Time of Update: 2017-01-18
環境:win7 64 sp1PG:9.3.51、建立使用者postgres,密碼同樣是postgres:net user postgres postgres /add2、在資料庫根目錄下建立data目錄:C:\Program Files\PostgreSQL\9.3>md data3、去掉administrator對data目錄的許可權:C:\Program Files\PostgreSQL\9.3>cacls data /e /t /r administrator處理的目錄: C:
Time of Update: 2017-01-18
PostgreSQL在CentOS上部署的時候,需要設定一些作業系統的參數,官方文檔上列舉了一些(傳送門)。除了這些,還有一些其他的設定,如單個使用者允許的最大進程數,單個進程的最大控制代碼數等,這些一般也需要調整,否則系統會在一些條件下出現問題,或者效能下降。下面從系統資源限制類和記憶體參數最佳化類來進行說明.系統資源限制類1.單個使用者允許的最大進程數:linux系統預設是1024,如果PG的最大串連數超過1024,則實際的串連數會小於1024(PG的postmaster進程,checkpo
Time of Update: 2017-01-18
前言PostgreSql是一個物件導向的關聯式資料庫,postgis是一個基於PostgreSql的空間資料庫外掛程式,主要用於管理地理空間資料。因此在GIS領域,廣泛使用PostgreSql作為空白間資料庫。首先使用npm安裝資料庫連接模組:npm install --save pg 串連池建立然後代碼中引入pg模組,並編寫資料庫配置:var pg = require('pg');// 資料庫配置var config = { user:"postgres", database:"ghost"