插入MySQL数据库是数据库操作中的基本操作之一,它用于向数据库表中添加新的数据行,我们将详细介绍如何使用INSERT语句来插入数据到MySQL数据库中。
1、INSERT语句的基本语法
INSERT语句的基本语法如下:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
table_name是要插入数据的表名,column1、column2、column3等是要插入数据的列名,value1、value2、value3等是要插入的具体数据值。
2、插入单个数据行
当要插入的数据只有一行时,可以使用以下语法:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
我们有一个名为students的表,包含id、name和age三个字段,现在我们想插入一条数据:id为1,name为张三,age为20,可以使用以下SQL语句:
INSERT INTO students (id, name, age) VALUES (1, '张三', 20);
执行上述SQL语句后,students表中将新增一条数据:id为1,name为张三,age为20。
3、插入多行数据
当要插入的数据有多行时,可以使用以下语法:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...), (value4, value5, value6, ...), ...;
我们有一个名为students的表,包含id、name和age三个字段,现在我们想插入两条数据:id为1,name为张三,age为20;id为2,name为李四,age为22,可以使用以下SQL语句:
INSERT INTO students (id, name, age) VALUES (1, '张三', 20), (2, '李四', 22);
执行上述SQL语句后,students表中将新增两条数据:id为1,name为张三,age为20;id为2,name为李四,age为22。
4、插入所有列的数据
当要插入的数据包含表中的所有列时,可以使用以下语法:
INSERT INTO table_name VALUES (value1, value2, value3, ...);
我们有一个名为students的表,包含id、name和age三个字段,现在我们想插入一条数据:id为1,name为张三,age为20,可以使用以下SQL语句:
INSERT INTO students VALUES (1, '张三', 20);
执行上述SQL语句后,students表中将新增一条数据:id为1,name为张三,age为20。
5、使用SELECT语句插入数据
除了直接指定要插入的数据值外,还可以使用SELECT语句从其他表中选择数据并插入到目标表中,我们有一个名为students的表和一个名为courses的表,现在想将courses表中的所有数据插入到students表中,可以使用以下SQL语句:
INSERT INTO students SELECT * FROM courses;
执行上述SQL语句后,students表中将新增courses表中的所有数据,需要注意的是,如果两个表的结构不同,那么插入的数据可能无法匹配,在这种情况下,需要确保两个表的结构相同或者只插入部分列的数据。
6、使用INSERT INTO SELECT语句插入数据
INSERT INTO SELECT语句是一种特殊的INSERT语句,它允许从一个或多个表中选择数据并插入到另一个表中,其基本语法如下:
INSERT INTO table_name1 (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM table_name2;
我们有一个名为students的表和一个名为courses的表,现在想将courses表中的所有数据插入到students表中,可以使用以下SQL语句:
INSERT INTO students (id, name, course_id) SELECT id, name, id FROM courses;
执行上述SQL语句后,students表中将新增courses表中的所有数据,需要注意的是,如果两个表的结构不同,那么插入的数据可能无法匹配,在这种情况下,需要确保两个表的结构相同或者只插入部分列的数据。
7、使用AUTO_INCREMENT关键字插入自增主键值
在MySQL中,可以使用AUTO_INCREMENT关键字为表的主键字段设置自增属性,当插入数据时,不需要手动指定主键值,数据库会自动为其分配一个递增的值,我们有一个名为students的表,包含id、name和age三个字段,其中id为主键且具有自增属性,现在我们想插入一条数据:name为张三,age为20,可以使用以下SQL语句:
INSERT INTO students (name, age) VALUES ('张三', 20);
执行上述SQL语句后,students表中将新增一条数据:id自动分配为1(因为id具有自增属性),name为张三,age为20。
下面是一个示例介绍,展示了如何向MySQL数据库中插入(INSERT)数据,此介绍假设我们有一个名为students
的表,该表包含以下列:id
,name
,age
, 和grade
。
SQL命令 | 描述 |
INSERT INTO students (id, name, age, grade) VALUES (1, '张三', 20, '大一'); | 向students 表插入一条记录,其中id 为1,学生名字为张三,年龄为20,年级为大一。 |
INSERT INTO students (name, age, grade) VALUES ('李四', 21, '大二'); | 向students 表插入一条记录,省略了id (如果它是自动增长的或者允许空值),学生名字为李四,年龄为21,年级为大二。 |
INSERT INTO students (id, name, age) VALUES (3, '王五', 19); | 向students 表插入一条记录,只指定了id ,name 和age 的值,grade 将保留为默认值(如果设置了默认值)。 |
INSERT INTO students VALUES (4, '赵六', 22, '大三'); | 向students 表插入一条记录,没有指定列名,根据表结构顺序提供所有值。 |
INSERT INTO students (id, name, age, grade) SELECT id, name, age, grade FROM backup_students WHERE grade = '大一'; | 从backup_students 表中选取所有年级为大一的学生,并将这些记录插入到students 表中。 |
请注意,实际使用中需要确保插入的数据类型与表定义中的列类型匹配,并且如果id
是主键且设置为自动增长(AUTO_INCREMENT),则在插入数据时通常不需要指定id
值,如果列允许为空(NULL),那么可以在插入时省略这些列的值。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/696268.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复