を使うとデータベースのデータ(テーブルのレコード)を操作することができます。
データ操作の主な命令には
- データの取得
- データの挿入(追加)
- データの更新(修正)
- データの削除
があります。
今回は、上記の基本的なデータ操作命令のうち、データを挿入(追加)する方法について紹介します。
目次
使用するサンプルテーブル
本記事ではレコードを挿入する際に以下のサンプルテーブルを使用します。
テーブル定義
サンプルとして使用するテーブルは、ユーザーの情報を管理する「ユーザー」という名前にします。
「ユーザー」テーブルには「ID」「名前」「パスワード」の3つの列を作成します。
| 列名 | 型 | 主キー | 
|---|---|---|
| ID | int | 〇 | 
| 名前 | varchar(20) | |
| パスワード | varchar(20) | 
テーブルを作成するCREATE文
ユーザーテーブルを作成するSQLは以下のようになります。
| 1 2 3 4 5 6 | CREATE TABLE [ユーザー] (     [ID] int NOT NULL PRIMARY KEY,     [名前] varchar(20) NOT NULL,     [パスワード] varchar(20) NOT NULL ); | 
テーブルのレコードを挿入(追加)するINSERT
SQLでテーブルにレコードを挿入(追加)する際は、INSERTステートメントを使用します。
INSERTステートメントの構文
INSERTステートメントは、以下の構文で使用します。
| 1 2 3 4 5 6 7 8 | INSERT INTO テーブル名 (     列名1, 列名2, 列名3... ) VALUES (     値1, 値2, 値3... ) | 
INSERTステートメントでは、INSERTに続けてINTOを記述します。INSERTとINTOの間には空白文字(スペース、タブ、改行など)を記述します。
INSERT INTOの後にはレコードを挿入するテーブルの名前を記述します。
例えば、CUSTOMERというテーブルであれば
| 1 | INSERT INTO CUSTOMER | 
となります。
テーブル名を記述した後には、テーブルのどの列にどのような値を設定(登録)するかを指定します。
列の指定は、テーブル名の後に括弧()で括って指定します。
例えば、CUSTOMER_IDという列とCUSTOMER_NAMEという列を指定する場合は
| 1 | (CUSTOMER_ID, CUSTOMER_NAME) | 
となります。
値の指定は、列の指定の後にVALUESを記述し、その後のに括弧()で括って指定します。
例えば、数値の1と文字列の「顧客名1」という値を指定する場合は
| 1 | VALUES (1, '顧客名1') | 
となります。
サンプルテーブルへのレコードの挿入(追加)
INSERTステートメントの構文を確認できましたので、サンプルテーブルにレコードを挿入してみます。
ここでは、IDが「1」、名前が「ユーザー1」、パスワードが「hogehoge」のレコードを追加します。
ユーザーテーブルにレコードを挿入(追加)するSQL
ユーザーテーブルにレコードを挿入(追加)するSQLは、以下のようになります。
| 1 2 3 4 5 6 7 8 9 10 11 12 | INSERT INTO [ユーザー] (     [ID],     [名前],     [パスワード] ) VALUES (     1,     'ユーザー1',     'hogehoge' ); | 
上記のSQLを実行するとユーザーテーブルにレコードが1件追加されます。
| ID | 名前 | パスワード | 
|---|---|---|
| 1 | ユーザー1 | hogehoge | 
列の指定順について
INSERTステートメントでレコードを挿入する際の列の指定順には、特に決まりはありません。
任意の順番に指定することができます。
上記の例のSQLでは、「ID」「名前」「パスワード」の順に列を指定していますが、「パスワード」「名前」「ID」や、「名前」「パスワード」「ID」とすることもできます。
値の指定順について
列の指定順は任意にすることができますが、各列に設定(登録)する値は、指定した列の順番に合わせた順番に指定します。
例えばIDが「2」、名前が「ユーザー2」、パスワードが「piyopiyo」のレコードをユーザーテーブルに挿入する場合に、列の順番を「パスワード」「ID」「名前」と指定している場合は、値を「piyopiyo」「2」「ユーザー2」と指定します。
| 1 2 3 4 5 6 7 8 9 10 11 12 | INSERT INTO [ユーザー] (     [パスワード],     [ID],     [名前] ) VALUES (     'piyopiyo',     2,     'ユーザー2' ); | 
