ホームページ データベース mysql チュートリアル mysqlに複数のデータを挿入するにはどうすればよいですか?

mysqlに複数のデータを挿入するにはどうすればよいですか?

Oct 02, 2020 am 11:37 AM
mysql データの挿入

Mysql で複数のデータを挿入する方法: 1. 「INSERT INTO テーブル名フィールド リスト VALUES (値 1) ..., (値 n);」ステートメントを使用してデータを挿入します。 2. 「」を使用します。 INSERT INTO テーブル名 SET フィールド 1 = 値 1、フィールド 2 = 値 2、...」ステートメントはデータを挿入します。

mysqlに複数のデータを挿入するにはどうすればよいですか?

#データベースとテーブルが正常に作成されたら、データをデータベース テーブルに挿入する必要があります。 MySQL では、INSERT ステートメントを使用して、タプル データの 1 行以上をデータベース内の既存のテーブルに挿入できます。

基本構文

INSERT ステートメントには、INSERT…VALUES ステートメントと INSERT…SET ステートメントという 2 つの構文形式があります。

1) INSERT...VALUES ステートメント

INSERT VALUES の構文形式は次のとおりです。

INSERT INTO <表名> [ <列名1> [ , … <列名n>] ]
VALUES (值1) [… , (值n) ];
ログイン後にコピー

構文は次のように説明されます。 。

  • <テーブル名>: 操作対象のテーブル名を指定します。

  • <列名>: データを挿入する必要がある列名を指定します。テーブル内のすべての列にデータを挿入する場合、すべての列名を省略でき、INSERT<テーブル名>VALUES(…) を直接使用できます。

VALUES または VALUE 句: この句には、挿入されるデータのリストが含まれます。データ リスト内のデータの順序は、列の順序に対応している必要があります。

2) INSERT...SET ステートメント

構文形式は次のとおりです:

INSERT INTO <表名>
SET <列名1> = <值1>,
        <列名2> = <值2>,
        …
ログイン後にコピー

このステートメントは、対応する値を直接指定するために使用されます。テーブル内の特定の列の場合。列の値、つまり、挿入されるデータの列名が SET 句で指定されます。col_name は指定された列名であり、等号の後に指定されたデータが続きます。列の場合、列の値は列のデフォルト値として指定されます。

これは、INSERT ステートメントの 2 つの形式からわかります。

  • INSERT...VALUES ステートメントを使用して、1 行または複数行のデータをtable;

  • INSERT…SET ステートメントを使用して、挿入された行の各列の値を指定するか、一部の列の値を指定します;

  • INSERT…SELECT ステートメント 他のテーブルのデータをテーブルに挿入します。

  • INSERT…SET ステートメントを使用すると、一部の列の値をテーブルに挿入でき、より柔軟になります。

  • INSERT…VALUES 文 一度に複数のデータを挿入できます。

MySQL では、複数の INSERT ステートメントを使用するよりも、単一の INSERT ステートメントで複数の挿入を処理する方が高速です。

単一の INSERT ステートメントを使用して複数行のデータを挿入する場合、必要なのはデータの各行をかっこで囲むことだけです。

テーブル内のすべてのフィールドに値を追加します

test_db データベースに、コース番号 course_id、コース名 course_name、コース クレジットを含むコース情報テーブル tb_courses を作成します。 course_gradeとコースノートcourse_info、入力したSQL文と実行結果は以下のとおりです。

mysql> CREATE TABLE tb_courses
    -> (
    -> course_id INT NOT NULL AUTO_INCREMENT,
    -> course_name CHAR(40) NOT NULL,
    -> course_grade FLOAT NOT NULL,
    -> course_info CHAR(100) NULL,
    -> PRIMARY KEY(course_id)
    -> );
Query OK, 0 rows affected (0.00 sec)
ログイン後にコピー

テーブル内のすべてのフィールドに値を挿入するには 2 つの方法があります: 1 つはすべてのフィールド名を指定する方法、もう 1 つはフィールド名をまったく指定しない方法です。

[例 1] tb_courses テーブルに新しいレコードを挿入します。course_id 値は 1、course_name 値は「Network」、course_grade 値は 3、info 値は「Computer Network」です。

挿入操作を実行する前に、次のように tb_courses テーブルの SQL ステートメントと実行結果を確認します。

mysql> SELECT * FROM tb_courses;
Empty set (0.00 sec)
ログイン後にコピー

クエリの結果は、現在のテーブルの内容が空でデータが存在しないことを示しています。次に、データの挿入操作を実行します。入力 SQL 文と実行プロセスは次のとおりです。

mysql> INSERT INTO tb_courses
    -> (course_id,course_name,course_grade,course_info)
    -> VALUES(1,&#39;Network&#39;,3,&#39;Computer Network&#39;);
Query OK, 1 rows affected (0.08 sec)
mysql> SELECT * FROM tb_courses;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            3 | Computer Network |
+-----------+-------------+--------------+------------------+
1 row in set (0.00 sec)
ログイン後にコピー

レコードが正常に挿入されたことがわかります。データを挿入する場合、tb_courses テーブルのすべてのフィールドが指定されるため、フィールドごとに新しい値が挿入されます。

INSERT ステートメント後の列名の順序は、tb_courses テーブルが定義されているときの順序ではない可能性があります。つまり、データを挿入するときに、テーブルで定義された順序で挿入する必要はありません。値の順序が列フィールドの順序と同じである限り。

[例 2] tb_courses テーブルに新しいレコードを挿入します。course_id 値は 2、course_name 値は「Database」、course_grade 値は 3、info 値は「MySQL」です。入力したSQL文と実行結果を以下に示します。

mysql> INSERT INTO tb_courses
    -> (course_name,course_info,course_id,course_grade)
    -> VALUES(&#39;Database&#39;,&#39;MySQL&#39;,2,3);
Query OK, 1 rows affected (0.08 sec)
mysql> SELECT * FROM tb_courses;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            3 | Computer Network |
|         2 | Database    |            3 | MySQL            |
+-----------+-------------+--------------+------------------+
2 rows in set (0.00 sec)
ログイン後にコピー

INSERT を使用してデータを挿入する場合、列名リスト column_list は空にすることができます。このとき、値リストではテーブルの各フィールドの値と値の順序を指定する必要があります。データテーブルでフィールドが定義されている順序と同じである必要があります。

[例 3] tb_courses テーブルに新しいレコードを挿入します。course_id 値は 3、course_name 値は「Java」、course_grade 値は 4、info 値は「Jave EE」です。入力したSQL文と実行結果を以下に示します。

mysql> INSERT INTO tb_courses
    -> VLAUES(3,&#39;Java&#39;,4,&#39;Java EE&#39;);
Query OK, 1 rows affected (0.08 sec)
mysql> SELECT * FROM tb_courses;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            3 | Computer Network |
|         2 | Database    |            3 | MySQL            |
|         3 | Java        |            4 | Java EE          |
+-----------+-------------+--------------+------------------+
3 rows in set (0.00 sec)
ログイン後にコピー

INSERT ステートメントは挿入リストを指定せず、値リストのみを指定します。この場合、値リストは各フィールド列の挿入値を指定し、値は tb_courses テーブルでフィールドが定義されているのと同じ順序である必要があります。

注意:虽然使用 INSERT 插入数据时可以忽略插入数据的列名称,若值不包含列名称,则 VALUES 关键字后面的值不仅要求完整,而且顺序必须和表定义时列的顺序相同。如果表的结构被修改,对列进行增加、删除或者位置改变操作,这些操作将使得用这种方式插入数据时的顺序也同时改变。如果指定列名称,就不会受到表结构改变的影响。

向表中指定字段添加值

为表的指定字段插入数据,是在 INSERT 语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值。

【实例 4】在 tb_courses 表中插入一条新记录,course_name 值为“System”,course_grade 值为 3,course_info 值为“Operating System”,输入的 SQL 语句和执行结果如下所示。

mysql> INSERT INTO tb_courses
    -> (course_name,course_grade,course_info)
    -> VALUES(&#39;System&#39;,3,&#39;Operation System&#39;);
Query OK, 1 rows affected (0.08 sec)
mysql> SELECT * FROM tb_courses;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            3 | Computer Network |
|         2 | Database    |            3 | MySQL            |
|         3 | Java        |            4 | Java EE          |
|         4 | System      |            3 | Operating System |
+-----------+-------------+--------------+------------------+
4 rows in set (0.00 sec)
ログイン後にコピー

可以看到插入记录成功。如查询结果显示,这里的 course_id 字段自动添加了一个整数值 4。这时的 course_id 字段为表的主键,不能为空,系统自动为该字段插入自增的序列值。在插入记录时,如果某些字段没有指定插入值,MySQL 将插入该字段定义时的默认值。

使用 INSERT INTO…FROM 语句复制表数据

INSERT INTO…SELECT…FROM 语句用于快速地从一个或多个表中取出数据,并将这些数据作为行数据插入另一个表中。

SELECT 子句返回的是一个查询到的结果集,INSERT 语句将这个结果集插入指定表中,结果集中的每行数据的字段数、字段的数据类型都必须与被操作的表完全一致。

在数据库 test_db 中创建一个与 tb_courses 表结构相同的数据表 tb_courses_new,创建表的 SQL 语句和执行过程如下所示。

mysql> CREATE TABLE tb_courses_new
    -> (
    -> course_id INT NOT NULL AUTO_INCREMENT,
    -> course_name CHAR(40) NOT NULL,
    -> course_grade FLOAT NOT NULL,
    -> course_info CHAR(100) NULL,
    -> PRIMARY KEY(course_id)
    -> );
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM tb_courses_new;
Empty set (0.00 sec)
ログイン後にコピー

【实例 5】从 tb_courses 表中查询所有的记录,并将其插入 tb_courses_new 表中。输入的 SQL 语句和执行结果如下所示。

mysql> INSERT INTO tb_courses_new
    -> (course_id,course_name,course_grade,course_info)
    -> SELECT course_id,course_name,course_grade,course_info
    -> FROM tb_courses;
Query OK, 4 rows affected (0.17 sec)
Records: 4  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM tb_courses_new;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            3 | Computer Network |
|         2 | Database    |            3 | MySQL            |
|         3 | Java        |            4 | Java EE          |
|         4 | System      |            3 | Operating System |
+-----------+-------------+--------------+------------------+
4 rows in set (0.00 sec)
ログイン後にコピー

推荐教程:mysql视频教程

以上がmysqlに複数のデータを挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQLをCentos7にインストールする方法 MySQLをCentos7にインストールする方法 Apr 14, 2025 pm 08:30 PM

MySQLをエレガントにインストールするための鍵は、公式のMySQLリポジトリを追加することです。特定の手順は次のとおりです。MYSQLの公式GPGキーをダウンロードして、フィッシング攻撃を防ぎます。 mysqlリポジトリファイルを追加:rpm -uvh https://dev.mysql.com/get/mysql80-community-rease-el7-3.noarch.rpm update yumリポジトリキャッシュ:yumアップデートインストールmysql:yumインストールmysql-server startup mysql sportin

See all articles