INSERT クエリー
INSERT クエリーはSQLの基本となるコマンドのひとつで、予め定義されたテーブルに行データの入力をリクエストします。
INSERT クエリーは定義された列の項目に従って新規に行を作成します。
例えば以下のように INSERT クエリーをリクエストします。
INSERT INTO transfer_slip( date_time, goods_name, unit_price, amount ); VALUES ( '2023/6/1', 'candy', 3, 100 );
この例は、売上を記録しています。売上日、商品名、単価、数量を記録しています。
VALUES の前者がテーブル名とカラムの羅列です。後者がカラムごとのデータです。以下のようにカラムの順に該当するデータが作成されます。
- date_time ← '2023/6/1'
- goods_name ← 'candy'
- unit_price ← 3
- amount ← 100
カラムへのデータが作成できると行として記録されます。
クエリーとは、問い合わせ
を意味し、データベースではデータの検索( SELECT )、入力( INSERT 、更新( UPDATE )、削除( DELETE )といった命令をサーバーに送る行為を指します。
クエリーには、作成( CREATE )、変更( ALTER )、削除( DROP )も含みます。
ページ内 Index
構文(Syntax)
簡単には以下のようにクエリーを作成します。テーブル名とカラム名、カラムごとに入力するデータを指定します。
INSERT INTO table ( column, ... ) VALUES ( value, ... );
カラム名と入力する値が該当するように並べます。
MySQL、PostgreSQL では以下のように定義されています。
MySQL
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[(col_name [, col_name] ...)]
{ {VALUES | VALUE} (value_list) [, (value_list)] ...
| VALUES row_constructor_list
}
[AS row_alias[(col_alias [, col_alias] ...)]]
[ON DUPLICATE KEY UPDATE assignment_list]
詳しくは MySQL での INSERT クエリーを参照してください。
PostgreSQL
INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
詳しくは PostgreSQL での INSERT クエリーを参照してください。
Example
INSERT クエリーは例えば以下のような売上テーブルがあるとします。
CREATE TABLE transfer_slip ( number SERIAL, /* 番号 */ date_time DATE DEFAULT current_date, /* 日付 */ goods_name VARCHAR(30), /* 商品名 */ unit_price INT, /* 単価 */ amount INT, /* 数量 */ price BIGINT GENERATED ALWAYS AS ( amount * unit_price ) STORED /* 金額 */ );
以下のように INSERT クエリーを使用して行を追加します。
INSERT INTO transfer_slip( date_time, goods_name, unit_price, amount ); VALUES ( '2023/6/1', 'candy', 3, 100 );
