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,…) は、新しい行に追加する値を指定します。

新しいテーブルに挿入するデータ値を指定する場合、次のようになります。wing 考慮すべきだ:

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


例:

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

氏名 生年月日 性別 物理アドレス 郵便住所 連絡先 メールアドレス
レナード・ホフスタッター 男性 ウッドクレスト 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) は削除されません。


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

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

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;

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

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`))

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

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

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

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

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

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

SELECTクエリの実行

SELECT * FROM `categories_archive`

フォローを与えるwing 結果を以下に示します。

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

PHP の例: MySQL テーブルへの挿入

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

SQL テーブル関数への挿入を使用して、次の処理を実行できます。wing クエリの種類:

  • インセット
  • 選択
  • アップデイト
  • 削除

それには次のようなものがありますwing 構文。

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 コマンドを使用して、あるテーブルから別のテーブルにデータを挿入することもできます。