                     ----------  Select  ----------

ΥޥɤϰİʾΥơ֥뤫򸡺˻Ѥޤ ˣ
μब.

1) ̾Υ쥯

 ιʸ

a) select [|bypass     |] [ |distinct| ] [ |*                          | ]
           |bypass_lock|    |all     |     |SELECT_ITEM {, SELECT_ITEM}|

       from [OUTER] TABLE [ [alias] ALIAS] {, [OUTER] TABLE [ [alias] ALIAS]}

               [|list  |] [dump] [|into| FILE]
                |report|          |onto|

               [ WHERE_CLAUSE ]

               [ group by ATTR {, ATTR} ]

               [ HAVING_CLAUSE ]

               [ SORT_CLAUSE ];

b) select [|bypass     |] [ |distinct| ] [ |*                          | ]
           |bypass_lock|    |all     |     |SELECT_ITEM {, SELECT_ITEM}|

        from [OUTER] TABLE [ [alias] ALIAS] {, [OUTER] TABLE [ [alias] ALIAS]}

               [ WHERE_CLAUSE ]

               [ group by ATTR {, ATTR} ]

               [ HAVING_CLAUSE ]

               [ SORT_CLAUSE ]

               [ |list  | ] [dump] [ |into| FILE ];
                 |report|            |onto|

c) table TABLE [ SORT_CLAUSE ]

                 [ |list  | ] [dump] [ |into| FILE ];
                   |report|            |onto|

ʸˡŪ˰ʲƱǤ

     select * from TABLE

    [ SORT_CLAUSE ]

    [ |list  | ] [dump] [ |into| FILE ];
      |report|            |onto|

d)  QUERY_EXPRESSION  [ |list  | ] [dump] [ |into| FILE ]
                        |report|            |onto|

                      [ SORT_CLAUSE ];

QUERY_EXPRESSION ϥåȥڥ졼ˤäƷ礵줿¿ SELECT 
ɤޤޤEmpress  UNION  UNION ALL 򥵥ݡȤޤ

UNION ڥ졼ϡɤ SELECT ˤäФ줿쥳ɤ  UNION ALL
ڥ졼֤쥳ɤνʣޤ

QUERY_EXPRESSION:

    SELECT_COMMAND { union [all] SELECT_COMMAND }

SELECT_COMMAND:

    select  [ |distinct| ] | *           |
              |all     |   | SELECT_ITEM |

       from [OUTER] TABLE [ [alias] ALIAS] {, [OUTER] TABLE [ [alias] ALIAS]}

               [ WHERE_CLAUSE ]

               [ group by ATTR {, ATTR} ]

               [ HAVING_CLAUSE ]
ϡ

    table TABLE

SELECT ITEM ϼΤ줫

a)   count [ |(*)                | ] [print_clause]
             |(distinct [ EXPR ])|

"count" ؿϸ줿쥳ɤοɽޤ"*" Ƥθ줿
ɤοɽޤ"distinct" ȤƤΰۤʤͤ졢
ȤǤޤ

b)   FUNCTION |[distinct] ATTR  | [print_clause]
              |([distinct] ATTR)|

     FUNCTION : avg, max, min, sum

ꤷ°ͤ FUNCTION ŬѤ졢η̤ɽޤؿ "sum"
 "avg" Ͽ°ФƤΤŬѤޤ"distinct" ꤵȡʣ
ͤϼޤ

c)   EXPR [print_clause]

d)   TABLE.* [PRINT_CLAUSE]

e)   ALIAS.* [PRINT_CLAUSE]

Ĥ UNION [ALL] ڥ졼 SELECT_COMMAND ڥɤϡƱʳ
˰㤤ʤǤ ϡ SELECT_ ITEM ƱäƤʤ
ϤʤȤȤ̣ޤơб륳ϡƱǡǤ
˰㤤ʤǤ UNION ALL ڥ졼η̤ϡǽ SELECT_COMMAND 
ɤ SELECT_ITEM ƱΥࡢƱ̾Ʊбǡ
äƤޤ


"print_clause" 

      [print HEADER] [width INTEGER] [|left     |] [wrapmargin INTEGER]
                                      |right    |
                                      |center   |
                                      |centre   |
                                      |leftright|

 "sort_clause" 

     |sort | [|by|] ATTR_NAME [|ascending |] {, ATTR_NAME [|ascending |]
     |order|  |on|             |descending|                |descending|

"asc"  "desc" ɤϡ"ascending"  "descending" ξάǤ
άˤϡascending ͭȤʤޤ

SELECT ޥɤ TABLE Ƥ򸡺"list"  "dump" ꤵʤС
쥯Ȥ줿Τ򥫥ऴȤɽޤ쥯Ȥ줿°̾ͤγƥ
ξɽޤ
ޤHEADER ʸꤹ뤳Ȥˤ̤ΥإåϤ뤳ȤǤޤ

"TABLE [alias] ALIASNAME" ϥǡ쥯Ȥơ֥֤Ȥ
ȤޤʹߥޥǤΤΥơ֥λȤϤ٤ ALIASNAME ֤
ޤ 

"dump" ɤꤹȡƥ쥳ɡʤ뤤ϥ쥳ɤȤ߹碌ˤ
°̤ͤʶڤʸ̤ CTRL-VˤǶڤäưԤɽޤ
"list" ɤϡ°ͤԤ˰ġ°̾ʤ뤤ϥ桼ꤷ
åˤθɽԤ쥳ɤν򼨤ޤ
"list"  "dump" Ʊ˻ꤹȡ°ͤϳƹԤ˰ĥإå̵ɽ
ޤ"report" ץϡ"dump" ȶ˻ȤȤǤΤȤ "dump" 
Ϥ˥ơ֥°ξդޤ

"select" ޥɤνϤϡ"into" 뤤 "onto" ³ե̾ꤹ
Ȥˤü쥯Ȥơե˽Ϥꡢ¸ߤ
ɲä뤳ȤǤޤ

WHERE Ϥξ쥳ɤ򸡺ޤ
"group by" Ϥǻꤵ줿°Ʊͤĥ쥳ɤΥ롼פ
ޤΤȤ°ˤĤƤϰۤΤ˥Ȥޤ
HAVING ϽϤ򤽤ξ롼פ¤ޤϡƤ
쥯Ȥ줿°롼ײƤ뤫ؿ뤤ΤȤΤ߻
ȤǤޤ

SORT Ϥǻꤷ°ˤĤƷ̤򥽡Ȥޤλޥɤ
ǥ롼פƤϡȤϥ롼פǹԤޤ

 "unique"  "distinct" Ʊ̣ޤΥɤϥ
ɤǰ٤Ȥޤ 
"unique" 뤤 "distinct" °ä硢°ФƥȤԤ
ޤΥȤϡ롼פФۤΥȤ SORT ǻꤵ줿
Ȥδ֤˹Ԥޤ

2)  ơ֥ؤΥ쥯

ιʸ

a)     select [|bypass    |] [ |distinct| ] [|*                           |]
               |bypass_lock|   |all     |    |SELECT_ITEM {, SELECT_ITEM }|

        from [OUTER] TABLE [ [alias] ALIAS] {, [OUTER] TABLE [ [alias] ALIAS]}

               [ WHERE_CLAUSE ]

               [ group by ATTR {, ATTR} ]

               [ HAVING_CLAUSE]

               [ SORT_CLAUSE ]

        insert [into] TABLE [|(*)                         |];
                             |set *                       |
                             |set ATTR_NAME {, ATTR_NAME} |
                             |(ATTR_NAME {, ATTR_NAME})   |


b) table TABLE insert [into] TABLE [|(*)                         |];
                                    |set *                       |
                                    |set ATTR_NAME {, ATTR_NAME} |
                                    |(ATTR_NAME {, ATTR_NAME})   |

d) QUERY_EXPRESSION insert [into] TABLE [|(*)                         |];
                                         |set *                       |
                                         |set ATTR_NAME {, ATTR_NAME} |
                                         |(ATTR_NAME {, ATTR_NAME})   |

"insert into TABLE"  "select" ˻ꤷƤ⤫ޤޤ㤨 "insert  
into TABLE select from TABLE ..."ˡ TABLE ¸ߤƤʤСƱ
ǡη°ĥơ֥Ȥƿޤ
"group by" ᤬ȽϤȤƹԤޤ

3) Ҥˤʤä쥯

WHERE ǼαդҤˤʤä쥯ȤޤȤ֤뤳
ȤǤޤ

Ȥ

        [| any |] (SELECT COMMAND)
         | all |


˾ɬפʾϡʲ˼ޥɤϤƤ

                help where_clause;
                help expr;
                help having_clause;
                help sort;
                help insert;
