Time of Update: 2016-07-15
標籤:postgresql支援CASE,COALESCE,NULLIF,GREATEST,LEAST條件運算式,使用它們有時候可以簡化許多功能實現。測試表test=# create table tbl_test(id int,name varchar(32),sex varchar(1));CREATE TABLEtest=# insert into tbl_test values(1,‘張三‘,‘m‘),(2,‘李四‘,‘m‘),(3,‘王五‘,‘f‘);INSERT 0
Time of Update: 2016-07-11
標籤:不說了,先上代碼.PG:--建立t1表CREATE TABLE public.t1 ( f1 INTEGER NOT NULL, f2 VARCHAR(20), f3 VARCHAR(20)[][] [], CONSTRAINT t1_pkey PRIMARY KEY(f1)) WITH (oids = false);--建立以t1表行為元素的數組,用來代替REFCURSORCREATE OR REPLACE FUNCTION public.fun1 ( p1 public.t1
Time of Update: 2016-06-28
標籤:PG>9.2postgres=# SELECT blocked_locks.pid AS blocked_pid,postgres-# blocked_activity.usename AS blocked_user,postgres-# blocking_locks.pid AS blocking_pid,postgres-# blocking_activity.usename AS
Time of Update: 2016-06-27
標籤:修改已經儲存在資料庫中的資料的行為叫做更新。你可以更新單獨的一行,也可以更新表中所有的行,還可以更新其中的一部分行。我們可以獨立地更新每個欄位,而其它的欄位則不受影響。要更新現有的行,使用UPDATE命令。這需要三種資訊:表的名字和要更新的欄位名欄位的新值要更新哪些行SQL 通常並不為資料行提供唯一標識。因此我們無法直接聲明需要更新哪一行。但是,我們可以通過聲明一個被更新的行必須滿足的條件。只有在表裡存在主鍵的時候
Time of Update: 2016-06-27
標籤:到目前為止我們已經解釋了如何向表中增加資料以及如何改變資料。剩下的是討論如何刪除不再需要的資料。和前面增加資料一樣,刪除資料也必須是從表中整行整行地刪除。在上一節裡我們提到了 SQL 沒有提供直接指定某一行的方法。因此,刪除行只能是通過聲明被刪除行必須匹配的條件進行。如果你在表上有一個主鍵,那麼你可以聲明準確的行。當然,你也可以刪除匹配條件的一組行,或者一次刪除表中的所有行。我們使用DELETE命令刪除行。它的文法和UPDATE 命令非常類似。用:DELETE FROM Sites
Time of Update: 2016-06-27
標籤:1. 檢查Linux系統是否安裝資料庫 首先查看自己的系統是否安裝了postgresql資料庫命令如下: rpm -qa | grep postgresql 如果沒有顯示查詢結果(如所示)說明就未安裝postgresql資料庫 2. 登入資料庫 &
Time of Update: 2016-06-24
標籤:眾所周知,PostgreSQL 是一個自由的對象-關聯式資料庫伺服器(資料庫管理系統),是一個可以免費使用的開放原始碼資料庫系統。本文詳細介紹了PostgreSQL資料庫服務端監聽設定及用戶端串連方法,具體如下:一、背景介紹:本文所述PostgreSQL服務端運行在RedHat Linux上,IP為:192.168.230.128用戶端安裝在Windows XP上,
Time of Update: 2016-06-28
標籤:表大小資訊postgres=# SELECT *, pg_size_pretty(total_bytes) AS totalpostgres-# , pg_size_pretty(index_bytes) AS INDEXpostgres-# , pg_size_pretty(toast_bytes) AS toastpostgres-# , pg_size_pretty(table_bytes) AS TABLEpostgres-# FROM
Time of Update: 2016-06-26
標籤:一.ANY/SOMEWHERE expression operator ANY (subquery)WHERE expression operator SOME (subquery)其實ANY和SOME在這裡是同等效的,子查詢的結果集只能是一個欄位,左邊運算式使用operator對結果集的每一行進行一次比較運算,如果有一個運算結果是‘TRUE‘,則運算式結果為‘TRUE‘,如果比較結果全部是‘FALSE‘運算式結果才是‘FALSE‘。> ANY 大於子查詢結果中的某個值&
Time of Update: 2016-06-24
標籤:一般性: \copyright 顯示PostgreSQL的使用和發行授權條款 \g [檔案] or; 執行查詢 (並把結果寫入檔案或 |管道) \h [名稱] SQL命令文法上的說明,用*顯示全部命令的文法說明 \q 退出 psql查詢快取區 \e [FILE] [
Time of Update: 2016-06-24
標籤: ctid: 表示資料記錄的物理行當資訊,指的是 一條記錄位於哪個資料區塊的哪個位移上面。 跟oracle中偽列 rowid 的意義一樣的;只是形式不一樣。 例如這有個一表test;查看每行記錄的ctid情況mydb=> select ctid,* from test; ctid | id | name -------+------+-------- (0,1) | 1001 | lottu (0,2) | 1002
Time of Update: 2016-06-21
標籤: 使用INHERITS建立的新表會繼承一個或多個父表,子表只會繼承父表的表結構和NOT NULL,DEFAULT,CHECK三種約束,主鍵,外鍵和唯一鍵以及索引不會被繼承,所以修改父表的結構(增刪欄位),NOT NULL,DEFAULT和CHECK約束會自動同步子表修改。樣本1.create table tbl_inherits_parent(a int not null,b varchar(32) not null default ‘Got u‘,c int check (c
Time of Update: 2016-06-22
標籤:說明: 我是用root使用者在終端登陸的,如果是非root使用者,那在命令前需要加上"sudo",你懂的...第一步:在Ubuntu下安裝Postgresql 1.使用 apt-get install
Time of Update: 2016-06-22
標籤:--下面的描述不記得在哪裡抄來的了?!表分區就是把邏輯上一個大表分割成物理上的多個小塊,表分區可提供如下若干好處:1.某些類型的查詢效能可以得到極大提升。2.更新的效能可以得到提升,因為表的每塊索引要比整個資料集上的索引要小,如果索引不能全部放在記憶體裡,那麼在索引上的讀寫都會產生磁碟訪問。3.大量刪除可以用簡單的刪除某個分區4.將很少使用的資料移動到便宜的慢一些的儲存介質上。樣本1. 1.建立主表create table tbl_inherits_test( a int,
Time of Update: 2016-06-20
標籤:PostgreSQL實現了SQL/MED規範的一部分,允許使用規則的SQL查詢訪問駐留在PostgreSQL外部的資料。這樣的資料被稱為外部資料。(請注意這種使用不能同外鍵混淆,外鍵是資料庫的一種約束類型。)外部資料是通過外部資料封裝器的協助來訪問的。一個外部資料封裝器是一個可以與外部資料源溝通的庫,隱藏與外部資料源串連的細節並且從外部資料源獲得資料。這裡有幾個作為貢獻模板的可用外部資料封裝器。其他類型的外部資料封裝器可能會在第三方產品中見到。如果現存的外部資料封裝器沒有適合你的需要的。要
Time of Update: 2016-06-18
標籤:PG安裝完成後預設不會記錄日誌,必須修改對應的(${PGDATA}/postgresql.conf)配置才可以,這裡只介紹常用的日誌配置。1.logging_collector = on/off ---- 是否將日誌重新導向至檔案中,預設是off(該配置修改後,需要重啟DB服務)DB安裝完成,啟動的服務進程如下[[email protected] ~]# ps -elf | grep postgres0 S postgres 2385
Time of Update: 2016-06-18
標籤: 以在64位CentOS6.5作業系統上源碼安裝postgresql-9.6beta1為例 一.進入官網下載代碼(postgresql-9.6beta1.tar.gz)https://www.postgresql.org 二.將源碼上傳到伺服器/home/alian目錄下可以在windows安裝ssh或xftp工具,也可以在CentOS安裝lrzsz的rpm包(使用rz,sz命令)上傳或下載檔案。 三.將源碼在目前的目錄下解壓[[email
Time of Update: 2016-06-19
標籤:資料庫表有NOT NULL,DEFAULT,CHECK,UNIQUE,PRIMARY KEY,FOREIGN KEY六種約束。一、NOT NULL ---- 非空約束NULL表示沒有資料,不表示具體的數值,所以在資料庫中NULL是不等於NULL的。判斷表中的一個儲存格是不是NULL使用的是IS NULL或者IS NOT NULL,而不是=NULL或者!=NULL,當一個欄位設定NOT
Time of Update: 2016-06-16
標籤:PostgreSQL添加新的伺服器串連時,報錯: 解決方案:第一步:修改設定檔中已連線的服務器列表,添加伺服器IP地址(圖pg002.png)設定檔地址:資料庫右擊屬性,開啟資料庫的安裝路徑在data檔案中找到設定檔pg_hba.conf。如:D:\Program
Time of Update: 2016-06-15
標籤:PostgreSQL實現了表繼承,這個特性對資料庫設計人員來說是一個很有效工具。SQL99 及以後的標準定義了類型繼承特性,和我們在這裡描述的很多特性有區別。讓我們從一個例子開始:假設我們試圖製作一個城市資料模型。每個州都有許多城市,但是只有一個首府。我們希望能夠迅速檢索任何州的首府。這個任務可以通過建立兩個表來實現,一個是州府表,一個是非州府表。不過,如果我們不管什麼城市都想查該怎麼辦?