MySQL入门_实战系列文章目录
文章目录
前言
MySQL向数据表中插入数据使用INSERT语句。可以向数据表中插入完整的行记录,为特定的字段插入数据,也可以使用一条INSERT语句向数据表中一次插入多行记录,还可以将一个数据表的查询结果插入另一个数据表中。
本节就简单地介绍一下如何向MySQL的数据表中插入完整的行记录。
1 数据插入
1.1 建表
向MySQL数据表中插入完整的行记录
trexdb是上一章创建的数据库,这里再trexdb中先创建一个示例表DEPT
mysql> use trexdb;
Database changed
mysql> CREATE TABLE DEPT
(DNO INT NOT NULL PRIMARY KEY COMMENT '部门编号',
DNAME VARCHAR ( 16 ) COMMENT '部门名称',
LOCATION VARCHAR ( 32 )) COMMENT '部门所在地';
1.2 不指定字段插入
这时候,结果显示DEPT表中是没有数据的。然后在不指定字段的情况下,向DEPT表中插入数据。
INSERT INTO DEPT VALUES (1, '业务研发部', '深圳');
INSERT INTO DEPT VALUES (2, '销售部', '北京');
查看数据表中的数据。
可以看到,数据表中插入了两行数据记录。
1.3 指定字段插入
指定需要插入数据的字段,向DEPT数据表中插入数据。
INSERT INTO DEPT(DNO,DNAME,LOCATION) VALUES (3, '运维部', '深圳');
注:向数据表中插入数据时未指定字段时,插入的数据必须和字段一一对应,顺序也需要一致。如果此时表结构发生了变化,不指定字段的插入方式会因为字段不匹配而出现报错。在实际项目中,建议使用指定字段的方式向表中插入数据。
1.4 一次插入多条数据记录
例:
1.4.1 不指定插入字段插入多条记录
INSERT INTO DEPT VALUES
(4, '财务部', '深圳'),
(5, '运营部', '武汉');
1.4.2 指定插入字段插入多条记录
INSERT INTO DEPT(DNO,DNAME,LOCATION) VALUES
(6, '人事部', '深圳'),
(7, '公关部', '上海');
注:向数据表中插入多行数据时未指定字段时,插入的数据必须和字段一一对应,顺序也需要一致。如果此时表结构发生了变化,不指定字段的插入方式会因为字段不匹配而出现报错。在实际项目中,建议使用指定字段的方式向表中插入数据。
1.4 将查询结果插入另一个表中
INSERT语句不仅支持向数据表中直接插入数据,还可以支持向数据表中插入SELECT语句的查询结果。
语法结构:
INSERT INTO target_table
(column1 [, column2, …, columnN])
SELECT
(ncolumn1 [, ncolumn2, …, ncolumnN])
FROM source_table
[WHERE condition]
语法说明:
target_table:目标表,即需要插入数据的表
column1 [, column2, …, columnN]:目标表的字段。
source_table:源表,即数据来源的表。
ncolumn1 [, ncolumn2, …, ncolumnN]:源表中的字段。
condition:查询语句的条件。
例:
创建名称为DEPT_NEW的数据表,作为插入数据的目标表。DEPT_NEW数据表包含的字段DNO ,DNAME ,LOCATION; 执行创建DEPT_NEW的SQL语句:
CREATE TABLE DEPT_NEW
(DNO INT NOT NULL PRIMARY KEY COMMENT '部门编号',
DNAME VARCHAR ( 16 ) COMMENT '部门名称',
LOCATION VARCHAR ( 32 )) COMMENT '部门所在地';
此时,表中是无数据的。
将从DEPT数据表中查询出来的数据插入DEPT_NEW数据表中。
INSERT INTO DEPT_NEW
(DNO, DNAME, LOCATION)
SELECT
DNO, DNAME, LOCATION
FROM DEPT
WHERE DNO = 1;
SQL语句执行成功。
查看DEPT_NEW表中的数据。
可以看出来数据已经成功插入DEPT_NEW表中。
当要插入数据的目标表与查询数据的源数据表结构完全相同时,可以不指定插入数据的目标表的字段列表。
INSERT INTO DEPT_NEW SELECT * FROM DEPT WHERE DNO = 2;
SQL语句执行成功。
查看DEPT_NEW表中的数据。
1.5 创建表结构完全相同的新表
使用CREATE…LIKE…语句创建名称为DEPT_BAK表,DEPT_BAK的表结构与DEPT的表结构完全相同。
CREATE TABLE DEPT_BAK LIKE DEPT;
数据表创建成功。查询DEPT_BAK表中的数据
可以看到,新创建的DEPT_BAK表中的数据为空。
将DEPT表中的数据全部插入到DEPT_BAK中
INSERT INTO DEPT_BAK SELECT * FROM DEPT;
显示执行成功,查看DEPT_BAK中的数据
SELECT * FROM DEPT_BAK;
结果显示已经将DEPT表中的数据成功插入DEPT_BAK中。
至此,通过本章的学习,MySQL数据的插入已初步掌握。
如果该文章有帮助到您,请 点赞 支持,谢谢!
有任何疑问,欢迎在评论中留言。