このチュートリアルは、MySQLを使用した基本的なSQLクエリの学習シリーズの一部です。このチュートリアルでは、MySQLのテーブルに行を挿入したりデータを格納したりするためのSQLクエリについて説明します。
クエリに挿入
クエリINSERTINTOを使用して、テーブルに行を挿入できます。データベースにリモートでログインしている場合は、テーブルに行を挿入するために、テーブルに対するINSERT特権も必要になります。
# INSERT INTO - Syntax
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
クエリの説明
MySQLコマンドINSERTINTO テーブルの名前が必須である特定のテーブル名に行を挿入するために使用できます。
行データが選択された列に対してのみ指定されている場合は、列名をコンマ区切り形式で指定できます。すべてのテーブル列に列順に行データが提供されている場合は、列の指定を省略できます。
文字列 -すべての文字列値を一重引用符で囲む必要があります。列の定義で許可されている場合は、NULLを使用することもできます。
数値 -数値は引用符で囲むことはできません。数値は、列のデータ型に基づいて直接提供する必要があります。
日付 -日付の値は、MySQL形式(「YYYY-MM-DD」)に従って一重引用符で囲む必要があります。デフォルト値としてすべてゼロを使用するか、列定義でnull値が許可されている場合はNULLを使用できます。
日時 -データ値と同様に、
MySQLデータ型のチートシートに従って、MySQLで使用可能なデータ型について詳しく知ることもできます。
例
このセクションでは、テーブルに行データを挿入するための挿入クエリの例を示します。以下のクエリを使用して、ユーザーデータを格納するためのid、名、および姓の列を持つユーザーテーブルを作成します。
# Create the User Table
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`first_name` varchar(45),
`last_name` varchar(45)
);
以下のクエリは、列名を使用してユーザーテーブルにデータを挿入するために使用できます。
# Insert Single Row - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES ( 1, 'John', 'Smith' );
# Insert Multiple Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
( 2, 'Rick', 'Jones' ),
( 3, 'Catherine', 'Ponting' ),
( 4, 'Harsh', 'Upadhyay' ),
( 5, 'Tajwinder', 'Singh' );
# Insert Single Row - Selected Columns - NULL for last_name
INSERT INTO `user` ( `user_id`, `first_name`) VALUES ( 6, 'Leo' );
これらのクエリは、6人の異なるユーザーを表すために、ID、名、および姓を持つ6つの行をテーブルに挿入します。
以下に示すように、すべての列のデータを提供する場合は、列名を省略できます。列を指定せずに行を挿入するときは、列の順序に注意する必要があります。
# Insert Single Row - All Columns
INSERT INTO `user` VALUES ( 7, 'Leo', 'Murphy' );
# Insert Multiple Rows - All Columns
INSERT INTO `user` VALUES
( 8, 'Ram', 'Choudhary' ),
( 9, 'Nicole', NULL );
行の値を挿入しながら列の順序を変更することもできます。注意すべき唯一のことは、行データも以下に示すのと同じ順序に従う必要があるということです。
# Insert Single Row - All Columns
INSERT INTO `user` ( `first_name`, `last_name`, `user_id` ) VALUES ( 'Bill', 'Waugh', 10 );
これが、INSERTINTOコマンドを使用してテーブルにデータを挿入する方法です。