Edit of INSERT
ホーム
差分
バックアップ
リロード
一覧
検索
最終更新
ヘルプ
ログイン
INSERT
Edit of INSERT
[[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]]
**参照 [#r7064a7e] DECLARE CURSOR , FETCH , GRANT , OPEN , REVOKE , [[SELECT]]
ページの更新
プレビュー
タイムスタンプを変更しない
キャンセル
テキスト整形のルールを表示する
新規
ソース
名前変更
ホーム
一覧
検索
最終更新
バックアップ
リンク元
ログ
ヘルプ
最終更新のRSS