共計 1455 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章給大家介紹 Mysql 中有哪些導出數據的方式,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
具體語法如下:
【select 語句】into outfile【導出文件名】【導出參數】
【select 語句】是經典的查詢 SQL,可以指定列、可以有 where 條件、group、order、limit 等。
【導出文件名】是目標文件的完整路徑。由于 mysql 賬戶的權限問題,通常我們會將文件導出到臨時目錄,如 /tmp/mysql/user/201810.csv
【導出參數】
fields terminated by str:設置字段之間的分隔符,默認值是 \t。
fields enclosed by char:設置包括住字段的值的符號,如單引號、雙引號等,默認情況下不使用任何符號。
fields optionally enclosed by char:設置括住 CHAR、VARCHAR 和 TEXT 等字符型字段的分隔符,默認情況下不使用任何符號。
fields escaped by char:設置轉義字符,默認值為 \。
lines starting by str:設置每行數據開頭的字符,可以為單個或多個字符。默認情況下不使用任何字符。
lines terminated by char:設置每行數據結尾的字符,可以為單個或多個字符。默認值是 \n。
譬如:
select * from platform_user into outfile /tmp/mysql/user/201810.csv
fields terminated by ,
enclosed by
lines starting by \r
terminated by \n
如果導出的數據,涉及到中文,打開 csv 可能會看到亂碼。處理亂碼,首先要確保數據庫支持中文(通常設置 UTF8 編碼即可)
vim /etc/my.cnf, 添加如下幾個選項:
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
[mysql]
default-character-set=utf8
即便數據庫已經是 utf8,導出的文件 download 本地依然可能有亂碼,在服務器上 less,tail 看到的結果都是正常的?
在本地環境(windows)用記事本打開 csv,另存編碼格式 ANSI 即可,這是由于 excel 的編碼格式決定的。
Part2 mysqldump 導出數據
作為開發人員或者運維人員,mysqldump 使用的頻率更高,因為它能做的事情更多。mysqldump 屬于邏輯備份工具,因為它導出的是結果,多以 SQL 的形式展示,并不記錄數據的變化過程。關于物理備份,可以參照一本名為“MySQL 技術內幕”的書籍,其中有詳細的描述。
mysqldump 的語法很簡單,即
mysqldump 【options】 dump.sql
但是 options 的可選參數卻很多,手冊上將他分了幾大類,鏈接 option、文件 option、數據定義 DDL option、Debug option、國際化 option、集群 Replication option、格式 option、性能 option、事務 option 等。感興趣的同學可以參照 MYSQL 官方手冊的定義,這里僅介紹幾種常見的應用場景。
關于 Mysql 中有哪些導出數據的方式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向 AI 問一下細節