SQL INSERT文でデータを登録する
INSERT
文でデータベースに新しいデータを登録する方法を紹介します。 「社員マスタ」というテーブルがあります。カラムは下記のとおりです。
社員コード | 社員名 | 年齢 |
---|---|---|
1 | テスト社員1 | 22 |
2 | テスト社員2 | 30 |
3 | テスト社員3 | 20 |
このテーブルに新しいデータ(社員)を登録したい場合、以下のようなSQLを実行します。
INSERT INTO 社員マスタ
(
社員コード
,社員名
,年齢
) VALUES (
4
,'テスト社員4'
,20
)
社員コード | 社員名 | 年齢 |
---|---|---|
1 | テスト社員1 | 22 |
2 | テスト社員2 | 30 |
3 | テスト社員3 | 20 |
4 | テスト社員4 | 20 |
列の省略
例えば社員マスタに「性別」(1=男、2=女)というカラムがあった場合を考えます。
社員コード | 社員名 | 年齢 | 性別 |
---|---|---|---|
1 | テスト社員1 | 22 | 1 |
2 | テスト社員2 | 30 | 2 |
3 | テスト社員3 | 20 | 1 |
このテーブルに先ほどと同じSQLを実行した場合、性別にはnull
が登録されます。(列にnull
が許容されていない場合はエラーになります)
INSERT INTO 社員マスタ
(
社員コード
,社員名
,年齢
--性別を指定していない
) VALUES (
4
,'テスト社員4'
,20
--性別を指定していない
)
社員コード | 社員名 | 年齢 | 性別 |
---|---|---|---|
1 | テスト社員1 | 22 | 1 |
2 | テスト社員2 | 30 | 2 |
3 | テスト社員3 | 20 | 1 |
4 | テスト社員4 | 20 | null |
列名を指定しない
以下のように列名を指定しない方法もあります。
INSERT INTO 社員マスタ
VALUES (
4
,'テスト社員4'
,20
10
)
ただし、この場合はテーブルの列名をすべて指定する必要があります。
このやり方は、テーブル定義が変わってしまうとエラーになったりしてしまうので、面倒でもすべてのカラムを記載することをおすすめします。