mysql学习十三之insert插入操作详解,replace的用法,load data infile导入数据源的用法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33322074/article/details/86597949

一、insert插入操作的基本用法

insert into tbl_name (字段列表) values(值列表);

1、如果说需要完成部分字段的插入,需要必须存在字段列表。即:

insert into tbl_name(需要插入的字段列表) values (值列表);

注意:对于没有插入的字段使用默认值。

2、如果插入的是部分字段,也可以使用set语法。

即:

3、值列表语法,一次性插入多条语句。

4、插入数据时,如果与主键冲突。

采用 on duplicate key update 方法对主键内容进行更新。这句语句的执行过程是:先判断能否 插入成功,如果不成功,执行更新操作。但是update后不能跟set关键字。

5、插入数据源

插入除了自己定义的列表值外还可以插入select查询到的语句作为插入数据源。

插入select查询的语句可以是查询别的表得到的字段值。也可以是查询本表得到的字段值。也就是说数据可以来源于其他数据表,要求,字段数量和类型一致即可。

6、修改字段的默认值

alter table tbl_name modify 字段名 字段类型(必须写,否则会认为其他字段类型)default 默认值;

那么既然设置了默认值,在插入时可以这样写了

二、replace的用法

也就是说,replace和insert用法差不多,如果用insert插入过程中发现了与主键冲突,insert插入会报错,replace则是将记录的内容删除再重新将新记录插入。replace如果没有遇到主键冲突情况,就如同insert一样直接插入数据。

三、load data infile导入

load data infile和into outfile正好相反,into outfile是导出数据到本地文件,load data infile是导入本地数据到数据库。

1、首先将数据无索引的导出:

select null, 字段1,字段2 into outfile '路径名/文件名' from tbl_name;

本句是将主键设置为null导出的,因为表中主键一般是自动增长,如果不将自动增长的id设置为null,再插入时就因为有相同的id无法插入。如图导出的无索引的内容。

2、如何给主键设置自动增长

第一种是只增加自动增长:

alter table tbl_name modify 字段名 字段类型 auto_increment;

第二种:先drop掉主键,然后再添加主键和自动增长。

不能定义了主键后还在主键上定义自动增长,会引起主键多次定义的错误。

先删除主键:

alter table tbl_name drop primary key;

再增加主键和自动增长:

alter table tbl_name modify 字段名 字段类型 primary key auto_increment;

在使用load data infile into时 重点是导入的数据源是否符合导入的格式,怎样导出,就怎样导入。具体还要参考mysql参考手册。

猜你喜欢

转载自blog.csdn.net/qq_33322074/article/details/86597949
今日推荐