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`;
会員番号 | フルネーム | 性別 | 生年月日 | 実在住所 | 郵便番号 | 連絡先番号 | |
---|---|---|---|---|---|---|---|
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 コマンドを使用して、あるテーブルから別のテーブルにデータを挿入することもできます。