mysql 查询结果导入文件或excel 文件导入数据库

查询结果导入文件或excel
方法1
进入mysql服务器中

select * from www limit 1000  into outfile  '/xusy/www.xls';

注意文件名外有单引号
如果方法1不行,当连接外部服务器

方法2
直接进行操作

mysql  -utest -p123456 -h10.1.5.8 -P3306 -e"select * from his limit 1000 " pop> /xusy/1000line.xls; 

注意连接参数4个要全,还有加-e

如果是文件,则为.txt,如果为excel,则为.xls

文件导入数据库
LOAD DATA INFILE 语句以非常高的速度从文本文件中读取行到表中。
当从一个文本文件装载一个表时,使用LOAD DATA INFILE。这通常比使用很多INSERT语句快20倍。
详情可见
http://blog.itpub.net/28218939/viewspace-2139664/

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name,...)]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]

复制代码
举例:

复制代码

> delete from e;
> load data infile "/data/mysql/e.sql" into table e fields terminated by ',';
Query OK, 3 rows affected (0.01 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

> select * from e;
+------+-------+-------+
| id   | fname | lname |
+------+-------+-------+
| 1669 | Jim   | Smith |
|  337 | Mary  | Jones |
| 2005 | Linda | Black |
+------+-------+-------+

复制代码
因为我们前面指定的分隔符是 ‘,’,load data 时也要指定分隔符,否则也会报错:

> load data infile "/data/mysql/e.sql" into table e;
ERROR 1265 (01000): Data truncated for column 'id' at row 1

如果数据被某种符号封闭着,需要指定 ‘ fields enclosed by ’ :

复制代码
cat e.sql

"1669"  "Jim"   "Smith"
 > load data infile "/data/mysql/e.sql" into table e;
 ERROR 1366 (HY000): Incorrect integer value: '"1669"' for column 'id' at row 1

 > load data infile "/data/mysql/e.sql" into table e fields enclosed by '"'; 
 Query OK, 1 row affected (0.01 sec)
 Records: 1 Deleted: 0 Skipped: 0 Warnings: 0

复制代码
如上所示,数据被双引号封闭着,如果直接执行,会报错。

另外还有一些格式上的限制,如 LINES TERMINATED BY ‘string’ ,指定 file 的换行符,如 ‘\n’ 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值