MySQL INSERT INTO クエリ: テーブルに行を追加する方法 (例)

INSERT INTOとは何ですか?

INSERT INTO テーブルにデータを保存するために使用されます。 INSERT コマンドは、データを保存するためにテーブルに新しい行を作成します。 データは通常、データベース上で実行されるアプリケーション プログラムによって提供されます。

基本構文

INSERT INTO の基本的な構文を見てみましょう。 MySQL コマンド:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

こちら

  • INSERT INTO `table_name` は、次のことを示すコマンドです。 MySQL サーバーに新しい行を「table_name.」という名前のテーブルに追加します。
  • (column_1,column_2,…) は、新しいファイルで更新される列を指定します。 MySQL 行
  • VALUES (value_1,value_2,…) は、新しい行に追加する値を指定します。

新しいテーブルに挿入するデータ値を指定する場合、次の点を考慮する必要があります。

  • 文字列データ型 - すべての文字列値は一重引用符で囲む必要があります。
  • 数値データ型 - すべての数値は、一重引用符または二重引用符で囲まずに直接指定する必要があります。
  • 日付データ型 - 日付値を「YYYY-MM-DD」形式の一重引用符で囲みます。


例:

データベースに追加する必要がある新しいライブラリ メンバーのリストが次のようにあるとします。

氏名 生年月日 性別 物理アドレス 郵便住所 連絡先 Eメールアドレス
レナード・ホフスタッター 男性 ウッドクレスト 0845738767
シェルドン・クーパー 男性 ウッドクレスト 0976736763
ラジェッシュ・クースラパリ 男性 フェアビュー 0938867763
レスリー・ウィンクル 14/02/1984 男性 0987636553
ハワード・ウォロウィッツ 24/08/1981 男性 South Park PO Box 4563 0987786553 lwolowitz@email.me

データを一つずつINSERTしてみましょう。 まずはレナード・ホフスタッターから始めます。 連絡先番号は数値データ型として扱われ、番号は一重引用符で囲まれません。

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

上記のスクリプトを実行すると、Leonard の連絡先番号から 0 が削除されます。 これは、値が数値として扱われ、先頭のゼロ (0) は重要ではないため削除されるためです。

このような問題を回避するには、以下に示すように値を一重引用符で囲む必要があります。

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`)  VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

上記の場合、zero(0) は削除されません。


列の順序を変更しても、次の INSERT クエリには影響しません。 MySQL 正しい値が正しい列にマップされている限り。

以下に示すクエリは、上記の点を示しています。

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`)  VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

上記のクエリでは生年月日列がスキップされました。デフォルトでは、 MySQL INSERT クエリで省略された列に NULL 値を挿入します。

次に、生年月日が指定された Leslie のレコードを挿入しましょう。 日付値は、「YYYY-MM-DD」形式を使用して一重引用符で囲む必要があります。

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`)  VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

上記のクエリはすべて列を指定し、それらを MySQL ステートメントを挿入します。テーブル内のすべての列に値を指定する場合は、テーブルから列を省略できます。 MySQL クエリを挿入します。

例:-

INSERT INTO `members`  VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');

では、使ってみましょう SELECTステートメント メンバーのテーブル内のすべての行を表示します。

SELECT * FROM `members`;
会員番号 フルネーム 性別 生年月日 実在住所 郵便番号 連絡先番号 email
1 ジャネット・ジョーンズ 女性 21-07-1980 第一街区画 No 4 専用バッグ 0759 253 542 janetjones@yagoo.cm
2 ジャネット・スミス・ジョーンズ 女性 23-06-1980 メルローズ 123 NULL NULL jj@fstreet.com
3 ロバート・フィル 男性 12-07-1989 サード ストリート 3 NULL 12345 rm@tstreet.com
4 グロリア・ウィリアムズ 女性 14-02-1984 セカンドストリート2 NULL NULL NULL
5 レナード・ホフスタッター 男性 NULL ウッドクレスト NULL 845738767 NULL
6 シェルドン・クーパー 男性 NULL ウッドクレスト NULL 0976736763 NULL
7 ラジェッシュ・クースラパリ 男性 NULL ウッドクレスト NULL 0938867763 NULL
8 レスリー・ウィンクル 男性 14-02-1984 ウッドクレスト NULL 0987636553 NULL
9 ハワード・ウォロウィッツ 男性 24-08-1981 サウスパーク PO Box 4563 0987786553 lwolowitz@email.me

Leonard Hofstadter の連絡先番号では、先頭のゼロ (0) が省略されていることに注意してください。他の連絡先番号では、先頭のゼロ (0) は省略されていません。

別のテーブルからテーブルへの挿入

INSERT コマンドを使用して、別のテーブルからテーブルにデータを挿入することもできます。 基本的な構文は次のとおりです。

INSERT INTO table_1 SELECT * FROM table_2;

それでは、実際の例を見てみましょう。デモ用に映画カテゴリのダミーテーブルを作成します。新しいカテゴリテーブルをcategories_archiveと呼びます。以下に示すスクリプトは、 テーブルを作成します.

CREATE TABLE `categories_archive` (    	  `category_id` int(11) AUTO_INCREMENT,    	  `category_name` varchar(150)  DEFAULT NULL,    	  `remarks` varchar(500) DEFAULT NULL,    	  PRIMARY KEY (`category_id`))

上記のスクリプトを実行してテーブルを作成します。

それでは、カテゴリ テーブルのすべての行をカテゴリ アーカイブ テーブルに挿入してみましょう。以下に示すスクリプトは、これを実現するのに役立ちます。

INSERT INTO `categories_archive` SELECT * FROM `categories`;

上記のスクリプトを実行すると、カテゴリ テーブルのすべての行がカテゴリ アーカイブ テーブルに挿入されます。スクリプトが機能するには、テーブル構造が同じである必要があります。より堅牢なスクリプトは、挿入テーブルの列名を、データを含むテーブルの列名にマップするスクリプトです。

以下に示すクエリは、その使用法を示しています。

INSERT INTO `categories_archive`(category_id,category_name,remarks)  SELECT category_id,category_name,remarks FROM `categories`;

SELECTクエリの実行

SELECT * FROM `categories_archive`

以下に示す結果が得られます。

カテゴリ ID CATEGORY_NAME 備考
1 コメディ ユーモアのある映画
2 ロマンチックな ラブストーリー
3 エピック ストーリー古代映画
4 ホラー NULL
5 サイエンスフィクション NULL
6 スリラー NULL
7 行動 NULL
8 ラブコメ NULL
9 漫画 NULL
10 漫画 NULL

PHP の例: に挿入 MySQL 表

mysqli_query関数は実行に使用されます SQL クエリ

SQL の insert into table 関数は、次のクエリ タイプを実行するために使用できます。

  • インセット
  • 選択
  • 更新
  • 削除

構文は次のようになります。

mysqli_query($db_handle,$query);

ここに、

「mysqli_query(…)」はSQLクエリを実行する関数です。

「$query」は実行するSQLクエリです。

「$link_identifier」はオプションで、サーバー接続リンクを渡すために使用できます。

$servername = "localhost";
$username = "alex";
$password = "yPXuPT";
$dbname = "afmznf";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";
		if (mysqli_query($conn, $sql)) {
			echo "New record created successfully".'<br>';
		} else {
		echo "Error: " . $sql. "<br>" . mysqli_error($conn);
	}
}

まとめ

  • INSERT コマンドは、テーブルに新しいデータを追加するために使用されます。コマンドが実行されると、MySql は新しい行を追加します。
  • 日付と文字列の値は一重引用符で囲む必要があります。
  • 数値を引用符で囲む必要はありません。
  • INSERT コマンドを使用して、あるテーブルから別のテーブルにデータを挿入することもできます。