Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

advanced.source

Blame
  • advanced.source 1.54 KiB
    ---------------------------------------------------------------------------
    --
    -- advanced.sql-
    --    Tutorial on advanced more PostgreSQL features
    --
    --
    -- Copyright (c) 1994, Regents of the University of California
    --
    -- src/tutorial/advanced.source
    --
    ---------------------------------------------------------------------------
    
    -----------------------------
    -- Inheritance:
    --	A table can inherit from zero or more tables.  A query can reference
    --	either all rows of a table or all rows of a table plus all of its
    --	descendants.
    -----------------------------
    
    -- For example, the capitals table inherits from cities table. (It inherits
    -- all data fields from cities.)
    
    CREATE TABLE cities (
    	name		text,
    	population	float8,
    	altitude	int		-- (in ft)
    );
    
    CREATE TABLE capitals (
    	state		char(2)
    ) INHERITS (cities);
    
    -- Now, let's populate the tables.
    INSERT INTO cities VALUES ('San Francisco', 7.24E+5, 63);
    INSERT INTO cities VALUES ('Las Vegas', 2.583E+5, 2174);
    INSERT INTO cities VALUES ('Mariposa', 1200, 1953);
    
    INSERT INTO capitals VALUES ('Sacramento', 3.694E+5, 30, 'CA');
    INSERT INTO capitals VALUES ('Madison', 1.913E+5, 845, 'WI');
    
    SELECT * FROM cities;
    SELECT * FROM capitals;
    
    -- You can find all cities, including capitals, that
    -- are located at an altitude of 500 ft or higher by:
    
    SELECT c.name, c.altitude
    FROM cities c
    WHERE c.altitude > 500;
    
    -- To scan rows of the parent table only, use ONLY:
    
    SELECT name, altitude
    FROM ONLY cities
    WHERE altitude > 500;
    
    
    -- clean up (you must remove the children first)
    DROP TABLE capitals;
    DROP TABLE cities;