国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-8. 數(shù)組

2019-09-08 23:33:12
字體:
供稿:網(wǎng)友
第八章. 數(shù)組
注意:這些必須在數(shù)組特性中成為一章,愿意做志愿者嗎? -thomas 1998-01-12
Postgres 允許記錄的字段定義成定長或不定長的多維數(shù)組.數(shù)組類型可以是任何基本類型或用戶定義類型.為說明這些用法,我們先創(chuàng)建一個由基本類型數(shù)組構(gòu)成的表: 
CREATE TABLE sal_emp (
    name            text,
    pay_by_quarter  int4[],
    schedule        text[][]
);
上面的語句將創(chuàng)建一個叫 sal_emp 的表,它有一個 text 類型字符串字段(name), 一個一維 int4 型數(shù)組(pay_by_quarter),代表雇員的季度薪水和一個兩維text類型數(shù)組(schedule),表示雇員的周計劃.現(xiàn)在我們做一些插入(INSERTS),注意我們向數(shù)組字段追加數(shù)據(jù)時,我們用大括號把數(shù)據(jù)值括起來并且用逗號將它們分開.如果你懂 C ,這與初始化一個結(jié)構(gòu)很像。 
INSERT INTO sal_emp
    VALUES ('Bill',
    '{10000, 10000, 10000, 10000}',
    '{{"meeting", "lunch"}, {}}');

INSERT INTO sal_emp
    VALUES ('Carol',
    '{20000, 25000, 25000, 25000}',
    '{{"talk", "consult"}, {"meeting"}}');
(譯注:這里數(shù)組的初始化是向初始值最少的數(shù)組元素對齊的,
如上面第一個插入,庫中只存儲"meeting",是因為向第二組初始值'{}'對齊的結(jié)果)
現(xiàn)在我們可以在 sal_emp 上運行一些查詢。首先,我們演示如何一次訪問數(shù)組的一個元素.這個查詢檢索在第二季度薪水變化的雇員名: 
SELECT name FROM sal_emp WHERE pay_by_quarter[1] <> pay_by_quarter[2];

 name
-------
 Carol
(1 row)
Postgres 缺省使用"以1為基" 的數(shù)組習慣-也就是說,一個n元素的數(shù)組從array[1]開始,到array[n]結(jié)束. 
這個查詢檢索所有雇員第三季度的薪水: 

SELECT pay_by_quarter[3] FROM sal_emp;

 pay_by_quarter
----------------
          10000
          25000
(2 rows)
我們還可以訪問一個數(shù)組的任意部分,或稱子數(shù)組.對于一維或更多維數(shù)組,一個數(shù)組的某一部分是用"底腳標 : 高腳標"表示的。下面查詢檢索Bill該周頭兩天的第一件計劃. 
SELECT schedule[1:2][1:1] FROM sal_emp WHERE name = 'Bill';

      schedule
--------------------
 {{"meeting"},{""}}
(1 row)
我們還可以寫 
SELECT schedule[1:2][1] FROM sal_emp WHERE name = 'Bill';
獲取同樣的結(jié)果。 
一個數(shù)組值可以完全被代替: 

UPDATE sal_emp SET pay_by_quarter = '{25000,25000,27000,27000}'
    WHERE name = 'Carol';
或者只是更新某一個域: 
UPDATE sal_emp SET pay_by_quarter[4] = 15000
    WHERE name = 'Bill';
或者更新某個部分: 
UPDATE sal_emp SET pay_by_quarter[1:2] = '{27000,27000}'
    WHERE name = 'Carol';
目前不可能重新改變一個數(shù)組的大小,除非完全替換數(shù)組;比如,我們無法通過賦予 array[5] 數(shù)值把一個四個元素的數(shù)組改變?yōu)橐粋€五元素的數(shù)組?!?
CREATE TABLE 的語法允許定義固定長度的數(shù)組: 

CREATE TABLE tictactoe (
    squares   int4[3][3]
);
不過,目前的實現(xiàn)并不強制數(shù)組尺寸限制 --- 這個特點與未聲明長度數(shù)組一樣?!?

--------------------------------------------------------------------------------
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 共和县| 普格县| 曲沃县| 游戏| 阿巴嘎旗| 满洲里市| 沙湾县| 台中县| 安徽省| 榆中县| 平邑县| 柞水县| 金堂县| 牙克石市| 永兴县| 海丰县| 石狮市| 抚宁县| 青龙| 东乡| 巴青县| 铜山县| 麦盖提县| 济南市| 清镇市| 象山县| 丹棱县| 民丰县| 卢湾区| 北宁市| 新野县| 德阳市| 灵璧县| 凤阳县| 搜索| 农安县| 洱源县| 昂仁县| 行唐县| 嘉定区| 阿拉善右旗|