{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\widctlpar\adjustright \fs20\cgrid \snext0 Normal;}{
\s1\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs28\kerning28\cgrid \sbasedon0 \snext0 heading 1;}{\s2\sb240\sa60\keepn\widctlpar\adjustright \b\i\f1\cgrid \sbasedon0 \snext0 heading 2;}{\s3\sb240\sa60\keepn\widctlpar\adjustright \f1\cgrid 
\sbasedon0 \snext0 heading 3;}{\s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid \sbasedon0 \snext0 heading 4;}{\s5\sb240\sa60\widctlpar\adjustright \f1\fs22\cgrid \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive Default Paragraph Font;}{
\s15\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext15 header;}{\s16\widctlpar\tqc\tx4320\tqr\tx8640\adjustright \fs20\cgrid \sbasedon0 \snext16 footer;}{\*\cs17 \additive \sbasedon10 page number;}{
\s18\fi-360\li360\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf1\pnstart1\pnindent360\pnhang{\pntxtb ?}}\ls2047\ilvl10\adjustright \fs20\cgrid \sbasedon0 \snext18 List Bullet;}{\s19\fi-360\li720\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0
\pnf1\pnstart1\pnindent360\pnhang{\pntxtb ?}}\ls2047\ilvl10\adjustright \fs20\cgrid \sbasedon0 \snext19 List Bullet 2;}{\s20\li360\sa120\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext20 List Continue;}{\s21\qc\sb240\sa60\widctlpar\adjustright 
\b\f1\fs32\kerning28\cgrid \sbasedon0 \snext21 Title;}{\s22\sa120\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext22 Body Text;}{\s23\li360\sa120\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext23 Body Text 2;}{
\s24\li360\sa120\widctlpar\adjustright \fs20\cgrid \sbasedon23 \snext24 Body Text 3;}{\s25\fi-360\li360\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext25 List;}{\s26\fi-360\li1080\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext26 List 3;}{
\s27\fi-360\li1080\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf1\pnstart1\pnindent360\pnhang{\pntxtb ?}}\ls2047\ilvl10\adjustright \fs20\cgrid \sbasedon0 \snext27 List Bullet 3;}{\s28\li1080\sa120\widctlpar\adjustright \fs20\cgrid 
\sbasedon0 \snext28 List Continue 3;}{\s29\fi-360\li720\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext29 List 2;}{\s30\fi-360\li1440\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext30 List 4;}{\s31\li720\sa120\widctlpar\adjustright \fs20\cgrid 
\sbasedon0 \snext31 List Continue 2;}{\s32\fi-1080\li1080\widctlpar\box\brdrs\brdrw15\brsp20 \adjustright \shading2000 \f1\cgrid \sbasedon0 \snext32 Message Header;}{\s33\fi-360\li1440\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0
\pnf1\pnstart1\pnindent360\pnhang{\pntxtb ?}}\ls2047\ilvl10\adjustright \fs20\cgrid \sbasedon0 \snext33 List Bullet 4;}{\s34\fi-360\li1800\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf1\pnstart1\pnindent360\pnhang{\pntxtb ?}}
\ls2047\ilvl10\adjustright \fs20\cgrid \sbasedon0 \snext34 List Bullet 5;}{\s35\li1440\sa120\widctlpar\adjustright \fs20\cgrid \sbasedon0 \snext35 List Continue 4;}{\s36\li360\sa120\widctlpar\adjustright \fs20\cgrid \sbasedon23 \snext36 Body Text 4;}{
\s37\li360\sa120\widctlpar\adjustright \fs20\cgrid \sbasedon23 \snext37 Body Text 5;}}{\*\listtable{\list\listtemplateid-1\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}}
{\listname ;}\listid-2}}{\*\listoverridetable{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}
\f3\fbias0 \fi-360\li360 }}\ls1}}{\info{\title Oracle notes\'85}{\author Dr. Hal Campbell}{\operator Tuttle}{\creatim\yr2000\mo3\dy22\hr11\min23}{\revtim\yr2000\mo3\dy22\hr11\min23}{\printim\yr1998\mo10\dy1\hr8\min47}{\version2}{\edmins0}{\nofpages1}
{\nofwords2611}{\nofchars14885}{\*\company CNRS - HSU}{\nofcharsws18279}{\vern113}}\widowctrl\ftnbj\aenddoc\lytprtmet\formshade\viewkind1\viewscale90\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\endnhere\sectdefaultcl {\header \pard\plain \s15\widctlpar
\tqc\tx4320\tqr\tx8640\adjustright \fs20\cgrid {CIS 315
\par Full Select explanation\tab \tab p. }{\field{\*\fldinst {\cs17  PAGE }}{\fldrslt {\cs17\lang1024 1}}}{
\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}
{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8
\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \qc\widctlpar\adjustright \fs20\cgrid {\b Full Select Statement explanation
\par }\pard \widctlpar\adjustright {\b 
\par }{*   adapted from Sunderraman, section 2.4.7, pp. 53-54
\par 
\par *   <}{\b sub-select>}{ general form:
\par         select\tab [distinct] <expression> \{, <expression>\}
\par         from\tab <tablename> [<alias>]\{, <tablename> [<alias>]\}
\par         [where\tab <search_condition>]
\par         [group by\tab <column> \{, <column>\}]
\par         [having\tab <condition>]
\par 
\par *   <}{\b select>}{ general form:
\par         <sub-select>
\par         \{union [all] | intersect | minus <sub-select>\}
\par         [order by\tab result_column [asc|desc] \{, result_column [asc|desc]\}
\par 
\par *   note that }{\b order by }{clause }{\b must}{ come at the end of a }{\b select}{, and since it really only affects "output", it cannot be in a sub-select;
\par 
\par *   important: }{\b CONCEPTUAL}{ order of evaluation (may not ACTUALLY be what SQL uses, because of efficiency/optimization, but you can think of it this way\'85) (Sunderraman pp. 53-54)
\par         }{\b (1)}{   The }{\b product}{ of all tables in the }{\b from}{ clause [of the "outer"/initial sub-select] is formed.
\par         }{\b (2)}{   The }{\b where}{ clause [of the "outer"/initial sub-select]  is evaluated to }{\b eliminate}{ rows that do not 
\par         satisfy the }{\b search_condition}{.
\par         }{\b (3)}{   The rows are grouped using the columns in the }{\b group by}{ clause [of the "outer"/initial sub-select].
\par         }{\b (4)}{   Groups that do not satisfy the }{\b condition}{ in the }{\b having}{ clause [of the "outer"/initial sub-select]  
\par         are eliminated.
\par         }{\b (5)}{   The expressions in the }{\b select}{ clause target list [of the "outer"/initial sub-select]  are evaluated.
\par         }{\b (6)}{   If the }{\b distinct}{ keyword is present in the }{\b select}{ clause [of the "outer"/initial sub-select], duplicate 
\par         rows are now eliminated.
\par         }{\b (7)}{   The }{\b union}{/}{\b intersect}{/}{\b minus}{ is taken after each sub-select is evaluated.
\par         }{\b (8)}{   The resulting rows are sorted according to the columns specified in the }{\b order by}{ clause.
\par }{\b 
\par }{*   <}{\b sub-select>}{ general form:         
\par }{\b                             (6)            (5)
\par      }{   select\tab [distinct]  <expression> \{, <expression>\}
\par }{\b (1)}{   from\tab <tablename> [<alias>]\{, <tablename> [<alias>]\}
\par }{\b (2)}{   [where\tab <search_condition>]
\par }{\b (3)}{   [group by\tab <column> \{, <column>\}]
\par }{\b (4)}{   [having\tab <condition>]
\par 
\par *   <}{\b select>}{ general form:
\par         <sub-select>
\par }{\b (7)}{   \{union [all] | intersect | minus <sub-select>\}
\par }{\b (8)}{   [order by\tab result_column [asc|desc] \{, result_column [asc|desc]\}
\par }{\b 
\par }{*   (and, of course, for each sub-select "connected" by union or intersect or minus, and for each sub-select buried within a search-condition, you'd do steps }{\b (1)-(6)}{ above.)
\par }}