国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 郓城县| 改则县| 平乡县| 南安市| 池州市| 胶南市| 电白县| 宜宾市| 广元市| 诏安县| 新平| 尼木县| 建始县| 松溪县| 堆龙德庆县| 绩溪县| 大足县| 裕民县| 同江市| 兰考县| 天峨县| 时尚| 虎林市| 固镇县| 宁阳县| 额济纳旗| 闽侯县| 秭归县| 杭锦旗| 峨边| 万源市| 高州市| 上高县| 扎赉特旗| 拉萨市| 时尚| 肃南| 石棉县| 若羌县| 唐河县| 绵阳市|