MySQL数据导入导出牛刀小试

最近学习了下MySQL中数据的导入导出,发现功能点真是丰富,很方便很快捷。
这些导入导出的方式还是有不少的细节的,在此先不做扩展和深入分析。
--数据导出 方式1
比如要实现数据的导出,直接可以指定生成的文件使用outfile即可。对于空值的处理是“\N"
mysql> select * from test into outfile '/u02/mysql/dump/a.sql';
Query OK, 4 rows affected (0.00 sec)
1       aaaa
2       bbbb
3       c
4       \N
--数据导出 方式2
如果需要导出某个数据库下的表结构和数据,使用mysqldump也是不错的选择。生成的文件中,.txt是对应的数据,.sql是对应的表结构sql。
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test           |
| test1          |
+----------------+
2 rows in set (0.00 sec)
mysqldump -T /u02/mysql/dump -u root test
导出后查看目录结构。
[mysql@oel1 dump]$ ll
total 8
-rw-r--r-- 1 mysql dba 1338 Apr 11 22:39 test1.sql
-rw-rw-rw- 1 mysql dba    0 Apr 11 22:39 test1.txt
-rw-r--r-- 1 mysql dba 1364 Apr 11 22:39 test.sql
-rw-rw-rw- 1 mysql dba    0 Apr 11 22:39 test.txt
--数据导出 方式3
这种方式,直接把sql语句通过参数传入,确实很赞。注意这个时候生成的空值是NULL,而不是"\N"
[mysql@oel1 dump]$ mysql -u root --execute="select *from test;" test > aa.sql
[mysql@oel1 dump]$ cat aa.sql
id      name
1       aaaa
2       bbbb
3       c
4       NULL
[mysql@oel1 dump]$ cat ../a.sql
1       aaaa
2       bbbb
3       c
4       \N
--数据导出 方式4
如果这个时候需要导出的表中列较多,可以通过键值对的方式纵向显示。可读性就大大增强了。比如下面的方式。
[mysql@oel1 dump]$ mysql -u root --vertical --execute="select *from test;" test > aa.sql
[mysql@oel1 dump]$ cat aa.sql
*************************** 1. row ***************************
  id: 1
name: aaaa
*************************** 2. row ***************************
  id: 2
name: bbbb
*************************** 3. row ***************************
  id: 3
name: c
*************************** 4. row ***************************
  id: 4
name: NULL

注意这个时候,我指定sql语句以”;"结尾,和不加结尾符的效果是一样的,可见这个时候还是有一定的健壮性。
[mysql@oel1 dump]$ mysql -u root --vertical --execute="select *from test" test > aa.sql
[mysql@oel1 dump]$ cat aa.sql
*************************** 1. row ***************************
  id: 1
name: aaaa
*************************** 2. row ***************************
  id: 2
name: bbbb
*************************** 3. row ***************************
  id: 3
name: c
*************************** 4. row ***************************
  id: 4
name: NULL

--数据导出 方式5
如果需要导出的数据为html格式,也很清晰。直接调用-html选项即可。
mysql -u root --html --execute="select *from test" test > aa.html
mysql@oel1 dump]$ cat aa.html

id name
1 aaaa
2 bbbb
3 c
4 NULL

[mysql@oel1 dump]$ 
--数据导出 方式6
如果指定导出数据格式为xml,直接调用-xml选项即可。
[mysql@oel1 dump]$ mysql -u root --xml --execute="select *from test" test > aa.html
[mysql@oel1 dump]$ cat aa.html

 
        1
        aaaa
 
 
        2
        bbbb
 
 
        3
        c
 
 
        4
       
 

--数据导出 方式7
如果希望把数据的结果缓存出来,使用-tee也是一种选择,这种方式会导出所有的操作结果,可以根据自己的需要来做导出。
mysql> tee a.log
Logging to file 'a.log'
mysql> select *from test;
Empty set (0.00 sec)
mysql> select *from test1;
Empty set (0.00 sec)
mysql> notee;
Outfile disabled.
这个时候会把sql和对应的数据结果都生成在日志里面。

--数据导入 方式1
数据的导入可以在mysql命令里面使用load data的方式来实现,也是比较轻巧的。
mysql> load data infile '/u02/mysql/dump/a.sql'  into table test.test ;
Query OK, 4 rows affected (0.01 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0
mysql> select *from test;
+------+------+
| id   | name |
+------+------+
|    1 | aaaa |
|    2 | bbbb |
|    3 | c    |
|    4 | NULL |
|    1 | aaaa |
|    2 | bbbb |
|    3 | c    |
|    4 | NULL |
+------+------+
8 rows in set (0.00 sec)
--数据导入 方式2
数据导入还可以使用mysqlimport来实现,比如我们需要导入的表为test,数据文件为test.txt 
 [mysql@oel1 dump]$  mysqlimport -u root test '/u02/mysql/dump/test.txt'
test.test: Records: 0  Deleted: 0  Skipped: 0  Warnings: 0

时间: 2024-10-02 14:20:27

MySQL数据导入导出牛刀小试的相关文章

MySQL数据导入导出方法与工具介绍(1- myslqimport utility)

mysql|数据             MySQL数据导入导出方法与工具介绍(1- myslqimport utility)              mysqlimport文本文件导入工具介绍 翻译声明:    本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski      英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻译的不妥或者不正确的地

MySQL数据导入导出方法与工具介绍(2-import from sql files)

mysql|数据    MySQL数据导入导出方法与工具介绍(2-import from sql files)          批处理导入文件,从sql文件导入数据到数据库中 翻译声明:    本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski    英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻译的不妥或者不正确的地方,请指正. 翻译者:D

MySQL数据导入导出方法与工具介绍(3-Exporting Data)

mysql|数据                MySQL数据导入导出方法与工具介绍(3-Exporting Data)                  导出数据的方法:Methods of Exporting Data 翻译声明:    本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski    英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻

MySQL数据导入导出实例教程手册

mysqldump是mysql自带的一个数据导入导出工具,其官方注释为: shell> mysqldump [options] db_name [tbl_name ...] shell> mysqldump [options] –databases db_name - shell> mysqldump [options] –all-databases 使用mysqldump命令将整个数据库导出  代码如下 复制代码 mysqldump -h 127.0.0.1 -P 3306 -u ro

MySQL数据导入导出乱码问题

场景 程序使用gbk编码,表使用的是latin1编码,而我再一次倒入数据的操作中使用了utf8的终端,指定--default-character-set='latin1'倒入的数据是乱码,而后来将终端换成gbk之后酒倒入成功了 通过变换插入数据的终端,模拟我们平常需要倒入数据的终端 通过变更查询数据的终端,来模拟我们程序的查询操作 default-character-set变更能够正确的读取中文字符 测试环境 mysql server和Linux是utf8的字符集 使用xshell作为终端进行输

MySQL数据导入导出工具mysqlimport简介

mysql|数据        1).mysqlimport的语法介绍: mysqlimport位于mysql/bin目录中,是mysql的一个载入(或者说导入)数据的一个非常有效的工具.这是一个命令行工具.有两个参数以及大量的选项可供选择.这个工具把一个文本文件(text file)导入到你指定的数据库和表中.比方说我们要从文件Customers.txt中把数据导入到数据库Meet_A_Geek中的表Custermers中: mysqlimport Meet_A_Geek Customers.

MySQL数据导入导出方法与工具介绍(1)

mysql|数据  翻译声明:     本文内容来自Sam's Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski      英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻译的不妥或者不正确的地方,请指正.-AsobP  翻译者:David Euler,SCU. de_euler-david@www.yahoo.com.cn  时间:2004/04/24于川大-Aso

MySQL数据导入导出方法与工具介绍

翻译声明:本文内容来自Sams Teach Yourself MySQL in 21 Days一书的部分内容,by Mark Maslakowski 英文原文版权属原作者所有,中文的部分翻译有略有增删;原书讲的过于清楚的地方有删,讲的不清楚的地方有增:如果有翻译的不妥或者不正确的地方,请指正. 翻译者:David Euler,SCU. de_euler-david@www.yahoo.com.cn 时间:2004/04/24于川大 1).mysqlimport的语法介绍 mysqlimport位

Mysql数据导入导出

导出导入数据库 导出 mysqldump方法 mysqldump -u用户名 -p密码名 database [table]> 目标文件 导入 mysql -uroot -proot use database source 目标文件: PS: 这种方法是导出整个表数据,并且带着建表信息,假如导入的数据库有同名的表,会被替换 PS: 可以添加条件 mysql -uroot -proot [-n] [-t] [-d] database [table]>name  -t 不包含创建表的信息 -d不包含