最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL?如何將查詢結(jié)果導(dǎo)出到文件(select?…?into?Statement)

 更新時間:2024年08月27日 10:34:28   作者:V1ncent?Chen  
我們經(jīng)常會遇到需要將SQL查詢結(jié)果導(dǎo)出到文件,以便后續(xù)的傳輸或數(shù)據(jù)分析的場景,本文就MySQL中select…into的用法進行演示,感興趣的朋友跟隨小編一起看看吧

我們經(jīng)常會遇到需要將SQL查詢結(jié)果導(dǎo)出到文件,以便后續(xù)的傳輸或數(shù)據(jù)分析的場景。為了滿足這個需求,MySQL的select語句提供了into子句可以將的查詢結(jié)果直接導(dǎo)出到文本文件。本文就MySQL中select…into的用法進行演示。

一、select…into語句簡介

select…into語句不僅僅能夠?qū)⒉樵兘Y(jié)果導(dǎo)出到csv文件,實際上它有3種用法:

  • select … into @var_list from …. 將查詢結(jié)果寫入到一組變量
  • select … into outfile from …. 將數(shù)據(jù)寫入操作系統(tǒng)文件,可以自定義數(shù)據(jù)格式(分隔符、包裹符、轉(zhuǎn)義符、換行符等)。
  • select … into dumpfile from …. 將單一行寫入文件,沒有任何格式化

1.1 基本語法

根據(jù)官方文檔,into子句可以出現(xiàn)在以下3個位置。雖然3個位置都符合語法,但select語句中至多只能有1個into語句(位置三選一):

  • 查詢字段之后,from子句前
  • 鎖定子句前(未來版本即將廢棄)
  • 語句的最后

這里推薦將into子句放在位置3,即語句的末尾,這樣相對普通的select語句更為接近,更容易理解,后面的示例也將采用這種寫法。

二、用法示例

下面演示into子句三種用法。

2.1 將查詢結(jié)果保存到變量

into子句的一個常用場景就是將查詢結(jié)果暫時保存到變量中,以便后續(xù)查詢或使用,唯二要注意的點是變量的數(shù)量要和返回列數(shù)量匹配,并且最多只能返回一行數(shù)據(jù)。

以示例數(shù)據(jù)庫employees中的employees表為例,查詢3個結(jié)果,分別保存到3個變量中:

select emp_no,first_name,hire_date from employees limit 1 into @emp_no, @first_name, @hire_date;
select @emp_no, @first_name, @hire_date;

這里用limit 1子句限制返回的結(jié)果只有1行,否則會報錯。

2.2 將查詢結(jié)果保存到文本文件

into outfile子句可以將查詢結(jié)果導(dǎo)出到文本文件,雖然并不一定要是CSV格式,但大多數(shù)情況下我們都會選擇這種格式。

要將MySQL中的數(shù)據(jù)寫入到操作系統(tǒng)的文件中, 首先需要具有FILE權(quán)限。而且為了安全需要配置參數(shù)secure_file_priv,這個參數(shù)是限制MySQL可以寫入文件的目錄:

show variables like 'secure_file_priv';

我們在普通的select語句最后添加into outfile ‘/path/file_name’;即可將查詢結(jié)果寫入文件,這里的path就是參數(shù)secure_file_priv定義的目錄(文件不能已存在):

select *from employees where emp_no<=10010 into outfile '/opt/mysql8.0.35/mysql-files/employees.txt';

下面是導(dǎo)出文件內(nèi)容,其實into outfile文件還隱式在后面附件了2個子句:

fields terminated by '\t' enclosed by '' escaped by '\\'
lines terminated by '\n' starting by ''

  • fields 表示字段屬性,terminated by ‘\t’ 以制表符分割字段,enclosed by ‘’ 不包裹字段,escaped by ‘\\’ 反斜線表示轉(zhuǎn)義符(這里2個反斜線,第一個是轉(zhuǎn)義符,第二個是反斜線)
  • lines 表示行屬性,terminated by ‘\n’ \n代表換行符,starting by ‘’ 行的起點字符是空。

如果要導(dǎo)出CSV格式的文件,并且以雙引號"包裹字段,那么只需要增加一個fields terminated by ‘,’ enclosed by '"'子句即可,其他的保持默認:

select *from employees where emp_no<=10010 into outfile '/opt/mysql8.0.35/mysql-files/employees.csv' fields terminated by ',' encolsed by '"';

可以看到這次導(dǎo)出結(jié)果就是以逗號分割,以雙引號包裹字段的數(shù)據(jù):

2.3 將查詢結(jié)果保存到dumpfile

into dumpfile 子句可以將一行數(shù)據(jù)導(dǎo)出到文件,但是它不會做任何的分割,格式的定義,轉(zhuǎn)義等操作。相對應(yīng)用場景較少,這個操作通常用于將大型的BLOB字段保存到文件中,了解即可:

select *from employees limit 1 into dumpfile '/opt/mysql8.0.35/mysql-files/employees.dump';

注意select語句只能返回一行結(jié)果,否則會報錯。

導(dǎo)出的結(jié)果如下,可以看到數(shù)據(jù)沒有任何分隔,都連在了一起,連換行都沒有(提示符和數(shù)據(jù)顯示在同一行):

到此這篇關(guān)于MySQL 將查詢結(jié)果導(dǎo)出到文件(select … into Statement)的文章就介紹到這了,更多相關(guān)mysql查詢結(jié)果導(dǎo)出到文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL:reading initial communication packet問題解決方法

    MySQL:reading initial communication packet問題解決方法

    網(wǎng)站訪問出現(xiàn)如題錯誤,經(jīng)過檢查my.cnf,發(fā)現(xiàn)innodb_buffer_pool_size = 2048M 設(shè)置過大,調(diào)整為innodb_buffer_pool_size = 1024M即可,網(wǎng)上也有該問題的其他解決方法,但都不能解決我的問題
    2012-07-07
  • 詳解mysql數(shù)據(jù)去重的三種方式

    詳解mysql數(shù)據(jù)去重的三種方式

    本文主要介紹了mysql數(shù)據(jù)去重的三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • MySQL中varchar和char類型的區(qū)別

    MySQL中varchar和char類型的區(qū)別

    VARCHAR和CHAR是兩種最主要的字符串類型。那么MySQL中varchar和char類型的區(qū)別是什么,本文就具體來介紹一下,感興趣的可以了解一下
    2021-11-11
  • mysql中l(wèi)imit用法詳解及注意事項總結(jié)

    mysql中l(wèi)imit用法詳解及注意事項總結(jié)

    mysql數(shù)據(jù)庫中l(wèi)imit子句可以被用于強制select語句返回指定的記錄數(shù),這篇文章主要介紹了mysql中l(wèi)imit用法詳解及注意事項的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2026-01-01
  • MySQL慢查詢?nèi)罩局械腖ock_time由來解析

    MySQL慢查詢?nèi)罩局械腖ock_time由來解析

    這篇文章主要為大家介紹了慢查詢?nèi)罩局蠰ock_time的由來解析,以及Lock_time?包含哪些鎖等待時間、以及是怎么計算得到的,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-06-06
  • linux CentOS6.5 yum安裝mysql5.6

    linux CentOS6.5 yum安裝mysql5.6

    這篇文章主要為大家詳細介紹了linux CentOS6.5 yum安裝mysql5.6的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MySQL庫與表的DDL核心操作實戰(zhàn)案例

    MySQL庫與表的DDL核心操作實戰(zhàn)案例

    本文詳細介紹了MySQL數(shù)據(jù)庫和表的創(chuàng)建、修改、備份、刪除等操作,涵蓋了字符集選擇、表結(jié)構(gòu)設(shè)計、備份恢復(fù)等核心知識點,通過實際案例,讀者可以掌握精準操作,避免數(shù)據(jù)丟失,提升開發(fā)效率,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • MySQL 序列 AUTO_INCREMENT詳解及實例代碼

    MySQL 序列 AUTO_INCREMENT詳解及實例代碼

    這篇文章主要介紹了MySQL 序列 AUTO_INCREMENT詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • MySQL常見的底層優(yōu)化操作教程及相關(guān)建議

    MySQL常見的底層優(yōu)化操作教程及相關(guān)建議

    這篇文章主要介紹了MySQL常見的底層優(yōu)化操作教程及相關(guān)建議,包括對運行操作系統(tǒng)的硬件方面及存儲引擎參數(shù)的調(diào)整等零碎方面的小整理,需要的朋友可以參考下
    2015-12-12
  • SQLyog錯誤號碼2058最新解決辦法

    SQLyog錯誤號碼2058最新解決辦法

    這篇文章主要給大家介紹了關(guān)于SQLyog錯誤號碼2058的最新解決辦法,使用sqlyog連接數(shù)據(jù)庫過程中可能會出現(xiàn)2058錯誤,出現(xiàn)的原因是因為MYSQL8.0對密碼的加密方式進行了改變,需要的朋友可以參考下
    2023-08-08

最新評論

吴堡县| 达州市| 彩票| 青海省| 惠水县| 濉溪县| 修水县| 涞源县| 原阳县| 肃南| 新民市| 伊宁县| 鄄城县| 咸丰县| 浙江省| 芒康县| 泰州市| 天台县| 喀什市| 五峰| 达尔| 方正县| 常山县| 曲阜市| 广丰县| 铜梁县| 沁水县| 新平| 台南市| 伽师县| 东兰县| 江陵县| 黄山市| 抚宁县| 无极县| 宁城县| 延安市| 周口市| 石河子市| 湖南省| 木里|