を使うとデータベースのデータ(テーブルのレコード)を操作することができます。
データ操作の主な命令には
- データの取得
- データの挿入(追加)
- データの更新(修正)
- データの削除
があります。
今回は、上記の基本的なデータ操作命令のうち、データを挿入(追加)する方法について紹介します。
目次
使用するサンプルテーブル
本記事ではレコードを挿入する際に以下のサンプルテーブルを使用します。
テーブル定義
サンプルとして使用するテーブルは、ユーザーの情報を管理する「ユーザー」という名前にします。
「ユーザー」テーブルには「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' ); |