==============================
导出/导入查询结果
==============================
【导出查询结果 outfile 】
★ 例:select * into outfile 'e:/file/bak' from table_name;
【注意】:★ 不能覆盖已存在文件
★ 默认用制表符分隔数据
★ 例:select * into outfile 'e:/file/bak2'
fields terminated by '\t' enclosed by 'X' //字段分隔符;字段包裹符
lines terminated by '\n' starting by 'start:' //行分隔符;行开始符
from table_name where ...
【注意】:当导出blob数据时,用dumpfile关键字
select img_data into dumpfile 'e:/file/bak3' from table_name;
【导入查询结果 load data infile 】
★ 例:load data infile 'e:/file/bak' into table student;
//导出时应注意主键冲突
==================
insert注意事项
==================
【语法形式】:insert into table_name set name='huge', class_name='ims4';
【插入数据冲突时】:当有主键、唯一约束冲突时,可用以下语句。
★ 例:insert into student (id, name, class)
values(12, '张三', '信管4')
on duplicate key update //如果保存不了,则更新
name='李四', class='网工3';
【注意】:插入时使用 default 或者 default(name) 可以插入属性默认值
【replace用法】:当插入数据冲突时,用replace可以解决。
================
删除数据
================
【 delete 】
★ 可以使用 limit 关键字,如:limit 5; //删除前5条
可以使用order by 关键字与limit 组合使用
★ 可以使用 join 语法,实现多表删除
【例】:delete from one, two
using one join two on one.class_id = two.class_id
where one.class_name = 'mis4';
【清空表】:truncate | delete from table_name 关键字
★ 区别:delete 逐行删除;truncate 则是先删除表,再新建表。
=================
更新数据
=================
【 update 】:支持 where、order by、limit
★ 可以使用 join 语法,实现多表更新
【例】:update one join two on one.class_id = two.class_id
set one_date = 'huge', two_data = 'chen'
where one_id = 3;
===================
备份/还原数据
===================
【 方案1 】:(只适用myisam) 直接 拷贝/粘贴 数据文件,data.frm、data.myd、data.myi
【 方案2 】:★ (通用方案) 将表结构与SQL语句导出保存
★ 使用mysqldump 命令导出
【备份】:(备份数据库) mysqldump -uroot -p database_name > e:/database_name.sql
(备份表) mysqldump -uroot -p database_name tab_name1 tab_name2 > e:/database_name.sql
【还原】:执行上面生成的SQL文件即可 (source或者\.)
导出/导入查询结果
==============================
【导出查询结果 outfile 】
★ 例:select * into outfile 'e:/file/bak' from table_name;
【注意】:★ 不能覆盖已存在文件
★ 默认用制表符分隔数据
★ 例:select * into outfile 'e:/file/bak2'
fields terminated by '\t' enclosed by 'X' //字段分隔符;字段包裹符
lines terminated by '\n' starting by 'start:' //行分隔符;行开始符
from table_name where ...
【注意】:当导出blob数据时,用dumpfile关键字
select img_data into dumpfile 'e:/file/bak3' from table_name;
【导入查询结果 load data infile 】
★ 例:load data infile 'e:/file/bak' into table student;
//导出时应注意主键冲突
==================
insert注意事项
==================
【语法形式】:insert into table_name set name='huge', class_name='ims4';
【插入数据冲突时】:当有主键、唯一约束冲突时,可用以下语句。
★ 例:insert into student (id, name, class)
values(12, '张三', '信管4')
on duplicate key update //如果保存不了,则更新
name='李四', class='网工3';
【注意】:插入时使用 default 或者 default(name) 可以插入属性默认值
【replace用法】:当插入数据冲突时,用replace可以解决。
================
删除数据
================
【 delete 】
★ 可以使用 limit 关键字,如:limit 5; //删除前5条
可以使用order by 关键字与limit 组合使用
★ 可以使用 join 语法,实现多表删除
【例】:delete from one, two
using one join two on one.class_id = two.class_id
where one.class_name = 'mis4';
【清空表】:truncate | delete from table_name 关键字
★ 区别:delete 逐行删除;truncate 则是先删除表,再新建表。
=================
更新数据
=================
【 update 】:支持 where、order by、limit
★ 可以使用 join 语法,实现多表更新
【例】:update one join two on one.class_id = two.class_id
set one_date = 'huge', two_data = 'chen'
where one_id = 3;
===================
备份/还原数据
===================
【 方案1 】:(只适用myisam) 直接 拷贝/粘贴 数据文件,data.frm、data.myd、data.myi
【 方案2 】:★ (通用方案) 将表结构与SQL语句导出保存
★ 使用mysqldump 命令导出
【备份】:(备份数据库) mysqldump -uroot -p database_name > e:/database_name.sql
(备份表) mysqldump -uroot -p database_name tab_name1 tab_name2 > e:/database_name.sql
【还原】:执行上面生成的SQL文件即可 (source或者\.)