导出的文件支持指定文件名,文件存放地址,字段内容标记符号,行标记符号。

导出的文件是导出到本地文件内不是返回到客户端中。

属于select from语法范畴。

select  * into  outfile 'e:/mysql/one(路径名)' from tbl_name where xxx;

注意:可以自动创建文件,但是不能重写已有文件。

例如:terminated by定义字段终止符,enclosed by定义字段包裹符,escaped by 定义字段转义符,对行的操作有终止符terminated by和开始符starting by。

用法相同,关键字使用 into dumpfile,这个是不会做任何换行和转义处理,没有任何符号,非常适合导出二进制数据。

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

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参考手册。