OSDN Git Service

Add EXCEPT/INTERSECT doc changes.
authorBruce Momjian <bruce@momjian.us>
Fri, 19 Mar 1999 02:41:41 +0000 (02:41 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 19 Mar 1999 02:41:41 +0000 (02:41 +0000)
doc/src/sgml/ref/select.sgml
doc/src/sgml/sql.sgml
src/bin/psql/psqlHelp.h
src/man/select.l

index bf44ee9..a3dc22f 100644 (file)
@@ -24,7 +24,7 @@ SELECT [ALL|DISTINCT [ON <replaceable class="PARAMETER">column</replaceable>] ]
     [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
     [ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
     [ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
-    [ UNION [ALL] <replaceable class="PARAMETER">select</replaceable> ]
+    [ { UNION [ALL] | INTERSECT | EXCEPT } <replaceable class="PARAMETER">select</replaceable> ]
     [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
   </synopsis>
   
@@ -230,8 +230,16 @@ including duplicates.
    DESCending mode operator. (See ORDER BY clause)</para>
    
   <para>
-   The UNION clause specifies a table derived from a Cartesian
-   product union join. (See UNION clause).</para>
+   The UNION clause allows the result to be the collection of rows
+   returned by the queries involved. (See UNION clause).</para>
+   
+  <para>
+   The INTERSECT give you the rows that are common to both queries.
+   (See INTERSECT clause).</para>
+   
+  <para>
+   The EXCEPT give you the rows in the upper query not in the lower query.
+   (See EXCEPT clause).</para>
    
   <para>
    You must have SELECT privilege to a table to read its values
@@ -370,7 +378,8 @@ SELECT name FROM distributors ORDER BY code;
     specifies any select expression without an ORDER BY clause.</para>
     
    <para>
-    The UNION operator specifies a table derived from a Cartesian product.
+    The UNION clause allows the result to be the collection of rows
+    returned by the queries involved. (See UNION clause).
     The two tables that represent the direct operands of the UNION must
     have the same number of columns, and corresponding columns must be
     of compatible data types.</para>
@@ -381,11 +390,75 @@ SELECT name FROM distributors ORDER BY code;
     
    <para>
     Multiple UNION operators in the same SELECT statement are
-evaluated left to right.
+    evaluated left to right.
     Note that the ALL keyword is not global in nature, being 
-applied only for the current pair of table results.</para>
+    applied only for the current pair of table results.</para>
+    
+  </refsect2>
+
+  <refsect2 id="R2-SQL-INTERSECT-2">
+   <refsect2info>
+    <date>1998-09-24</date>
+   </refsect2info>
+   <title>
+    INTERSECT Clause
+   </title>
+   <para>
+    <synopsis>
+<replaceable class="PARAMETER">table_query</replaceable> INTERSECT <replaceable class="PARAMETER">table_query</replaceable>
+     [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
+    </synopsis>
+    
+    where
+    <replaceable class="PARAMETER">table_query</replaceable>
+    specifies any select expression without an ORDER BY clause.</para>
+    
+   <para>
+    The INTERSECT clause allows the result to be all rows that are 
+    common to the involved queries.  (See INTERSECT clause).
+    The two tables that represent the direct operands of the INTERSECT must
+    have the same number of columns, and corresponding columns must be
+    of compatible data types.</para>
+    
+   <para>
+    Multiple INTERSECT operators in the same SELECT statement are
+    evaluated left to right.
+    </para>
+    
+  </refsect2>
+
+  <refsect2 id="R2-SQL-EXCEPT-2">
+   <refsect2info>
+    <date>1998-09-24</date>
+   </refsect2info>
+   <title>
+    EXCEPT Clause
+   </title>
+   <para>
+    <synopsis>
+<replaceable class="PARAMETER">table_query</replaceable> EXCEPT <replaceable class="PARAMETER">table_query</replaceable>
+     [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
+    </synopsis>
     
-  </refsect2></refsect1>
+    where
+    <replaceable class="PARAMETER">table_query</replaceable>
+    specifies any select expression without an ORDER BY clause.</para>
+    
+   <para>
+    The EXCEPT clause allows the result to be rows from the upper query
+    that are not in the lower query.  (See EXCEPT clause).
+    The two tables that represent the direct operands of the EXCEPT must
+    have the same number of columns, and corresponding columns must be
+    of compatible data types.</para>
+    
+   <para>
+    Multiple EXCEPT operators in the same SELECT statement are
+    evaluated left to right.
+    </para>
+    
+  </refsect2>
+
+</refsect1>
   
  <refsect1 id="R1-SQL-SELECT-2">
   <title>
@@ -633,7 +706,7 @@ SELECT [ ALL | DISTINCT ] <replaceable class="PARAMETER">expression</replaceable
     [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
     [ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
     [ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
-    [ UNION [ ALL ] <replaceable class="PARAMETER">select</replaceable>]
+    [ { UNION [ALL] | INTERSECT | EXCEPT } <replaceable class="PARAMETER">select</replaceable>]
     [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
   </synopsis>
   
index 08481bf..ed56c45 100644 (file)
@@ -463,7 +463,7 @@ used to retrieve data. The syntax is:
    [WHERE condition]
    [GROUP BY <name_of_attr_i> 
              [,... [, <name_of_attr_j>]] [HAVING condition]]
-   [{UNION | INTERSECT | EXCEPT} SELECT ...]
+   [{UNION [ALL] | INTERSECT | EXCEPT} SELECT ...]
    [ORDER BY <name_of_attr_i> [ASC|DESC] 
              [, ... [, <name_of_attr_j> [ASC|DESC]]]];
 \end{verbatim}
index 9be1fda..611716c 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: psqlHelp.h,v 1.59 1999/02/13 23:20:40 momjian Exp $
+ * $Id: psqlHelp.h,v 1.60 1999/03/19 02:41:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -108,7 +108,7 @@ static struct _helpStruct QL_HELP[] = {
                "define a new rule",
        "\
 \tCREATE RULE rule_name AS ON\n\
-\t[SELECT|UPDATE|DELETE|INSERT]\n\
+\t{ SELECT | UPDATE | DELETE | INSERT }\n\
 \tTO object [WHERE qual]\n\
 \tDO [INSTEAD] [action|NOTHING|[actions]];"},
        {"create sequence",
@@ -175,7 +175,7 @@ static struct _helpStruct QL_HELP[] = {
 \t[GROUP BY group_list]\n\
 \t[HAVING having_clause]\n\
 \t[ORDER BY attr1 [USING op1], ...attrN]\n\
-\t[UNION [ALL] SELECT ...];"},
+\t[ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...];"},
        {"delete",
                "delete tuples",
        "\
@@ -258,8 +258,8 @@ static struct _helpStruct QL_HELP[] = {
                "grant access control to a user or group",
        "\
 \tGRANT privilege1, ...privilegeN ON rel1, ...relN TO \n\
-[PUBLIC|GROUP group|username]\n\
-\t privilege is ALL|SELECT|INSERT|UPDATE|DELETE|RULE"},
+{ PUBLIC | GROUP group | username }\n\
+\t privilege is { ALL | SELECT | INSERT | UPDATE | DELETE | RULE }"},
        {"insert",
                "insert tuples",
        "\
@@ -271,7 +271,7 @@ static struct _helpStruct QL_HELP[] = {
 \t[WHERE qual]\n\
 \t[GROUP BY group_list]\n\
 \t[HAVING having_clause]\n\
-\t[UNION [ALL] SELECT ...];"},
+\t[ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...];"},
        {"listen",
                "listen for notification on a condition name",
        "\
@@ -305,8 +305,8 @@ static struct _helpStruct QL_HELP[] = {
                "revoke access control from a user or group",
        "\
 \tREVOKE privilege1, ...privilegeN ON rel1, ...relN FROM \n\
-[PUBLIC|GROUP group|username]\n\
-\t privilege is ALL|SELECT|INSERT|UPDATE|DELETE|RULE"},
+{ PUBLIC | GROUP group | username }\n\
+\t privilege is { ALL | SELECT | INSERT | UPDATE | DELETE | RULE }"},
        {"rollback work",
                "abort a transaction",
        "\
@@ -321,7 +321,7 @@ static struct _helpStruct QL_HELP[] = {
 \t[GROUP BY group_list]\n\
 \t[HAVING having_clause]\n\
 \t[ORDER BY attr1 [ASC|DESC] [USING op1], ...attrN ]\n\
-\t[UNION [ALL] SELECT ...];"},
+\t[ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...];"},
        {"set",
                "set run-time environment",
 #ifdef MULTIBYTE
index 5853212..9de52c4 100644 (file)
@@ -1,6 +1,6 @@
 .\" This is -*-nroff-*-
 .\" XXX standard disclaimer belongs here....
-.\" $Header: /cvsroot/pgsql/src/man/Attic/select.l,v 1.11 1999/02/02 03:45:32 momjian Exp $
+.\" $Header: /cvsroot/pgsql/src/man/Attic/select.l,v 1.12 1999/03/19 02:41:41 momjian Exp $
 .TH SELECT SQL 11/05/95 PostgreSQL PostgreSQL
 .SH NAME
 select - retrieve instances from a class
@@ -15,7 +15,7 @@ select - retrieve instances from a class
     [\fBgroup by\fR attr_name1 {, attr_name-i....}]
     [\fBhaving\fR having-clause]
     [\fBorder by\fR attr_name1 [\fBasc\fR | \fBdesc\fR] [\fBusing op1\fR] {, attr_namei...}]
-[\fBunion {all} select\fR ...]
+[ { \fBunion {all}\fR | \fBintersect\fR | \fBexcept\fR } \fBselect\fR ...]
 
 .fi
 .SH DESCRIPTION