一千行MySQL学习笔记(五)

/* 导入导出 */ -------------

select * into outfile 文件地址 [控制格式] from 表名; -- 导出表数据
load data [local] infile 文件地址 [replace|ignore] into table 表名 [控制格式]; -- 导入数据
生成的数据默认的分隔符是制表符 local未指定,则数据文件必须在服务器上
replace 和 ignore 关键词控制对现有的唯一键记录的重复的处理

-- 控制格式

fields 控制字段格式 默认:fields terminated by ' ' enclosed by '' escaped by '\' terminated by 'string' -- 终止 enclosed by 'char' -- 包裹 escaped by 'char' -- 转义 -- 示例: SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ' ' FROM test_table;
lines 控制行格式 默认:lines terminated by ' ' terminated by 'string' -- 终止

/* insert */ --------------

select语句获得的数据可以用insert插入。 可以省略对列的指定,要求 values () 括号内,提供给了按照列顺序出现的所有字段的值。 或者使用set语法。
insert into tbl_name set field=value,...; 可以一次性使用多个值,采用(), (), ();的形式。
insert into tbl_name values (), (), (); 可以在列值指定时,使用表达式。
insert into tbl_name values (field_value, 10+10, now());
可以使用一个特殊值 default,表示该列使用默认值。
insert into tbl_name values (field_value, default); 可以通过一个查询的结果,作为需要插入的值。
insert into tbl_name select ...; 可以指定在插入的值出现主键(或唯一索引)冲突时,更新其他非主键列的信息。
insert into tbl_name values/set/select on duplicate key update 字段=值, …;

/* delete */ -------------

DELETE FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

按照条件删除 指定删除的最多记录数。Limit 可以通过排序条件删除。order by + limit 支持多表删除,使用类似连接语法。

delete from 需要删除数据多表1,表2 using 表连接操作 条件。

/* truncate */ -------------

TRUNCATE [TABLE] tbl_name 清空数据 删除重建表 区别:

1,truncate 是删除表再创建,delete 是逐条删除
2,truncate 重置auto_increment的值。而delete不会
3,truncate 不知道删除了几条,而delete知道。
4,当被用于带分区的表时,truncate 会保留分区

(未完待续)
       (作者:Shocker 来源:http://www.cnblogs.com/shockerli/p/1000-plus-line-mysql-notes.html)

原文地址:https://www.cnblogs.com/Grace7582/p/4740488.html