diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-16 19:46:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-16 19:46:48 +0000 |
commit | 311bcfc6b3acdd6fd152798c7f287ddf74fa2a98 (patch) | |
tree | 0ec307299b1dada3701e42f4ca6eda57d708261e /src/tutorial/advanced.source | |
parent | Initial commit. (diff) | |
download | postgresql-15-311bcfc6b3acdd6fd152798c7f287ddf74fa2a98.tar.xz postgresql-15-311bcfc6b3acdd6fd152798c7f287ddf74fa2a98.zip |
Adding upstream version 15.4.upstream/15.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/tutorial/advanced.source')
-rw-r--r-- | src/tutorial/advanced.source | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/tutorial/advanced.source b/src/tutorial/advanced.source new file mode 100644 index 0000000..0c68b33 --- /dev/null +++ b/src/tutorial/advanced.source @@ -0,0 +1,60 @@ +--------------------------------------------------------------------------- +-- +-- advanced.sql- +-- Tutorial on advanced 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, + elevation 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 elevation of 500 ft or higher by: + +SELECT c.name, c.elevation +FROM cities c +WHERE c.elevation > 500; + +-- To scan rows of the parent table only, use ONLY: + +SELECT name, elevation +FROM ONLY cities +WHERE elevation > 500; + + +-- clean up (you must remove the children first) +DROP TABLE capitals; +DROP TABLE cities; |