Mysql数据导出与导入实例分享

发布时间:2020-03-13编辑:脚本学堂
本文介绍了mysql数据导入与导出的方法,通过多个实例介绍mysql导出与导入数据,导出与导入表结构等的方法,需要的朋友参考下。

mysql导出导入

Mysql中怎么导出数据,Mysql的导入操作。

Mysql版本是5.6.14,查看Mysql版本sql为:
select version(); 
示例数据库为test。

具体操作: 
 

复制代码 代码示例:
--导出数据库(创建数据库,表,数据) 
mysqldump -uroot -p test --databases --default-character-set=utf8>f:/saveFile/out_all_utf_db.sql 

直接在cmd命令行下运行即可,数据库编码设置是utf8,所以默认的编码是utf8,如果是gbk,请改成gbk,--default-character-set=utf8,不写也没有影响。
--databases 作用是在文件中添加数据库的创建语句。

如果不想要创建数据库,可以这样写: 
 

复制代码 代码示例:
--导出数据库(表,数据) 
mysqldump -uroot -p test --default-character-set=utf8>f:/saveFile/out_with_utf8_db.sql 
mysqldump -uroot -p test --default-character-set=gbk>f:/saveFile/out_with_gbk_db.sql 
 

以下导出包含表创建语句,以及数据插入。

如果只想要创建数据库和表,可以这样写:
 

复制代码 代码示例:
--导出数据库(创建数据库,表) 
mysqldump -uroot -p -d test  --databases --add-drop-table --default-character-set=utf8>f:/saveFile/out_with_db_table_db.sql 

如果只想要创建表,可以这样写:
 

复制代码 代码示例:
--导出数据库(表) 
mysqldump -uroot -p -d test  --add-drop-table --default-character-set=utf8>f:/saveFile/out_with_table_db.sql 

如只想要表的数据,可以这样:
 

复制代码 代码示例:
--导出数据库(表数据) 
mysqldump -uroot -p -t test --default-character-set=utf8>f:/saveFile/out_with_data_only_db.sql 

上面是导出数据库的整个表,插入语句中有以下内容:
 

复制代码 代码示例:
LOCK TABLES `user_t3` WRITE; 
insert into..... 
UNLOCK TABLES; 

如果不想要lock表,可以这样:
 

复制代码 代码示例:
--导出数据库(表数据,无Lock) 
mysqldump -uroot -p -t test --add-locks=false --default-character-set=utf8>f:/saveFile/out_with_data_only_on_lock_db.sql 

导出单个表与上面类似:
 

复制代码 代码示例:
--导出单个表 
mysqldump -uroot -p test user_t3 --default-character-set=utf8>f:/saveFile/out_user_data.sql 

如果想一次导出多个表,表名请用空格隔开:
 

复制代码 代码示例:
--导出多个表 
mysqldump -uroot -p test user_t2 user_t3  --default-character-set=utf8>f:/saveFile/out_user2_data.sql 

导出表结构:
 

复制代码 代码示例:
--导出表结构 
mysqldump -uroot -p -d test user_t3 --add-drop-table  --default-character-set=utf8>f:/saveFile/out_user_no_data.sql 

导出表数据:
 

复制代码 代码示例:
--导出表数据 
mysqldump -uroot -p -t test user_t3 --default-character-set=utf8>f:/saveFile/out_user_only_data.sql 

导出表数据,不含Lock语句
 

复制代码 代码示例:
--导出表数据 无Lock 
mysqldump -uroot -p -t test user_t3 --add-locks=false --default-character-set=utf8>f:/saveFile/out_user_no_lock_data.sql 

以下是mysql数据库导入的一些方法。

方法1直接在cmd下运行:
 

复制代码 代码示例:
--导入 
mysql -h localhost -u root -p test_tmp <f:/saveFile/out_user_data.sql 

方法2,先登录Mysql
 

复制代码 代码示例:
--要登录 
use test_tmp; 
source f:/saveFile/out_user_data.sql 

附,与mysql数据导出导入相关的内容。

1,--databases只能用在导出整个数据库上面,不能用在导出单个或多个表上面。
2,指定文件编码可以使用default-character-set参数,值可以为utf8,gbk。
3,取消Lock信息使用--add-locks=false。
4,如果想在导出的sql中自动提交,可以使用--no-autocommit。
使用之后,导出的sql文件中将有如下内容:
set autocommit=0; 
INSERT INTO.... 
commit; 
5,导出表结构使用-d --add-drop-table,-d意思是no data,add-drop-table意思是在上drop table语句,我的是默认有的。
6,只导出数据,可以使用--no-create-info或者-t参数。
7,mysqldump中各个参数可以叠加,一次可以使用多个。

最后如果不确定如何使用,请使用: 
mysqldump --help 
查看各个参数的具体意思。
 
如只想要数据,不想要任何sql语句,可以这样:
 

复制代码 代码示例:
select * from user_t3 into outfile "f:/saveFile/test_load.sql" 

导入可以这样:
 

复制代码 代码示例:
load data infile "f:/saveFile/test_load.sql" into table user_t3; 

详情请自行搜索load 命令使用。
 
另一个导入导出的方法是使用图形工具,Oracle可以使用sql/plus,Mysql可以使用Navicat Premium,图形界面用起来很简单的,可以从Excel文件中导入,很方便。
 
如果sql文件较大,推荐使用命令行。

为大家推荐一个sql文件切割工具,SQLDumpSplitter,可以指定文件切割的大小,不会把一条sql切割到2个文件,很智能,再使用命令行导入,非常简单。