<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 3.6\. 繼承 繼承是面向對象的數據庫的概念。它開啟了數據庫設計的有趣的新的可能性。 讓我們創建兩個表:一個`cities`表和一個`capitals`表。 自然,首府(capital)也是城市(cities),因此在列出所有城市時你想要某種方法隱含地顯示首府。 如果你已經很高明了,那么你可能會創造類似下面這樣的模式: ``` CREATE TABLE capitals ( name text, population real, altitude int, -- (單位是英尺) state char(2) ); CREATE TABLE non_capitals ( name text, population real, altitude int -- (單位是英尺) ); CREATE VIEW cities AS SELECT name, population, altitude FROM capitals UNION SELECT name, population, altitude FROM non_capitals; ``` 如果只是查詢,那么這個方法運轉得很好,但是如果你需要更新某幾行,那這個方法就很難看了。 一種更好的方法是: ``` CREATE TABLE cities ( name text, population real, altitude int -- (單位是英尺) ); CREATE TABLE capitals ( state char(2) ) INHERITS (cities); ``` 在這個例子里,`capitals`_繼承_了其_父表_ `cities`的所有字段(`name`,`population` 和`altitude`)。字段`name`的類型`text`是 PostgreSQL用于變長字符串的固有類型。州首府有一個額外的字段 `state`顯示其所處的州。在PostgreSQL里, 一個表可以從零個或者更多其它表中繼承過來。 比如,下面的查詢找出所有海拔超過 500 英尺的城市的名字,包括州首府: ``` SELECT name, altitude FROM cities WHERE altitude > 500; ``` 它返回: ``` name | altitude -----------+---------- Las Vegas | 2174 Mariposa | 1953 Madison | 845 (3 rows) ``` 另一方面,下面的查詢找出所有不是州首府并且位于海拔大于或等于 500 英尺的城市: ``` SELECT name, altitude FROM ONLY cities WHERE altitude > 500; ``` ``` name | altitude -----------+---------- Las Vegas | 2174 Mariposa | 1953 (2 rows) ``` `cities`前面的`ONLY`指示系統只對`cities` 表運行查詢,而不包括繼承級別中低于`cities`的表。 許多我們已經討論過的命令—`SELECT`, `UPDATE`和 `DELETE`—都支持這個`ONLY`表示法。 > **Note:** 盡管繼承經常是有用的,但是它還沒有集成唯一約束或者外鍵,因此制約了其實用性。 參閱[Section 5.8](#calibre_link-1041)以獲取更多細節。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看