MySQL INTO OUTFILE和LOAD DATA INFILE用法
【匯出】:
基本語法:
SELECT ... FROM table_name INTO OUTFILE '/tmp/test.txt';
或者
SELECT ... INTO OUTFILE '/tmp/test.txt' FROM table_name;
匯出文件如下:
可以看出,每條記錄以回車換行為界,每個欄位以tab為界,這是outfile的預設分界符。
![](https://i.iter01.com/images/bc6b236dee4caac4209fdf33a653e3681f3a029212deeb4deedd4cc2e4632459.png)
如果想自定義欄位的分隔符、每條記錄的分隔符、還有每條欄位的包裹符,可以通過加引數來實現。
以第一種匯入方式為例(SELECT ... FROM table_name INTO OUTFILE '/tmp/test.txt'):
FIELDS TERMINATED BY 用於設定欄位的分隔符
OPTIONAALY ENCLOSED BY 用於設定欄位由什麼符號包裹
LINES TERMINATED BY 用於設定每條記錄分隔符,比如\n意為換行,\r為回車
![](https://i.iter01.com/images/9ca7ddc198769e1529a93c954b48a2759d442ec8cf0cffa5f6db3279ab23d890.png)
【匯入】:
基本語法:
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE table_name ;
完整語法:
根據不同的file分隔符、換行符等不同,可以加上不同的引數:
比如
如果要忽略,可以IGNORE n LINES,代表忽略前n行。
上述詳細語法已經給出。(詳細語法摘自MySQL 5.6 Reference Manual)
---------------------------- 更新
mysqldump也也有等同into outfile的引數:
比如
預設會在當前目錄下生成一個 $tb_name.txt 的檔案
等同於
作者公眾號(持續更新)
![](https://i.iter01.com/images/f8c145a871c2cde624036fb0592121bfa8067d5a880503117dfe314f0d910224.png)
基本語法:
SELECT ... FROM table_name INTO OUTFILE '/tmp/test.txt';
或者
SELECT ... INTO OUTFILE '/tmp/test.txt' FROM table_name;
-
mysql> SELECT field_name FROM Country INTO OUTFILE '/tmp/test.txt';
- Query OK, 239 rows affected (0.00 sec)
- mysql> SELECT field_name INTO OUTFILE '/tmp/Country2.txt' FROM Country;
- Query OK, 239 rows affected (0.00 sec)
可以看出,每條記錄以回車換行為界,每個欄位以tab為界,這是outfile的預設分界符。
![](https://i.iter01.com/images/bc6b236dee4caac4209fdf33a653e3681f3a029212deeb4deedd4cc2e4632459.png)
如果想自定義欄位的分隔符、每條記錄的分隔符、還有每條欄位的包裹符,可以通過加引數來實現。
以第一種匯入方式為例(SELECT ... FROM table_name INTO OUTFILE '/tmp/test.txt'):
- mysql> SELECT * FROM Country INTO OUTFILE '/tmp/test.txt'
- -> FIELDS TERMINATED BY ','
- -> OPTIONALLY ENCLOSED BY '"'
- -> LINES TERMINATED BY '\n';
FIELDS TERMINATED BY 用於設定欄位的分隔符
OPTIONAALY ENCLOSED BY 用於設定欄位由什麼符號包裹
LINES TERMINATED BY 用於設定每條記錄分隔符,比如\n意為換行,\r為回車
![](https://i.iter01.com/images/9ca7ddc198769e1529a93c954b48a2759d442ec8cf0cffa5f6db3279ab23d890.png)
【匯入】:
基本語法:
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE table_name ;
完整語法:
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,...]
根據不同的file分隔符、換行符等不同,可以加上不同的引數:
比如
-
LOAD DATA INFILE '/tmp/test.txt' INTO TABLE table_name
-
FIELDS
-
TERMINATED BY ','
-
ENCLOSED BY '"'
-
LINES
- TERMINATED BY '\r';
上述詳細語法已經給出。(詳細語法摘自MySQL 5.6 Reference Manual)
---------------------------- 更新
mysqldump也也有等同into outfile的引數:
比如
- mysqldump -u -p --no-create-info --tab=. --fields-terminated-by=, --fields-optionally-enclosed-by=\" $db_name $tb_name
預設會在當前目錄下生成一個 $tb_name.txt 的檔案
等同於
-
SELECT * FROM $db_name.$tb_name
-
INTO OUTFILE '/tmp/$tb.name'
- FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
作者公眾號(持續更新)
![](https://i.iter01.com/images/f8c145a871c2cde624036fb0592121bfa8067d5a880503117dfe314f0d910224.png)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1795089/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- load data infile ERROR 1045 (28000)Error
- 使用 LOAD DATA LOCAL INFILE,sysbench 導數速度提升30%
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- MySQL load data載入資料MySql
- MySQL的文字匯入之load data localMySql
- Lua——load和loadstring函式用法函式
- Mysq-造數工具mysql_random_data_loadMySqlrandom
- 異構資料庫資料遷移 oracle to mysql之oracle sqlloader和mysql load data資料庫OracleMySql
- load data是一個事務的
- 故障分析 | MySQL 使用 load data 匯入資料錯誤的一個場景MySql
- JavaWeb開發之load-on-startup用法JavaWeb
- GreatSQL 並行Load Data加快資料匯入SQL並行
- Python中dumps, loads dump, load用法詳解Python
- Navicat、into outfile、mysql命令、mysqldump、mysqlpump、mydumper匯出匯入資料MySql
- mysql load 相關實驗MySql
- MySQL data pageMySql
- SQLserver-MySQL的區別和用法ServerMySql
- MySQL load xml載入資料MySqlXML
- @Query註解的用法(Spring Data JPA)Spring
- select into outfile問題一則
- mysql load 相關實驗記錄MySql
- Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'MySql
- 非空校驗在oracle和mysql中的用法OracleMySql
- Data Volume 練習 MySQLMySql
- 圖解JanusGraph系列 - 關於JanusGraph圖資料批量快速匯入的方案和想法(bulk load data)圖解
- MySQL 中 WITH ROLLUP 用法MySql
- Mysql LIMIT的用法MySqlMIT
- Runtime原始碼 +load 和 +initialize原始碼
- NSObject 的 initialize 和 load 方法Object
- load和loads的區別
- 5.7 與 8.0 對相同檔案的 LOAD DATA 語句結果不同
- 使用SELECT…INTO OUTFILE匯出文字檔案
- +load和+initialize方法呼叫時機
- MYSQL中replace into的用法MySql
- MySQL中limit的用法MySqlMIT
- mysql insert的特殊用法MySql
- MySQL實現Split用法MySql
- mySQL中replace的用法MySql
- MySQL - DDL詳解(Data Definition Language)MySql