⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inherit.sgml

📁 关系型数据库 Postgresql 6.5.2
💻 SGML
字号:
<Chapter Id="inherit"><Title>Inheritance</Title><Para>     Let's create two classes. The capitals  class  contains     state  capitals  which  are also cities. Naturally, the     capitals class should inherit from cities.     <ProgramListing>CREATE TABLE cities (    name            text,    population      float,    altitude        int            -- (in ft));CREATE TABLE capitals (    state           char2) INHERITS (cities);</ProgramListing>     In this case, an  instance  of  capitals  <FirstTerm>inherits</FirstTerm>  all     attributes  (name,  population,  and altitude) from its     parent, cities.  The type  of  the  attribute  name  is     <Type>text</Type>,  a  native  <ProductName>Postgres</ProductName>  type  for variable length     ASCII strings.  The type of the attribute population is     <Type>float</Type>,  a  native <ProductName>Postgres</ProductName> type for double precision     floating point numbers.  State capitals have  an  extra     attribute, state, that shows their state.  In <ProductName>Postgres</ProductName>,     a  class  can inherit from zero or more other classes,     and a query can reference either  all  instances  of  a     class  or  all  instances  of  a  class plus all of its     descendants. <Note><Para>The inheritance hierarchy is a actually a directed acyclic graph.</Para></Note>For example, the  following  query  finds     all  the cities that are situated at an attitude of 500ft or higher:     <ProgramListing>SELECT name, altitude    FROM cities    WHERE altitude &gt; 500;+----------+----------+|name      | altitude |+----------+----------+|Las Vegas | 2174     |+----------+----------+|Mariposa  | 1953     |+----------+----------+</ProgramListing>         </para><Para>     On the other hand, to find the  names  of  all  cities,     including  state capitals, that are located at an altitude      over 500ft, the query is:<ProgramListing>SELECT c.name, c.altitude    FROM cities* c    WHERE c.altitude > 500;</ProgramListing>     which returns:     <ProgramListing>+----------+----------+|name      | altitude |+----------+----------+|Las Vegas | 2174     |+----------+----------+|Mariposa  | 1953     |+----------+----------+|Madison   | 845      |+----------+----------+</ProgramListing>     Here the <Quote>*</Quote> after cities indicates that the query should     be  run over cities and all classes below cities in the     inheritance hierarchy.  Many of the  commands  that  we     have  already discussed -- <Command>select</Command>, <Command>update</Command> and <Command>delete</Command> --     support this <Quote>*</Quote> notation, as do others, like <Command>alter</Command>.</Para></Chapter>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -