4.5 INSERT行の挿入

<この節の構成>
(1) 機能
(2) 形式
(3) 共通規則
(4) 使用例

(1) 機能

表に,行を列単位,または行単位で挿入します。直接,値を指定して一つの行を挿入できます。

(2) 形式

INSERT文::=
 INSERT INTO 挿入対象表 〔{(列名リスト)|(ROW)}〕
  VALUES(挿入値〔,挿入値〕…)
挿入対象表::=表名
列名リスト::=列名〔,列名〕…
挿入値::=値指定

(a) 挿入対象表

行を挿入する表の表名を指定してください。

スキーマ名に,"MASTER"は指定できません。

(列名リスト)
データを挿入する列の名称を指定してください。
指定されていない列にはナル値が挿入されます。
列名を一つも指定しない(列名リストを省略した)場合は,表定義で表を定義したときの列の指定順序に従って,すべての列を指定したことになります。
(ROW)
行単位でデータを挿入する場合に指定します。ROWは行全体を意味し,これを指定することで行全体を一つのデータとして,一つの領域から挿入します。ROWを指定する場合の規則を次に示します。
  • 挿入値には,埋め込み変数を指定してください。
  • 指定する埋め込み変数は,各列のデータ型に関係なく,ROWに対応する埋め込み変数(ただし,構造体中に境界調整による空きがあってはいけません)にしてください。また,データ長は行長(各列のデータ長の総和)にしてください。データ長の計算方法については,「3.2(3)規則」を参照してください。
VALUES(挿入値〔,挿入値〕…)
列名で指定した各列に対応した挿入値を指定してください。
(b) 挿入値

挿入値::=値指定

値指定
値指定については,「2.10 値指定」を参照してください。

(3) 共通規則

  1. 挿入する1行分の列の個数は,列名で指定した列の個数と同じにしてください。データ型は,データを挿入する列のデータ型または変換できるデータ型にしてください。
  2. 挿入値に埋め込み変数を指定する場合,仮定されるデータ型およびデータ長は挿入対象となる列のデータ型およびデータ長になります。
  3. DECIMAL型のデータをINTEGER型の列に挿入する場合,端数(小数)部分は切り捨てられます。
    また,DECIMAL型のデータをDECIMAL型の列に挿入する場合,列の位取りより下位のけた部分が切り捨てられます。
  4. 表の定義時に指定した長さ以上の文字データは,挿入できません。
  5. 列に定義されているデータ型の範囲外の数データは,挿入できません。
  6. 固定長文字列の列に挿入するデータが,列の長さより短い場合は,左詰めに挿入され,余りの部分に半角空白が設定されます。
  7. TIMESTAMP型のデータをTIMESTAMP型の列に挿入する場合,列の小数秒のけた数より下位のけた部分が切り捨てられます。挿入するデータの小数秒のけた数より列の小数秒のけた数が多い場合,0を補って格納されます。

(4) 使用例

在庫表(ZAIKO)の商品コード(SCODE),商品名(SNAME),色(COL)の各列に,612S,SLACKS,WHITEのデータを挿入します。

INSERT INTO "ZAIKO"("SCODE","SNAME","COL")
VALUES('612S','SLACKS','WHITE')