mysql 查詢結果匯入檔案或excel 檔案匯入資料庫
阿新 • • 發佈:2018-10-31
查詢結果匯入檔案或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’ 。