<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL%2FView%2FCreate_View</id>
		<title>PostgreSQL/View/Create View - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL%2FView%2FCreate_View"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=PostgreSQL/View/Create_View&amp;action=history"/>
		<updated>2026-04-04T10:07:57Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=PostgreSQL/View/Create_View&amp;diff=4948&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=PostgreSQL/View/Create_View&amp;diff=4948&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.sqle.ru/index.php?title=PostgreSQL/View/Create_View&amp;diff=4949&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=PostgreSQL/View/Create_View&amp;diff=4949&amp;oldid=prev"/>
				<updated>2010-05-26T10:14:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Creates a view of all publishers whose names begin with H==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE TABLE &amp;quot;publishers&amp;quot; (&lt;br /&gt;
postgres(#      &amp;quot;id&amp;quot; integer NOT NULL,&lt;br /&gt;
postgres(#      &amp;quot;name&amp;quot; text,&lt;br /&gt;
postgres(#      &amp;quot;address&amp;quot; text,&lt;br /&gt;
postgres(#      Constraint &amp;quot;publishers_pkey&amp;quot; Primary Key (&amp;quot;id&amp;quot;)&lt;br /&gt;
postgres(# );&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# insert into publishers values(150, &amp;quot;Can Press&amp;quot;,  &amp;quot;29 Ave. Toronto, ON&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(91,  &amp;quot;Henry Inc.&amp;quot;, &amp;quot;115 Street New York, NY&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(113, &amp;quot;O Inc.&amp;quot;,     &amp;quot;101 St, Sebastopol, CA&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(62,  &amp;quot;W Pubs&amp;quot;,     &amp;quot;1515, New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(105, &amp;quot;N Press&amp;quot;,    &amp;quot;19 W, New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(99,  &amp;quot;A Inc&amp;quot;,      &amp;quot;375 St, New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(101, &amp;quot;Z Inc&amp;quot;,      &amp;quot;375 Ave, New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(163, &amp;quot;M Press&amp;quot;,    &amp;quot;PO Box 1215&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(171, &amp;quot;B&amp;quot;,          &amp;quot;16 W. 18th St. New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(102, &amp;quot;P Inc&amp;quot;,      &amp;quot;375 Hudson St, New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(75,  &amp;quot;D Inc&amp;quot;,      &amp;quot;1540 Broadway, New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(65,  &amp;quot;H Pubs&amp;quot;,     &amp;quot;10 E 53rd St, New York&amp;quot;);&lt;br /&gt;
postgres=# insert into publishers values(59,  &amp;quot;R Inc&amp;quot;,      &amp;quot;1540 Broadway, New York&amp;quot;);&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# select * from publishers;&lt;br /&gt;
 id  |    name    |         address&lt;br /&gt;
-----+------------+-------------------------&lt;br /&gt;
 150 | Can Press  | 29 Ave. Toronto, ON&lt;br /&gt;
  91 | Henry Inc. | 115 Street New York, NY&lt;br /&gt;
 113 | O Inc.     | 101 St, Sebastopol, CA&lt;br /&gt;
  62 | W Pubs     | 1515, New York&lt;br /&gt;
 105 | N Press    | 19 W, New York&lt;br /&gt;
  99 | A Inc      | 375 St, New York&lt;br /&gt;
 101 | Z Inc      | 375 Ave, New York&lt;br /&gt;
 163 | M Press    | PO Box 1215&lt;br /&gt;
 171 | B          | 16 W. 18th St. New York&lt;br /&gt;
 102 | P Inc      | 375 Hudson St, New York&lt;br /&gt;
  75 | D Inc      | 1540 Broadway, New York&lt;br /&gt;
  65 | H Pubs     | 10 E 53rd St, New York&lt;br /&gt;
  59 | R Inc      | 1540 Broadway, New York&lt;br /&gt;
(13 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# -- Creates a view of all publishers whose names begin with H:&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE VIEW h_publishers AS&lt;br /&gt;
postgres-#         SELECT * FROM publishers WHERE name LIKE &amp;quot;H%&amp;quot;;&lt;br /&gt;
CREATE VIEW&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# select * from h_publishers;&lt;br /&gt;
 id |    name    |         address&lt;br /&gt;
----+------------+-------------------------&lt;br /&gt;
 91 | Henry Inc. | 115 Street New York, NY&lt;br /&gt;
 65 | H Pubs     | 10 E 53rd St, New York&lt;br /&gt;
(2 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# drop view h_publishers;&lt;br /&gt;
DROP VIEW&lt;br /&gt;
postgres=# drop table publishers;&lt;br /&gt;
DROP TABLE&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create view from the user defined function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE TABLE myTable (&lt;br /&gt;
postgres(#          id int,&lt;br /&gt;
postgres(#          sid int,&lt;br /&gt;
postgres(#          name text);&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# insert into myTable values(1,2,&amp;quot;a&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into myTable values(2,3,&amp;quot;b&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# select * from myTable;&lt;br /&gt;
 id | sid | name&lt;br /&gt;
----+-----+------&lt;br /&gt;
  1 |   2 | a&lt;br /&gt;
  2 |   3 | b&lt;br /&gt;
(2 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE FUNCTION getData(int) RETURNS SETOF myTable AS $$&lt;br /&gt;
postgres$#    SELECT * FROM myTable WHERE id = $1;&lt;br /&gt;
postgres$# $$ LANGUAGE SQL;&lt;br /&gt;
CREATE FUNCTION&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE VIEW vw_GetData AS SELECT * FROM getData(1);&lt;br /&gt;
CREATE VIEW&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# SELECT * FROM vw_GetData;&lt;br /&gt;
 id | sid | name&lt;br /&gt;
----+-----+------&lt;br /&gt;
  1 |   2 | a&lt;br /&gt;
(1 row)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# drop function getData(int) cascade;&lt;br /&gt;
NOTICE:  drop cascades to rule _RETURN on view vw_getdata&lt;br /&gt;
NOTICE:  drop cascades to view vw_getdata&lt;br /&gt;
DROP FUNCTION&lt;br /&gt;
postgres=# drop view vw_GetData cascade;&lt;br /&gt;
ERROR:  view &amp;quot;vw_getdata&amp;quot; does not exist&lt;br /&gt;
postgres=# drop table myTable cascade;&lt;br /&gt;
DROP TABLE&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating a view with a natural join statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE TABLE &amp;quot;editions&amp;quot; (&lt;br /&gt;
postgres(#      &amp;quot;isbn&amp;quot; text NOT NULL,&lt;br /&gt;
postgres(#      &amp;quot;book_id&amp;quot; integer,&lt;br /&gt;
postgres(#      &amp;quot;edition&amp;quot; integer,&lt;br /&gt;
postgres(#      &amp;quot;publisher_id&amp;quot; integer,&lt;br /&gt;
postgres(#      &amp;quot;publication&amp;quot; date,&lt;br /&gt;
postgres(#      &amp;quot;type&amp;quot; character(1),&lt;br /&gt;
postgres(#      CONSTRAINT &amp;quot;integrity&amp;quot; CHECK (((book_id NOTNULL) AND (edition NOTNULL))),&lt;br /&gt;
postgres(#      Constraint &amp;quot;pkey&amp;quot; Primary Key (&amp;quot;isbn&amp;quot;)&lt;br /&gt;
postgres(# );&lt;br /&gt;
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index &amp;quot;pkey&amp;quot; for table &amp;quot;editions&amp;quot;&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;039480001X&amp;quot;, 1608,  1,  59,  &amp;quot;1957-03-01&amp;quot;, &amp;quot;h&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0451160916&amp;quot;, 7808,  1,  75,  &amp;quot;1981-08-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0394800753&amp;quot;, 1590,  1,  59,  &amp;quot;1949-03-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0590445065&amp;quot;, 25908, 1,  150, &amp;quot;1987-03-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0694003611&amp;quot;, 1501,  1,  65,  &amp;quot;1947-03-04&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0679803335&amp;quot;, 1234,  1,  102, &amp;quot;1922-01-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0760720002&amp;quot;, 190,   1,  91,  &amp;quot;1868-01-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0394900014&amp;quot;, 1608,  1,  59,  &amp;quot;1957-01-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0385121679&amp;quot;, 7808,  2,  75,  &amp;quot;1993-10-01&amp;quot;, &amp;quot;h&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;1885418035&amp;quot;, 156,   1,  163, &amp;quot;1995-03-28&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0929605942&amp;quot;, 156,   2,  171, &amp;quot;1998-12-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0441172717&amp;quot;, 4513,  2,  99,  &amp;quot;1998-09-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;044100590X&amp;quot;, 4513,  3,  99,  &amp;quot;1999-10-01&amp;quot;, &amp;quot;h&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0451457994&amp;quot;, 4267,  3,  101, &amp;quot;2000-09-12&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0451198492&amp;quot;, 4267,  3,  101, &amp;quot;1999-10-01&amp;quot;, &amp;quot;h&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0823015505&amp;quot;, 2038,  1,  62,  &amp;quot;1958-01-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into editions values(&amp;quot;0596000855&amp;quot;, 41473, 2,  113, &amp;quot;2001-03-01&amp;quot;, &amp;quot;p&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# select * from editions;&lt;br /&gt;
    isbn    | book_id | edition | publisher_id | publication | type&lt;br /&gt;
------------+---------+---------+--------------+-------------+------&lt;br /&gt;
 039480001X |    1608 |       1 |           59 | 1957-03-01  | h&lt;br /&gt;
 0451160916 |    7808 |       1 |           75 | 1981-08-01  | p&lt;br /&gt;
 0394800753 |    1590 |       1 |           59 | 1949-03-01  | p&lt;br /&gt;
 0590445065 |   25908 |       1 |          150 | 1987-03-01  | p&lt;br /&gt;
 0694003611 |    1501 |       1 |           65 | 1947-03-04  | p&lt;br /&gt;
 0679803335 |    1234 |       1 |          102 | 1922-01-01  | p&lt;br /&gt;
 0760720002 |     190 |       1 |           91 | 1868-01-01  | p&lt;br /&gt;
 0394900014 |    1608 |       1 |           59 | 1957-01-01  | p&lt;br /&gt;
 0385121679 |    7808 |       2 |           75 | 1993-10-01  | h&lt;br /&gt;
 1885418035 |     156 |       1 |          163 | 1995-03-28  | p&lt;br /&gt;
 0929605942 |     156 |       2 |          171 | 1998-12-01  | p&lt;br /&gt;
 0441172717 |    4513 |       2 |           99 | 1998-09-01  | p&lt;br /&gt;
 044100590X |    4513 |       3 |           99 | 1999-10-01  | h&lt;br /&gt;
 0451457994 |    4267 |       3 |          101 | 2000-09-12  | p&lt;br /&gt;
 0451198492 |    4267 |       3 |          101 | 1999-10-01  | h&lt;br /&gt;
 0823015505 |    2038 |       1 |           62 | 1958-01-01  | p&lt;br /&gt;
 0596000855 |   41473 |       2 |          113 | 2001-03-01  | p&lt;br /&gt;
(17 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE TABLE &amp;quot;shipments&amp;quot; (&lt;br /&gt;
postgres(#      &amp;quot;id&amp;quot; integer DEFAULT nextval(&amp;quot;&amp;quot;shipments_ship_id_seq&amp;quot;&amp;quot;::text) NOT NULL,&lt;br /&gt;
postgres(#      &amp;quot;customer_id&amp;quot; integer,&lt;br /&gt;
postgres(#      &amp;quot;isbn&amp;quot; text,&lt;br /&gt;
postgres(#      &amp;quot;ship_date&amp;quot; timestamp with time zone&lt;br /&gt;
postgres(# );&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# insert into shipments values (375,  142,  &amp;quot;039480001X&amp;quot;,&amp;quot;2004-01-06 09:19:21-01&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (323,  671,  &amp;quot;0451160916&amp;quot;,&amp;quot;2004-02-14 10:26:41-02&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (998,  1045, &amp;quot;0590445065&amp;quot;,&amp;quot;2004-03-12 12:39:47-03&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (749,  172,  &amp;quot;0694003611&amp;quot;,&amp;quot;2003-04-11 10:42:34-04&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (662,  655,  &amp;quot;0679803335&amp;quot;,&amp;quot;2003-05-09 07:50:07-05&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (806,  1125, &amp;quot;0760720002&amp;quot;,&amp;quot;2003-06-05 09:14:04-06&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (102,  146,  &amp;quot;0394900014&amp;quot;,&amp;quot;2002-07-11 13:24:08-07&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (813,  112,  &amp;quot;0385121679&amp;quot;,&amp;quot;2002-08-08 09:33:46-08&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (652,  724,  &amp;quot;1885418035&amp;quot;,&amp;quot;2002-09-14 13:41:39-09&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (599,  430,  &amp;quot;0929605942&amp;quot;,&amp;quot;2001-01-10 08:59:42-01&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (969,  488,  &amp;quot;0441172717&amp;quot;,&amp;quot;2006-02-14 08:12:58-02&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (433,  898,  &amp;quot;044100590X&amp;quot;,&amp;quot;2006-03-12 08:26:35-03&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (660,  409,  &amp;quot;0451457994&amp;quot;,&amp;quot;2006-04-07 11:36:42-04&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (310,  738,  &amp;quot;0451198492&amp;quot;,&amp;quot;2005-04-15 14:42:01-05&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (510,  860,  &amp;quot;0823015505&amp;quot;,&amp;quot;2005-05-14 07:53:47-06&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (997,  185,  &amp;quot;039480001X&amp;quot;,&amp;quot;2005-05-10 13:47:52-07&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (999,  221,  &amp;quot;0451160916&amp;quot;,&amp;quot;2005-06-14 13:45:51-08&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (56,   880,  &amp;quot;0590445065&amp;quot;,&amp;quot;2005-05-14 13:39:00-09&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (72,   574,  &amp;quot;0694003611&amp;quot;,&amp;quot;2004-04-06 07:29:44-00&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (146,  270,  &amp;quot;039480001X&amp;quot;,&amp;quot;2004-03-13 09:12:10-01&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (981,  652,  &amp;quot;0451160916&amp;quot;,&amp;quot;2003-02-08 08:46:44-02&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (95,   480,  &amp;quot;0590445065&amp;quot;,&amp;quot;2003-01-10 07:29:52-03&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (593,  476,  &amp;quot;0694003611&amp;quot;,&amp;quot;2002-03-15 11:17:40-04&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (977,  853,  &amp;quot;0679803335&amp;quot;,&amp;quot;2002-05-09 09:20:46-05&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (117,  185,  &amp;quot;0760720002&amp;quot;,&amp;quot;2005-05-07 13:30:48-06&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (406,  1123, &amp;quot;0394900014&amp;quot;,&amp;quot;2004-04-13 09:41:04-07&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (340,  1149, &amp;quot;0385121679&amp;quot;,&amp;quot;2003-02-12 13:21:22-08&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (871,  388,  &amp;quot;1885418035&amp;quot;,&amp;quot;2003-03-07 11:41:57-09&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (1000, 221,  &amp;quot;039480001X&amp;quot;,&amp;quot;2002-05-14 16:46:32-01&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (1001, 107,  &amp;quot;039480001X&amp;quot;,&amp;quot;2001-02-14 17:42:22-02&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (754,  107,  &amp;quot;0394800753&amp;quot;,&amp;quot;2006-05-11 09:55:05-03&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (458,  107,  &amp;quot;0394800753&amp;quot;,&amp;quot;2005-06-07 10:58:36-04&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (189,  107,  &amp;quot;0394800753&amp;quot;,&amp;quot;2004-03-06 11:46:36-04&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (720,  107,  &amp;quot;0394800753&amp;quot;,&amp;quot;2003-02-08 10:36:13-05&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (1002, 107,  &amp;quot;0394800753&amp;quot;,&amp;quot;2002-09-22 11:23:28-06&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into shipments values (2,    107,  &amp;quot;0394800753&amp;quot;,&amp;quot;2001-09-22 20:18:56-07&amp;quot;);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# select * from shipments;&lt;br /&gt;
  id  | customer_id |    isbn    |       ship_date&lt;br /&gt;
------+-------------+------------+------------------------&lt;br /&gt;
  375 |         142 | 039480001X | 2004-01-06 02:19:21-08&lt;br /&gt;
  323 |         671 | 0451160916 | 2004-02-14 04:26:41-08&lt;br /&gt;
  998 |        1045 | 0590445065 | 2004-03-12 07:39:47-08&lt;br /&gt;
  749 |         172 | 0694003611 | 2003-04-11 07:42:34-07&lt;br /&gt;
  662 |         655 | 0679803335 | 2003-05-09 05:50:07-07&lt;br /&gt;
  806 |        1125 | 0760720002 | 2003-06-05 08:14:04-07&lt;br /&gt;
  102 |         146 | 0394900014 | 2002-07-11 13:24:08-07&lt;br /&gt;
  813 |         112 | 0385121679 | 2002-08-08 10:33:46-07&lt;br /&gt;
  652 |         724 | 1885418035 | 2002-09-14 15:41:39-07&lt;br /&gt;
  599 |         430 | 0929605942 | 2001-01-10 01:59:42-08&lt;br /&gt;
  969 |         488 | 0441172717 | 2006-02-14 02:12:58-08&lt;br /&gt;
  433 |         898 | 044100590X | 2006-03-12 03:26:35-08&lt;br /&gt;
  660 |         409 | 0451457994 | 2006-04-07 08:36:42-07&lt;br /&gt;
  310 |         738 | 0451198492 | 2005-04-15 12:42:01-07&lt;br /&gt;
  510 |         860 | 0823015505 | 2005-05-14 06:53:47-07&lt;br /&gt;
  997 |         185 | 039480001X | 2005-05-10 13:47:52-07&lt;br /&gt;
  999 |         221 | 0451160916 | 2005-06-14 14:45:51-07&lt;br /&gt;
   56 |         880 | 0590445065 | 2005-05-14 15:39:00-07&lt;br /&gt;
   72 |         574 | 0694003611 | 2004-04-06 00:29:44-07&lt;br /&gt;
  146 |         270 | 039480001X | 2004-03-13 02:12:10-08&lt;br /&gt;
  981 |         652 | 0451160916 | 2003-02-08 02:46:44-08&lt;br /&gt;
   95 |         480 | 0590445065 | 2003-01-10 02:29:52-08&lt;br /&gt;
  593 |         476 | 0694003611 | 2002-03-15 07:17:40-08&lt;br /&gt;
  977 |         853 | 0679803335 | 2002-05-09 07:20:46-07&lt;br /&gt;
  117 |         185 | 0760720002 | 2005-05-07 12:30:48-07&lt;br /&gt;
  406 |        1123 | 0394900014 | 2004-04-13 09:41:04-07&lt;br /&gt;
  340 |        1149 | 0385121679 | 2003-02-12 13:21:22-08&lt;br /&gt;
  871 |         388 | 1885418035 | 2003-03-07 12:41:57-08&lt;br /&gt;
 1000 |         221 | 039480001X | 2002-05-14 10:46:32-07&lt;br /&gt;
 1001 |         107 | 039480001X | 2001-02-14 11:42:22-08&lt;br /&gt;
  754 |         107 | 0394800753 | 2006-05-11 05:55:05-07&lt;br /&gt;
  458 |         107 | 0394800753 | 2005-06-07 07:58:36-07&lt;br /&gt;
  189 |         107 | 0394800753 | 2004-03-06 07:46:36-08&lt;br /&gt;
  720 |         107 | 0394800753 | 2003-02-08 07:36:13-08&lt;br /&gt;
 1002 |         107 | 0394800753 | 2002-09-22 10:23:28-07&lt;br /&gt;
    2 |         107 | 0394800753 | 2001-09-22 20:18:56-07&lt;br /&gt;
(36 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE TABLE &amp;quot;books&amp;quot; (&lt;br /&gt;
postgres(#      &amp;quot;id&amp;quot;           integer NOT NULL,&lt;br /&gt;
postgres(#      &amp;quot;title&amp;quot;        text NOT NULL,&lt;br /&gt;
postgres(#      &amp;quot;author_id&amp;quot;    integer,&lt;br /&gt;
postgres(#      &amp;quot;subject_id&amp;quot;   integer,&lt;br /&gt;
postgres(#      Constraint &amp;quot;books_id_pkey&amp;quot; Primary Key (&amp;quot;id&amp;quot;)&lt;br /&gt;
postgres(# );&lt;br /&gt;
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index &amp;quot;books_id_pkey&amp;quot; for table &amp;quot;books&amp;quot;&lt;br /&gt;
CREATE TABLE&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# insert into books values(7808,  &amp;quot;Java&amp;quot;,                  4156, 9);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(4513,  &amp;quot;Javascript&amp;quot;,            1866, 15);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(4267,  &amp;quot;C#&amp;quot;,                    2001, 15);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(1608,  &amp;quot;Oracle&amp;quot;,                1809, 2);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(1590,  &amp;quot;Sql Server&amp;quot;,            1809, 2);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(25908, &amp;quot;Postgre SQL&amp;quot;,          15990, 2);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(1501,  &amp;quot;Python&amp;quot;,                2031, 2);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(190,   &amp;quot;Java by API&amp;quot;,             16, 6);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(1234,  &amp;quot;2D&amp;quot;,                   25041, 3);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(2038,  &amp;quot;C&amp;quot;,                     1644, 0);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(156,   &amp;quot;C++&amp;quot;,                    115, 9);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(41473, &amp;quot;Programming Python&amp;quot;,    7805, 4);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(41477, &amp;quot;Learning Python&amp;quot;,       7805, 4);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(41478, &amp;quot;Perl Cookbook&amp;quot;,         7806, 4);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=# insert into books values(41472, &amp;quot;Practical PostgreSQL&amp;quot;,  1212, 4);&lt;br /&gt;
INSERT 0 1&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# select * from books;&lt;br /&gt;
  id   |        title         | author_id | subject_id&lt;br /&gt;
-------+----------------------+-----------+------------&lt;br /&gt;
  7808 | Java                 |      4156 |          9&lt;br /&gt;
  4513 | Javascript           |      1866 |         15&lt;br /&gt;
  4267 | C#                   |      2001 |         15&lt;br /&gt;
  1608 | Oracle               |      1809 |          2&lt;br /&gt;
  1590 | Sql Server           |      1809 |          2&lt;br /&gt;
 25908 | Postgre SQL          |     15990 |          2&lt;br /&gt;
  1501 | Python               |      2031 |          2&lt;br /&gt;
   190 | Java by API          |        16 |          6&lt;br /&gt;
  1234 | 2D                   |     25041 |          3&lt;br /&gt;
  2038 | C                    |      1644 |          0&lt;br /&gt;
   156 | C++                  |       115 |          9&lt;br /&gt;
 41473 | Programming Python   |      7805 |          4&lt;br /&gt;
 41477 | Learning Python      |      7805 |          4&lt;br /&gt;
 41478 | Perl Cookbook        |      7806 |          4&lt;br /&gt;
 41472 | Practical PostgreSQL |      1212 |          4&lt;br /&gt;
(15 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# -- Creating a view&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# CREATE VIEW recent_shipments&lt;br /&gt;
postgres-#         AS SELECT count(*) AS num_shipped, max(ship_date), title&lt;br /&gt;
postgres-#            FROM shipments&lt;br /&gt;
postgres-#            JOIN editions USING (isbn)&lt;br /&gt;
postgres-#            NATURAL JOIN books AS b (book_id)&lt;br /&gt;
postgres-#            GROUP BY b.title&lt;br /&gt;
postgres-#            ORDER BY num_shipped DESC;&lt;br /&gt;
CREATE VIEW&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# select * from recent_shipments;&lt;br /&gt;
 num_shipped |          max           |    title&lt;br /&gt;
-------------+------------------------+-------------&lt;br /&gt;
           7 | 2005-05-10 13:47:52-07 | Oracle&lt;br /&gt;
           6 | 2006-05-11 05:55:05-07 | Sql Server&lt;br /&gt;
           5 | 2005-06-14 14:45:51-07 | Java&lt;br /&gt;
           3 | 2005-05-14 15:39:00-07 | Postgre SQL&lt;br /&gt;
           3 | 2004-04-06 00:29:44-07 | Python&lt;br /&gt;
           3 | 2003-03-07 12:41:57-08 | C++&lt;br /&gt;
           2 | 2003-05-09 05:50:07-07 | 2D&lt;br /&gt;
           2 | 2005-05-07 12:30:48-07 | Java by API&lt;br /&gt;
           2 | 2006-03-12 03:26:35-08 | Javascript&lt;br /&gt;
           2 | 2006-04-07 08:36:42-07 | C#&lt;br /&gt;
           1 | 2005-05-14 06:53:47-07 | C&lt;br /&gt;
(11 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# SELECT * FROM recent_shipments&lt;br /&gt;
postgres-#         ORDER BY max DESC&lt;br /&gt;
postgres-#         LIMIT 3;&lt;br /&gt;
 num_shipped |          max           |   title&lt;br /&gt;
-------------+------------------------+------------&lt;br /&gt;
           6 | 2006-05-11 05:55:05-07 | Sql Server&lt;br /&gt;
           2 | 2006-04-07 08:36:42-07 | C#&lt;br /&gt;
           2 | 2006-03-12 03:26:35-08 | Javascript&lt;br /&gt;
(3 rows)&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# drop view recent_shipments;&lt;br /&gt;
DROP VIEW&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=# drop table books;&lt;br /&gt;
DROP TABLE&lt;br /&gt;
postgres=# drop table editions;&lt;br /&gt;
DROP TABLE&lt;br /&gt;
postgres=# drop table shipments;&lt;br /&gt;
DROP TABLE&lt;br /&gt;
postgres=#&lt;br /&gt;
postgres=#&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>