Symfoware Server SQLビギナーズガイド - FUJITSU - |
目次 索引 |
第3章 データを変更する方法 | > 3.1 データベースにデータを追加する |
表に追加するデータをNULL値にするには、挿入値リストに指定する値の代わりにキーワードの“NULL”を指定するか、標識変数を使用します。NULL値を追加する例を以下に示します。
例1
キーワードの“NULL”を指定する例です。発注表に取引先が“78”、取引製品が“400”、発注数量が“50”の行を追加します。このデータの仕入価格をNULL値とします。
INSERT INTO 在庫管理.発注表 (取引先, 取引製品, 仕入価格, 発注数量) VALUES (78, 400, NULL, 50)
例2
標識変数を使用する例です。追加するデータは例1と同じとします。
INSERT INTO 在庫管理.発注表 (取引先, 取引製品, 仕入価格, 発注数量) VALUES (78, 400, :PRICE INDICATOR :PRICE_INDICATOR, 50)例2では、INSERT文を実行する前に、標識変数である“PRICE_INDICATOR”に“-1”を設定しておきます。ホスト変数“PRICE”には値を設定する必要はありません。このとき、追加されるデータはNULL値になります。なお、標識変数に“0”または正の値を設定しておくと、追加されるデータは、ホスト変数“PRICE”に設定されている値となります。
したがって、追加するデータがアプリケーションの処理によってNULL値になったりそれ以外の値となるような処理では、標識変数を使用すればINSERT文の記述は1つで済みます。一方、データを必ずNULL値とする処理では、キーワードの“NULL”を指定すればINSERT文の記述が簡単になります。
例1および例2のINSERT文の実行結果を以下に示します。
表に追加するデータをNULL値にするもう1つの方法として、挿入列リストと挿入値リストから該当列の指定を省略する方法があります。その例を以下に示します。
例3
NULL値を追加する列を省略する例です。追加するデータは例1および例2と同じとします。
INSERT INTO 在庫管理.発注表 (取引先, 取引製品, 発注数量) VALUES (78, 400, 50)例3では、挿入列リストの列名に仕入価格は指定していません。また、挿入値リストにも、仕入価格に対応する値は指定していません。この場合、仕入価格に省略値としてNULL値が定義されているか、省略値そのものが定義されていないと、追加されるデータはNULL値になります。省略値を使用したデータの追加は、“追加するデータに省略値を使用する”で説明します。
ここで注意が必要なのは、アプリケーションの処理の目的がNULL値を追加するのか、省略値を追加するのかを分けて考えることです。列の省略値は、表の設計変更などで変更されることがあります。このため、NULL値を追加するのが目的の処理であれば、例1または例2の方法を使用してください。
目次 索引 |