sql >> データベース >  >> RDS >> Mysql

SQL SELECT構文–DBMSによってリストされます

    この記事では、SQL SELECTを一覧表示します さまざまなデータベース管理システム(DBMS)によって実装される構文。構文は、各ベンダーがWebサイトにリストしているとおりに正確にリストされています。特定のベンダーの構文の詳細を表示するには、該当するリンクをクリックしてください。

    対象となるDBMSは、MySQL、SQL Server、PostgreSQL、およびOracleデータベースです。

    MySQL

    MySQL 5.7リファレンスマニュアルから:

    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
          [HIGH_PRIORITY]
          [MAX_STATEMENT_TIME = N]
          [STRAIGHT_JOIN]
          [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
          [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr ...]
        [FROM table_references
          [PARTITION partition_list]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [HAVING where_condition]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ...]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [PROCEDURE procedure_name(argument_list)]
        [INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
          | INTO DUMPFILE 'file_name'
          | INTO var_name [, var_name]]
        [FOR UPDATE | LOCK IN SHARE MODE]]

    SQL Server

    Transact-SQLリファレンスから:

    <SELECT statement> ::=  
        [WITH <common_table_expression> [,...n]]
        <query_expression> 
        [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } 
      [ ,...n ] ] 
        [ <FOR Clause>] 
        [ OPTION ( <query_hint> [ ,...n ] ) ] 
    <query_expression> ::= 
        { <query_specification> | ( <query_expression> ) } 
        [  { UNION [ ALL ] | EXCEPT | INTERSECT }
            <query_specification> | ( <query_expression> ) [...n ] ] 
    <query_specification> ::= 
    SELECT [ ALL | DISTINCT ] 
        [TOP ( expression ) [PERCENT] [ WITH TIES ] ] 
        < select_list > 
        [ INTO new_table ] 
        [ FROM { <table_source> } [ ,...n ] ] 
        [ WHERE <search_condition> ] 
        [ <GROUP BY> ] 
        [ HAVING < search_condition > ]

    PostgreSQL

    PostgreSQL 9.5マニュアルから:

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
        [ * | expression [ [ AS ] output_name ] [, ...] ]
        [ FROM from_item [, ...] ]
        [ WHERE condition ]
        [ GROUP BY grouping_element [, ...] ]
        [ HAVING condition [, ...] ]
        [ WINDOW window_name AS ( window_definition ) [, ...] ]
        [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
        [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
        [ LIMIT { count | ALL } ]
        [ OFFSET start [ ROW | ROWS ] ]
        [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
        [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]
    
    where from_item can be one of:
    
        [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
                    [ TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ] ]
        [ LATERAL ] ( select ) [ AS ] alias [ ( column_alias [, ...] ) ]
        with_query_name [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
        [ LATERAL ] function_name ( [ argument [, ...] ] )
                    [ WITH ORDINALITY ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
        [ LATERAL ] function_name ( [ argument [, ...] ] ) [ AS ] alias ( column_definition [, ...] )
        [ LATERAL ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
        [ LATERAL ] ROWS FROM( function_name ( [ argument [, ...] ] ) [ AS ( column_definition [, ...] ) ] [, ...] )
                    [ WITH ORDINALITY ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
        from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]
    
    and grouping_element can be one of:
    
        ( )
        expression
        ( expression [, ...] )
        ROLLUP ( { expression | ( expression [, ...] ) } [, ...] )
        CUBE ( { expression | ( expression [, ...] ) } [, ...] )
        GROUPING SETS ( grouping_element [, ...] )
    
    and with_query is:
    
        with_query_name [ ( column_name [, ...] ) ] AS ( select | values | insert | update | delete )
    
    TABLE [ ONLY ] table_name [ * ]

    Oracleデータベース

    Oracle Database Online Documentation 12 cから リリース1(12.1):

    subquery [ for_update_clause ] ;

    オプションの概要は次のとおりです。

    subquery ::=

    { query_block
    | subquery { UNION [ALL] | INTERSECT | MINUS } subquery
        [ { UNION [ALL] | INTERSECT | MINUS } subquery ]...
    | ( subquery )
    } [ order_by_clause ] [ row_limiting_clause ]

    for_update_clause ::=

    FOR UPDATE
      [ OF [ [ schema. ] { table | view } . ] column
             [, [ [ schema. ] { table | view } . ] column
             ]...
      ]
      [ { NOWAIT | WAIT integer 
        |  SKIP LOCKED
        }
      ]

    コンポーネントの副次句の説明については、Oracleの公式ドキュメントを参照してください。

    GUIの使用

    ほとんどのDBMSGUIは、複雑なクエリを作成するための「クエリビルダー」などを提供します。たとえば、SQL Server Management Studioには、この機能を提供するクエリデザイナがあります。


    1. LinuxからのSQLServerBULK INSERT

    2. SQLSELECTでIF...THENを実行するにはどうすればよいですか?

    3. SQL Server Parallel Backup Restore -2

    4. ミリ秒の精度のタイムスタンプ:MySQLでそれらを保存する方法