search
HomeDatabaseMysql TutorialHow to insert multiple pieces of data in mysql?

How to insert multiple pieces of data in mysql?

Oct 02, 2020 am 11:37 AM
mysqlInsert data

Mysql method of inserting multiple pieces of data: 1. Use the "INSERT INTO table name field list VALUES (value 1) ..., (value n);" statement to insert data; 2. Use "INSERT INTO table name SET Field 1 = value 1, field 2 = value 2,..." statement inserts data.

How to insert multiple pieces of data in mysql?

#After the database and table are successfully created, data needs to be inserted into the database table. In MySQL, you can use the INSERT statement to insert one or more rows of tuple data into an existing table in the database.

Basic syntax

The INSERT statement has two syntax forms, namely the INSERT…VALUES statement and the INSERT…SET statement.

1) INSERT...VALUES statement

The syntax format of INSERT VALUES is:

INSERT INTO <表名> [ <列名1> [ , … <列名n>] ]
VALUES (值1) [… , (值n) ];

The syntax is explained as follows.

  • : Specify the name of the table to be operated on.
  • : Specify the column name into which data needs to be inserted. If data is inserted into all columns in the table, all column names can be omitted, and INSERT

  • VALUES(…) can be used directly.

    VALUES or VALUE clause: This clause contains the list of data to be inserted. The order of data in the data list should correspond to the order of columns.

    2) INSERT...SET statement

    The syntax format is:

    INSERT INTO <表名>
    SET <列名1> = <值1>,
            <列名2> = <值2>,
            …

    This statement is used to directly specify the corresponding values ​​for certain columns in the table. The column value, that is, the column name of the data to be inserted is specified in the SET clause. col_name is the specified column name, and the equal sign is followed by the specified data. For unspecified columns, the column value will be specified as the default value of the column. .

    It can be seen from the two forms of INSERT statement:

    • Use INSERT...VALUES statement to insert one row of data or multiple rows of data into the table;

    • Use the INSERT…SET statement to specify the value of each column in the inserted row, or to specify the values ​​of some columns;

    • INSERT…SELECT statement Insert data from other tables into the table.

    • The INSERT…SET statement can be used to insert the values ​​of some columns into the table, which is more flexible;

    • INSERT…VALUES statement Multiple pieces of data can be inserted at one time.

    In MySQL, processing multiple inserts with a single INSERT statement is faster than using multiple INSERT statements.

    When using a single INSERT statement to insert multiple rows of data, you only need to enclose each row of data in parentheses.

    Add values ​​to all fields in the table

    Create a course information table tb_courses in the test_db database, including course number course_id, course name course_name, course credits course_grade and Course notes course_info, the input SQL statement and execution results are as follows.

    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)

    There are two ways to insert values ​​into all fields in the table: one is to specify all field names; the other is to not specify field names at all.

    [Example 1] Insert a new record in the tb_courses table, the course_id value is 1, the course_name value is "Network", the course_grade value is 3, and the info value is "Computer Network".

    Before performing the insert operation, view the SQL statement and execution results of the tb_courses table as follows.

    mysql> SELECT * FROM tb_courses;
    Empty set (0.00 sec)

    The query result shows that the current table content is empty and there is no data. Next, perform the operation of inserting data. The input SQL statement and execution process are as follows.

    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)

    You can see that the record was inserted successfully. When inserting data, all fields of the tb_courses table are specified, so new values ​​will be inserted for each field.

    The order of the column names after the INSERT statement does not need to be the order when the tb_courses table is defined. That is, when inserting data, it is not necessary to insert in the order defined by the table, as long as the order of the values ​​is the same as the order of the column fields.

    [Example 2] Insert a new record in the tb_courses table, the course_id value is 2, the course_name value is "Database", the course_grade value is 3, and the info value is "MySQL". The input SQL statement and execution results are shown below.

    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)

    When using INSERT to insert data, the column name list column_list is allowed to be empty. At this time, the value list needs to specify a value for each field of the table, and the order of the values ​​must be the same as the order in which the fields are defined in the data table. same.

    [Example 3] Insert a new record in the tb_courses table, the course_id value is 3, the course_name value is "Java", the course_grade value is 4, and the info value is "Jave EE". The input SQL statement and execution results are shown below.

    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)

    The INSERT statement does not specify an insertion list, only a value list. In this case, the value list specifies the inserted values ​​for each field column, and the values ​​must be in the same order as the fields are defined in the tb_courses table.

    注意:虽然使用 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视频教程

The above is the detailed content of How to insert multiple pieces of data in mysql?. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does MySQL index cardinality affect query performance?How does MySQL index cardinality affect query performance?Apr 14, 2025 am 12:18 AM

MySQL index cardinality has a significant impact on query performance: 1. High cardinality index can more effectively narrow the data range and improve query efficiency; 2. Low cardinality index may lead to full table scanning and reduce query performance; 3. In joint index, high cardinality sequences should be placed in front to optimize query.

MySQL: Resources and Tutorials for New UsersMySQL: Resources and Tutorials for New UsersApr 14, 2025 am 12:16 AM

The MySQL learning path includes basic knowledge, core concepts, usage examples, and optimization techniques. 1) Understand basic concepts such as tables, rows, columns, and SQL queries. 2) Learn the definition, working principles and advantages of MySQL. 3) Master basic CRUD operations and advanced usage, such as indexes and stored procedures. 4) Familiar with common error debugging and performance optimization suggestions, such as rational use of indexes and optimization queries. Through these steps, you will have a full grasp of the use and optimization of MySQL.

Real-World MySQL: Examples and Use CasesReal-World MySQL: Examples and Use CasesApr 14, 2025 am 12:15 AM

MySQL's real-world applications include basic database design and complex query optimization. 1) Basic usage: used to store and manage user data, such as inserting, querying, updating and deleting user information. 2) Advanced usage: Handle complex business logic, such as order and inventory management of e-commerce platforms. 3) Performance optimization: Improve performance by rationally using indexes, partition tables and query caches.

SQL Commands in MySQL: Practical ExamplesSQL Commands in MySQL: Practical ExamplesApr 14, 2025 am 12:09 AM

SQL commands in MySQL can be divided into categories such as DDL, DML, DQL, DCL, etc., and are used to create, modify, delete databases and tables, insert, update, delete data, and perform complex query operations. 1. Basic usage includes CREATETABLE creation table, INSERTINTO insert data, and SELECT query data. 2. Advanced usage involves JOIN for table joins, subqueries and GROUPBY for data aggregation. 3. Common errors such as syntax errors, data type mismatch and permission problems can be debugged through syntax checking, data type conversion and permission management. 4. Performance optimization suggestions include using indexes, avoiding full table scanning, optimizing JOIN operations and using transactions to ensure data consistency.

How does InnoDB handle ACID compliance?How does InnoDB handle ACID compliance?Apr 14, 2025 am 12:03 AM

InnoDB achieves atomicity through undolog, consistency and isolation through locking mechanism and MVCC, and persistence through redolog. 1) Atomicity: Use undolog to record the original data to ensure that the transaction can be rolled back. 2) Consistency: Ensure the data consistency through row-level locking and MVCC. 3) Isolation: Supports multiple isolation levels, and REPEATABLEREAD is used by default. 4) Persistence: Use redolog to record modifications to ensure that data is saved for a long time.

MySQL's Place: Databases and ProgrammingMySQL's Place: Databases and ProgrammingApr 13, 2025 am 12:18 AM

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

MySQL: From Small Businesses to Large EnterprisesMySQL: From Small Businesses to Large EnterprisesApr 13, 2025 am 12:17 AM

MySQL is suitable for small and large enterprises. 1) Small businesses can use MySQL for basic data management, such as storing customer information. 2) Large enterprises can use MySQL to process massive data and complex business logic to optimize query performance and transaction processing.

What are phantom reads and how does InnoDB prevent them (Next-Key Locking)?What are phantom reads and how does InnoDB prevent them (Next-Key Locking)?Apr 13, 2025 am 12:16 AM

InnoDB effectively prevents phantom reading through Next-KeyLocking mechanism. 1) Next-KeyLocking combines row lock and gap lock to lock records and their gaps to prevent new records from being inserted. 2) In practical applications, by optimizing query and adjusting isolation levels, lock competition can be reduced and concurrency performance can be improved.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),