[Firebird Wiki]

Edit of INSERT

  • ホーム
  • 差分
  • バックアップ
  • リロード
  • 一覧
  • 検索
  • 最終更新
  • ヘルプ
  • ログイン

  1. INSERT
  2. Edit of INSERT
  • テキスト整形のルールを表示する

    • 新規
    • ソース
    • 名前変更
    • ホーム
    • 一覧
    • 検索
    • 最終更新
    • バックアップ
    • リンク元
    • ログ
    • ヘルプ
    • 最終更新のRSS
    Founded by anonymous
    Powered by PukiWiki Advance v 2.0.2. Processing time: 1.421 sec.
    Original Theme Design by PukiWiki Plus! Team.
    PukiWiki Advance HTML 5

    Edit of INSERT[TOC]

    undefined
    差分
    [[FrontPage]]へ~
    -[[リファレンスガイド]]へ~
    --[[Firebird SQLリファレンス]]へ~
    &br;
    ----
    *Firebird SQL リファレンス:INSERT/UPDATE/DELETE [#r53e095a]
    
    #contents
    
    ----
    &br;
    &aname(insert);
    *INSERT [#a4daee4e]
     指定したテーブルに、新しいいくつかの行を追加します。
    SQL,DSQLおよびisqlから使用出来ます。~
     この文書は、公開されているIB6のSQLレファレンスを基とし、1.5.1までの
    各リリースノートにおける追加内容に関して反映・統合されています。~
    
    **構文 [#yb55ee68]
    &br;
     INSERT [TRANSACTION transaction] INTO <object> [(col [, col …])]
            {VALUES (<val> [, <val> …]) | <select_expr>};
    
     <object> = tablename | viewname
    
     <val> = {:variable | <constant> | <expr>
         | <function> | udf ([<val> [, <val> …]])
         | NULL | USER | RDB$DB_KEY | ?
         } [COLLATE collation]
    
     <constant> = num | 'string' | charsetname 'string'
    
     <function> = CAST (<val> AS <datatype>)
         | UPPER (<val>)
         | GEN_ID (generator, <val>)
    
    |引数|説明|h
    |expr|1つの値が得られるSQL式|
    |select_expr|挿入する列数と同じ数の列データが得られる、0行以上の取得結果が得られるSELECT文|
    
    **詳細の説明 [#t050db0c]
     指定したテーブルまたビューに、新しいいくつかの行を追加します。列に入力する
    値のソースとしては、定数(含む文字列)以外にも、式、UDF、任意のSELECT文による
    クエリ結果などが指定可能です。
    埋め込みSQL等の場合には、変数名も使用できます。~
    &br;
    -プレースホルダ(例:"?")は、SQL及びisqlでは使用できません。
    -DSQLとisqlでは、valに変数(:variable)は使用できません。
    -BLOBの列に COLLATE を指定することは出来ません。
    -DSQLの場合は行終端文字のセミコロンを指定してはなりません。
    isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端文字は必要です。
    -節の詳細の説明です。
    |引数|説明|h
    |TRANSACTION transaction|指定した名前のトランザクション下でINSERTが実行されます。&br;DSQL,isqlでは使用できません。|
    |INTO object|データをインサートする、有効なテーブルまたはビューを指定します。|
    |col|値をインサートする、有効なテーブルまたはビューのの列名を指定します。|
    |VALUES (val [, val …])|テーブルまたはビューにインサートするデータのリスト。並び順はターゲットの列と同じ順番である必要がある|
    |select_expr|ターゲットの列に挿入するデータを得るためのクエリ|
    &br;
     INSERTは、1つ以上の新しい行データをテーブルまたはビューに追加します。
    INSERTは、GRANTおよびREVOKE文により制御されるデーターベースに対する特権の
    一つです。~
    &br;
     (省略可能な)ターゲットとなる列のリストが示された場合、指定された値はリスト
    での列指定順に指定されているものとみなされます。指定がない列には、自動的に
    デフォルト値またはnullが設定されます。~
    &br;
     ターゲットとなる列のリストが示されない(省略された)場合には、VALUE節には
    すべての列分の設定する値を記述しなければなりません。~
    &br;
     1つの行をインサートする場合、通常はVALUESに値を指定して行います。~
    &br;
     複数行のデータを一度にインサートする場合、別のテーブルからデータを取り出す
    select_expr指定を使います。ここで選択される列は、インサートするターゲット
    となる列の指定と一致しなければなりません。~
     ''重要'' 同じテーブルからインサートすることも可能ですが、無限ループに陥る
    可能性があるので、お勧めしません。~
    &br;
     TRANSACTION節は、多重トランザクションSQLアプリケーションにおいて、どの
    トランザクションがINSERTを実行するかを制御するためにあります。これはDSQLや
    isqlでは使用できません。~
    
    **用例 [#od4a00b8]
    -単純な行の追加
     INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID)
       VALUES (100, 'Simple');
    
    -埋め込みSQLの例:割当てられた2つの変数の内容の行を追加します。
     EXEC SQL
     
     INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID)
       VALUES (:emp_no, :proj_id);
    
    &br;
    -isqlの例:SELECTにより指定された行の挿入
     INSERT INTO PROJECTS
       SELECT * FROM NEW_PROJECTS
         WHERE NEW_PROJECTS.START_DATE > '6-JUN-1994';
    
    &br;
    
    **参照 [#ccd6726a]
    GRANT , REVOKE , SET TRANSACTION , [[UPDATE>#update]]
    
    &br;
    &br;
    ----
    &br;
    &br;
    
    &aname(update);
    *UPDATE [#y7a8528c]
     テーブル、ビュー、アクティブなカーソルに対して、行のすべてまたは一部の
    列データ値を変更します。
    SQL,DSQLおよびisqlから使用出来ます。~
     この文書は、公開されているIB6のSQLレファレンスを基とし、1.5.1までの
    各リリースノートにおける追加内容に関して反映・統合されています。~
    
    **構文 [#y165ffab]
    &br;
    ''SQL での構文:''
     UPDATE [TRANSACTION transaction] {table | view}
     SET col = <val> [, col = <val> …]
     [WHERE <search_condition> | WHERE CURRENT OF cursor];
    
    &br;
    ''DSQL,isql での構文:''
     UPDATE {table | view}
     SET col = <val> [, col = <val> …]
     [WHERE <search_condition>]
    &br;
    
     <val> = {
             col [<array_dim>]
             | :variable
             | <constant>
             | <expr>
             | <function>
             | udf ([<val> [, <val> …]])
             | NULL
             | USER
             | ?
         }
         [COLLATE collation]
    
     <array_dim> = [[x:]y [, [x:]y …]]
    
     <constant> = num | 'string' | charsetname 'string'
    
     <function> = CAST (<val> AS <datatype>)
         | UPPER (<val>)
         | GEN_ID (generator, <val>)
    
     <expr> = 1つの値を返すSQL式
    
     <search_condition> = CREATE TABLE を参照してください
    
    
    **詳細の説明 [#z7959954]
     指定したテーブル、ビュー、アクティブなカーソルに対して、行のすべてまたは
    一部の列値を更新します。値のソースとしては、定数(含む文字列)以外にも、式、
    UDF、SQL式よるクエリ結果などが指定可能です。
    埋め込みSQL等の場合には、変数名も使用できます。~
    &br;
    -プレースホルダ(例:"?")は、SQL及びisqlでは使用できません。
    -DSQLとisqlでは、valに変数(:variable)は使用できません。
    -BLOBの列に COLLATE を指定することは出来ません。
    -DSQLの場合は行終端文字のセミコロンを指定してはなりません。
    isql及びC/C++の埋め込みSQLでは行の終わりを示すために終端文字は必要です。
    -節の詳細の説明です。
    |引数|説明|h
    |TRANSACTION transaction|指定した名前のトランザクション下でUPDATEが実行されます。&br;DSQL,isqlでは使用できません。|
    |table|view|更新対象の名前がテーブルかビューかを指定します。|
    |SET col = val|指定列のに設定する値を指定します。|
    |WHERE search_condition|検索更新時に指定します。更新対象になる行を検索する条件を指定します。|
    |WHERE CURRENT OF cursor|位置指定更新時に指定します。更新対象になる行を特定するカーソルを指定します。|
    |?|プレースホルダ。DSQLおよびisqlでは使用できません|
    &br;
     UPDATEは、テーブルまたはビューの1つ以上の行データ更新します。
    UPDATEは、GRANTおよびREVOKE文により制御されるデーターベースに対する特権の
    一つです。~
    &br;
     WHERE を使用することにより、指定条件に合致した行のみを変更することが出来
    ます。ただし、これは配列の一部要素に対しては使用できません。~
    &br;
     ''重要'' WHERE節が省略された場合、すべての列に対して指定した更新が行われ
    ます。~
    &br;
     WHERE CURRENT OF節によるカーソルによる位置指定更新の場合、1回の実行で1行
    の更新が行われます。~
    &br;
    ※ BLOB列を更新する場合、UPDATEはすべてのBLOBを新しい値に置き換えます。
    
    **用例 [#od16eee7]
    -すべての行の指定列を変更します。
     UPDATE CITIES
       SET POPULATION = POPULATION * 1.03;
    &br;
    -指定された条件の行を変更します。
     UPDATE TESTTABLES
       SET STATUS = 20, FLAG=0
       WHERE FLAG = 1;
    &br;
    -埋め込みSQLの例:WHEREでの条件指定の例ですが、条件値と設定値を変数で与えて
    います。
     EXEC SQL
     UPDATE PROJECT
       SET PROJ_DESC = :blob_id
       WHERE PROJ_ID = :proj_id;
    &br;
    
    **参照 [#la824ce5]
    [[DELETE>#delete]] , GRANT , [[INSERT>#insert]] , REVOKE , [[SELECT]]
    
    &br;
    &br;
    ----
    &br;
    &br;
    
    &aname(delete);
    *DELETE [#ve506b16]
     テーブル、アクティブなカーソルの行を削除します。
    SQL,DSQLおよびisqlから使用出来ます。~
     この文書は、公開されているIB6のSQLレファレンスを基とし、1.5.1までの
    各リリースノートにおける追加内容に関して反映・統合されています。~
    
    **構文 [#oba88eb9]
    &br;
    ''SQLおよびDSQLでの構文:''&br;
    ※DSQLの場合、セミコロンは不要です。
     DELETE [TRANSACTION transaction] FROM table
         {[WHERE <search_condition>] | WHERE CURRENT OF cursor};
    
    ''isqlでの構文:''
    
     DELETE FROM TABLE [WHERE <search_condition>];
    &br;
     <search_condition> = [[SELECT]]を参照して下さい。
    
    |引数|説明|h
    |TRANSACTION transaction|指定した名前のトランザクション下で実行されます。&br;DSQL,isqlでは使用できません。|
    |table|行を削除するテーブルの名前です。|
    |WHERE search_condition|削除する行を検索する条件を指定します。この節を省略すると、すべての行に対して処理が行われます。|
    |WHERE CURRENT OF cursor|削除対象になる行を特定するカーソルを指定します。|
    
    **詳細の説明 [#n284421c]
     DELETEは、テーブルまたはビューの1つ以上の行を削除します。
    DELETEは、GRANTおよびREVOKE文により制御されるデーターベースに対する特権の
    一つです。~
    &br;
     TRANSACTION節は、多重トランザクションSQLアプリケーションにおいて、どの
    トランザクションがDELETEを実行するかを制御するためにあります。これはDSQLや
    isqlでは使用できません。~
    &br;
     WHERE を使用することにより、指定条件に合致した行のみを削除することが出来
    ます。~
    &br;
     ''重要'' WHERE節が省略された場合、テーブルの全列が削除されます。~
    &br;
     WHERE CURRENT OF節によるカーソルによる位置指定削除の場合、1回の実行で1行
    の削除が行われます。~
    &br;
    
    **用例 [#x90f3111]
    -テーブルのすべての行を削除します。
     DELETE FROM EMPLOYEE_PROJECT;
    &br;
    -指定された条件に合致する行を削除します。
     DELETE FROM TESTTABLES WHERE ID = 0 OR FLAG = 2;
    &br;
    -埋め込みSQLの例:ホスト言語の変数で指定した条件に合致する行を削除します。
     EXEC SQL
     DELETE FROM SALARY_HISTORY
       WHERE EMP_NO = :emp_num;
    &br;
    -埋め込みSQLの例:ホスト変数:min_popよりもPOPULATIONが小さい行を検索する
    カーソルを作成し、そのカーソルにより削除を行います。FETCHにより1行ずつ
    取り込み、その行を削除しています。
     EXEC SQL
     DECLARE SMALL_CITIES CURSOR FOR
     SELECT CITY, STATE
     FROM CITIES
     WHERE POPULATION < :min_pop;
     
     EXEC SQL
     OPEN SMALL_CITIES;
     
     EXEC SQL
     FETCH SMALL_CITIES INTO :cityname, :statecode;
     
     WHILE (!SQLCODE)
     {
       EXEC SQL
       DELETE FROM CITIES
       WHERE CURRENT OF SMALL_CITIES;
     
       EXEC SQL
       FETCH SMALL_CITIES INTO :cityname, :statecode;
     }
     
     EXEC SQL
     CLOSE SMALL_CITIES;
    
    
    **参照 [#r7064a7e]
    DECLARE CURSOR , FETCH , GRANT , OPEN , REVOKE , [[SELECT]]
    絵文字
    文字色
    ヒント
    色指定は、最初に選択した色が文字色、次に選択した色が背景色になります。

    選択範囲を処理後は、その範囲が選択したままになっています。
    続けて文字を入力する場合は、[ → ]キーでカーソルを移動してから入力してください。

    [ ☺ ] ボタンは、絵文字パレットを開きます。
    [ ⏎ ] ボタンは、改行を入れます。
    [ &# ] ボタンは、選択文字列を数値文字参照に変換します。
    [ ]は、このページの送信前の編集内容をフラッシュします。