insert INTO 是用于向 MySQL 数据库的表中插入新数据的 SQL 语句。其基本语法如下:,,“sql,insert INTO table_name (column1, column2, column3, ...),VALUES (value1, value2, value3, ...);,`,,如果你有一个名为 students 的表,其中有 id, name 和 age 三个字段,你可以使用以下语句插入一行数据:,,`sql,insert INTO students (id, name, age),VALUES (1, 'Alice', 20);,“
MySQL数据库insert_INSERT INTO详解
在MySQL中,insert INTO语句是用于将新记录插入到现有表中的基本SQL命令,它有多种使用方式,可以插入单条记录、多条记录,甚至从一个表中选择数据插入到另一个表中,以下是对insert INTO的详细解析及其多种用法示例。
基本语法
1、插入单条记录
insert INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...);
table_name:要插入数据的表的名称。
column1, column2, column3, ...:要插入数据的列名。
value1, value2, value3, ...:对应列的值。
向名为users的表中插入一条记录:
insert INTO users (username, email, birthdate, is_active)VALUES ('test', 'test@runoob.com', '19900101', true);2、插入多条记录
insert INTO table_name (column1, column2, column3, ...)VALUES (value1, value2, value3, ...), (value4, value5, value6, ...), ...;
向users表中插入多条记录:
insert INTO users (username, email, birthdate, is_active)VALUES ('test1', 'test1@runoob.com', '19850710', true), ('test2', 'test2@runoob.com', '19881125', false), ('test3', 'test3@runoob.com', '19930503', true);3、从另一张表插入数据
insert INTO table_name (column1, column2, column3, ...)select column1, column2, column3, ...FROM another_tableWHERE condition;
将table1中的数据插入到table2中:
insert INTO table2 (field1, field2)select col1, col2 FROM table1;
批量插入
批量插入是一种高效的方法,特别适用于需要插入大量数据的场景,以下展示两种批量插入的方式:
1、常规批量插入
insert INTO t2 (field1, field2) select col1, col2 FROM t1;
2、自动创建目标表并插入数据
select col1, col2 INTO T2 FROM T1;
这种方法要求目标表T2不存在,MySQL会自动创建该表并将数据插入其中。
MyBatis中的批量插入
MyBatis是一个优秀的持久层框架,支持高效的批量插入操作,以下是MyBatis中批量插入的两种方式:
1、逐一插入
<insert id="insertList" parameterType="list"> insert INTO tableName (column1, column2) VALUES (#{item.field1}, #{item.field2})</insert>2、使用foreach标签
<insert id="insertList" parameterType="list"> insert INTO tableName (column1, column2) VALUES <foreach collection="list" item="item" separator=","> (#{item.field1}, #{item.field2}) </foreach></insert>常见异常处理
在使用insert INTO时,可能会遇到一些异常情况,如重复键异常和类型不匹配等,以下是处理方法:
1、重复键异常:可以使用IF NOT EXISTS语句来避免重复插入。
IF NOT EXISTS (select * FROM employees WHERE id=4) THEN insert INTO employees (id, first_name, last_name, hire_date, gender, birth_date) VALUES (4, 'Joe', 'Doe', '20230607', 'M', '19951225');ELSE PRINT 'Error: Duplicate key';END IF;
2、类型不匹配:确保插入的数据类型与列的数据类型一致,否则会导致错误,如果尝试将一个字符串插入到一个整数列中,会引发类型不匹配错误。
FAQs(常见问题解答)
1、如何在MySQL中一次插入多条记录?
答:在MySQL中,可以通过在VALUES子句中指定多组值来实现一次插入多条记录。
“`sql
insert INTO users (username, email, birthdate, is_active)
VALUES (‘test1’, ‘test1@runoob.com’, ‘19850710’, true),
(‘test2’, ‘test2@runoob.com’, ‘19881125’, false),
(‘test3’, ‘test3@runoob.com’, ‘19930503’, true);
“`
2、如何从一张表中选取数据并插入到另一张表中?
答:可以使用insert INTO ... select语句从一张表中选取数据并插入到另一张表中。
“`sql
insert INTO table2 (field1, field2)
select col1, col2 FROM table1;
“`

QQ客服