預備閱讀:MySQL中的主鍵問題和賦權限問題
今天來講一下在MySQL中導入和導出CSV格式數據的操作。
CSV格式數據
逗号分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗号),其文件以純文本形式存儲表格數據(數字和文本)。純文本意味着該文件是一個字符序列,不含必須像二進制數字那樣被解讀的數據。
CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗号或制表符。通常,所有記錄都有完全相同的字段序列。
CSV是一種通用的、相對簡單的文件格式,被用戶、商業和科學廣泛應用。最廣泛的應用是在程序之間轉移表格數據,而這些程序本身是在不兼容的格式上進行操作的(往往是私有的和/或無規範的格式)。因為大量程序都支持某種CSV變體,至少是作為一種可選擇的輸入/輸出格式。
“CSV”并不是一種單一的、定義明确的格式(盡管RFC 4180有一個被通常使用的定義)。因此在實踐中,術語“CSV”泛指具有以下特征的任何文件:
純文本,使用某個字符集,比如ASCII、Unicode、EBCDIC或GB2312;
由記錄組成(典型的是每行一條記錄);
每條記錄被分隔符分隔為字段(典型分隔符有逗号、分号或制表符;有時分隔符可以包括可選的空格);
每條記錄都有同樣的字段序列。
MySQL中導入CSV格式數據
設置表結構:
字段名MMSI類型為int,Record_Datetime 類型為int,目标字段名,類型,就按照上圖設置。
下面開始插入數據:
Windows下:
LOAD DATA INFILE 'C:\\Users\\Administrator\\Desktop\\test\\test.csv'
INTO TABLE `csvmysql`
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\n';
查看結果:
原本為空表的csvmysql,現在已經有了100多萬行數據,插入數據成功。
Linux下:
LOAD DATA INFILE
'/tmp/test.csv'
INTO TABLE 'csvmysql'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n';
PS.如果運行上面的結果報錯,#1290 – The MySQL server is running with the –secure-file-priv option so it cannot execute this statement。
解決辦法:
1、配置文件中将這行注釋“secure-file-priv=”datadir=”D:\AppServ/MySQL/Uploads””(根據環境不同,路徑不同,直接打開my.ini搜索secure-file-priv注釋即可);很多人添加權限依然不行就是因為這行沒有添加;
注意:加完後一定要重啟mysql;
2、賦權限
詳情請看MySQL中的主鍵問題和賦權限問題
MySQL中導出CSV格式數據
查詢語句:
--Windows下:
SELECT *
INTO OUTFILE "f:\\out.csv"
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM csvmysql;
--Linux下:
SELECT *
INTO OUTFILE "/tmp/out.csv"
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM csvmysql;
然後在我的F盤下面出現了out.csv文件,打開查看和數據庫中數據一緻。
以上就是在MySQL中導入導出CSV格式數據的方法。
希望通過上面的操作能幫助大家解決插入數據出現的一些問題。如果你有什麼好的意見,建議,或者有不同的看法,我都希望你留言和我們進行交流、讨論。
如果想快速聯系我,歡迎關注AiryData。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!