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_table WHERE 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;
“`
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1082299.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复