亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-教程 -73. Postgres SQL 高級特性

2019-09-08 23:34:00
字體:
來源:轉載
供稿:網友
第七十三章. Postgres SQL 高級特性
內容 
繼承 
非原子數值 
更多高級特性 
在結束了使用 PostgresSQL 訪問你的數據的基本方法的課程之后,我們將開始討論Postgres區別于其他傳統數據庫管理器的特性.這些特性包括:繼承,時間跟蹤和非定量數值(數組和有值字段)(array- and set-valued attributes).本節的例子可以在教程目錄的 advance.sql 文件中找到.(如何使用參見  第 72 章 。) 
  
繼承
讓我們創建兩個表.表 capitals 包含各州的首府,同時也是cities表.自然而然,表 capitals 應該從表 cities 繼承下來. 
CREATE TABLE cities (
    name            text,
    population      float,
    altitude        int     -- (in ft)
);

CREATE TABLE capitals (
    state           char(2)
) INHERITS (cities);
在本例中,一條 capitals 的記錄 繼承 所有父表 cities 的字段(name,population,和 altitude). 字段 name 的類型是 text, Postgres 用于變長 ASCII 字符串的類型.字段 population 的類型是 float, Postgres 的雙精度浮點數據類型.表 capitals 多一個字段,state,表明首府所在的州.在 Postgres 里,一個表可以從0或更多個其他表繼承下來,一個查詢可以檢索一個表的所有記錄,也可以檢索一個表和其所有后代的記錄. 
注意: 繼承層次是一種開放的不循環的圖形.
例如,下面查詢將找出所有海拔500英尺以上的城市. 
SELECT name, altitude
    FROM cities
    WHERE altitude > 500;

+----------+----------+
|name      | altitude |
+----------+----------+
|Las Vegas | 2174     |
+----------+----------+
|Mariposa  | 1953     |
+----------+----------+
另一方面,如果要找出包括州首府在內的海拔高于500英尺的城市,查詢應該是這樣的: 
  
SELECT c.name, c.altitude
    FROM cities* c
    WHERE c.altitude > 500;
返回: 
+----------+----------+
|name      | altitude |
+----------+----------+
|Las Vegas | 2174     |
+----------+----------+
|Mariposa  | 1953     |
+----------+----------+
|Madison   | 845      |
+----------+----------+
在這里 cities 后的 “*” 表明該查詢應該遍歷cities 和繼承層次底于 cities 的表. 許多我們已經討論過的命令(SELECT,UPDATE 和 DELETE)都支持“*”(譯注:類似通配符),還有其他的一些命令,象 ALTER.

--------------------------------------------------------------------------------

-------------------------------------------------------------------------------

非原子數值
關系型模型的一個要求就是所有關系的字段都是原子化(譯注:意為不可分割,目前正在尋找最準確的譯法.)的.Postgres沒有這個限制;字段可以有自己的子值,這些值可以通過查詢語言訪問.例如,你可以創建數組類字段. 
數組
Postgres 允許一個字段被定義成定長或不定長的多維數組.數組可以是任何基本類型或者用戶自定義的類型.為說明這些,我們先創建一個由基本類型數組組成的表. 
CREATE TABLE SAL_EMP (
    name            text,
    pay_by_quarter  int4[],
    schedule        text[][]
);
上面的查詢語句將創建一個叫 SAL_EMP的表,表中有一個 text 串(name),一個 int4 型的一維數組(pay_by_quarter),代表以季度為單位的雇員薪水和一個二維的 text 型數組(schedule),代表雇員的周計劃.現在我們做一些插入 (INSERTSs);注意當我們向數組中追加數據時,我們用大括號將數據括起來,并且用逗號將它們區別開.如果你懂 C,這和初始化一個結構的語法很像. 
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"}}');
Postgres 缺省使用 "1為基" 的數組(下標)計數方法,也就是說,一個 n 個元素的數組第一個元素是array[1],最后一個元素是array[n].現在,我們在 SAL_EMP 表上運行一些查詢.首先,我們展示如何一次訪問一個數組的某一元素.這個查詢檢索出在第二季度收入改變了的雇員名: 
SELECT name
    FROM SAL_EMP
    WHERE SAL_EMP.pay_by_quarter[1] <>
    SAL_EMP.pay_by_quarter[2];

+------+
|name  |
+------+
|Carol |
+------+
下面的查詢檢索所有雇員第三季度的收入: 
SELECT SAL_EMP.pay_by_quarter[3] FROM SAL_EMP;



+---------------+
|pay_by_quarter |
+---------------+
|10000          |
+---------------+
|25000          |
+---------------+
我們還可以訪問數組任意片段或者子數組.下面查詢檢索 Bill 周計劃頭兩天的第一項. 
  
SELECT SAL_EMP.schedule[1:2][1:1]
    FROM SAL_EMP
    WHERE SAL_EMP.name = 'Bill';

+-------------------+
|schedule           |
+-------------------+
|{{"meeting"},{""}} |
+-------------------+

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

更多的高級特性
Postgres 有許多這個教程沒有提到的特性,這些特性是面向新SQL 用戶的.這些特性將在用戶手冊和程序員手冊中詳細描述.

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩成人在线播放| 亚洲乱码国产乱码精品精天堂| 亚洲二区在线播放视频| 亚洲片国产一区一级在线观看| 成人黄色短视频在线观看| 国产亚洲精品一区二区| 久久精视频免费在线久久完整在线看| 91精品视频免费| 欧美成人精品一区二区三区| 美女av一区二区三区| 欧美成人免费va影院高清| 操91在线视频| 中文字幕欧美日韩va免费视频| 激情av一区二区| 久久久久久午夜| 草民午夜欧美限制a级福利片| 亚洲有声小说3d| 成人在线观看视频网站| 久久久女人电视剧免费播放下载| 国产精品自拍网| 欧美国产一区二区三区| 亚洲男人天堂2024| 国产欧美日韩精品专区| 国产91久久婷婷一区二区| 欧美性69xxxx肥| 久久久久久综合网天天| 一区二区中文字幕| 亚洲第一中文字幕在线观看| 亚洲xxxxx| 亚洲精品美女网站| 成人h片在线播放免费网站| 亚洲精品一区av在线播放| 亚洲国产精品99| 欧美午夜片在线免费观看| 欧美亚洲视频在线看网址| 精品国内产的精品视频在线观看| 亚洲黄在线观看| 亚洲精品v欧美精品v日韩精品| 欧美与黑人午夜性猛交久久久| 26uuu国产精品视频| 亚州精品天堂中文字幕| 欧美激情啊啊啊| 中文字幕日韩精品在线观看| 久久激情视频久久| 国产在线观看精品| 成人免费观看网址| 欧美一级免费视频| 久久精品视频在线播放| 欧美丰满少妇xxxxx| 精品国产一区二区在线| 国产主播在线一区| 国产精品免费久久久久久| 亚洲高清av在线| 色777狠狠综合秋免鲁丝| 国产极品精品在线观看| 国产精品视频大全| 欧美—级a级欧美特级ar全黄| 国产精品男人的天堂| 欧美一区二区大胆人体摄影专业网站| 久久人人爽人人爽爽久久| 午夜精品久久久久久久久久久久| 国产中文日韩欧美| 欧美激情喷水视频| 欧美激情精品久久久久久变态| 美女久久久久久久| 亚洲香蕉成人av网站在线观看| 成人高h视频在线| 亚洲色图25p| 欧美乱大交xxxxx| 欧美大片免费看| 国产日本欧美一区二区三区在线| 一区二区三区亚洲| 91精品久久久久| 国产精品自产拍高潮在线观看| 亚洲天堂av在线播放| 亚洲欧洲在线播放| 久久99国产精品自在自在app| 91成人精品网站| 国内伊人久久久久久网站视频| 深夜福利日韩在线看| 中文字幕一区电影| 91精品国产亚洲| 欧美主播福利视频| 国产精品ⅴa在线观看h| 国产精品美女网站| 激情久久av一区av二区av三区| 国产成人在线精品| 精品国产老师黑色丝袜高跟鞋| 91在线精品播放| 亚洲欧美中文字幕在线一区| 国语自产在线不卡| 精品久久久久久国产91| 国产精品香蕉国产| 国产精品视频999| 国产欧美一区二区三区视频| 久久在线免费观看视频| 欧美激情视频在线免费观看 欧美视频免费一| 成人福利视频在线观看| 成人亲热视频网站| 欧美精品久久久久久久久久| 国产一区二区日韩精品欧美精品| 国产精品第三页| 精品久久久久久久久久ntr影视| 久久精品99久久久久久久久| 少妇高潮 亚洲精品| …久久精品99久久香蕉国产| 亚洲天堂免费视频| 亚洲午夜av电影| 国产亚洲精品一区二555| 国产精品扒开腿做爽爽爽的视频| 欧美精品中文字幕一区| 成人精品aaaa网站| 精品国内自产拍在线观看| 一区二区欧美久久| 国产丝袜一区视频在线观看| 国产精品成人一区二区三区吃奶| 亚洲在线第一页| 久久精品久久久久久国产 免费| 浅井舞香一区二区| 日韩国产欧美精品在线| 成人亚洲欧美一区二区三区| 色午夜这里只有精品| 国产精品视频一区二区三区四| 久久青草福利网站| 欧美极度另类性三渗透| 日韩免费高清在线观看| 97国产真实伦对白精彩视频8| 亚洲va国产va天堂va久久| 国产精品中文久久久久久久| 91天堂在线观看| 欧美国产日韩一区二区三区| 国产日韩精品在线播放| 九九精品在线观看| 黄色一区二区在线观看| 成人淫片在线看| 亚洲人成电影网站色xx| 久色乳综合思思在线视频| 国产成人一区二区三区| 久久精品99久久香蕉国产色戒| www.国产精品一二区| 欧美激情一区二区久久久| 国产97色在线|日韩| 中文字幕日韩av综合精品| 精品二区三区线观看| 九九热这里只有精品免费看| 亚洲电影免费观看高清| 亚洲第一精品电影| 国产91ⅴ在线精品免费观看| 国产成一区二区| 久久精品国亚洲| 亚洲高清在线观看| 人体精品一二三区| 黑人欧美xxxx| 国产精品美女视频网站| 成人看片人aa| 久久国产精品视频| 国产日韩欧美自拍| 久久久久久久久91| 中文字幕无线精品亚洲乱码一区| 国产69久久精品成人看| 国产精品美女久久久免费| 欧美最猛性xxxx| 国产欧美精品日韩精品| 黑人巨大精品欧美一区二区免费|