首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 命令列執行 SQL 的五種方式總結

     編輯:MySQL 資料庫相關知識

MySQL 客戶端 mysql 提供多種執行 SQL 的途徑,適用於互動查詢、腳本自動化、結果導出、定時任務等不同場景。本文總結五種核心方式與最佳實踐。

1. 互動模式直接輸入

mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2024-01-15 14:30:00 |
+---------------------+

適用:臨時驗證、DDL 操作、探索性查詢。

2. 執行 SQL 腳本檔

mysql> SOURCE /path/to/script.sql;
# 或啟動時指定
mysql -u root -p db_name < /path/to/script.sql

適用:結構部署、批量資料導入、版本控管的遷移腳本。

3. SELECT ... INTO OUTFILE 導出結果

SELECT * FROM users INTO OUTFILE '/tmp/users.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

**注意**:輸出目錄需 MySQL 服務進程有寫入權限(通常受 secure_file_priv 限制),檔案不可覆蓋。

4. 命令列單條執行 (-e)

mysql -u root -p -e "SELECT VERSION();"
# 批量多條用分號分隔
mysql -u root -p -e "USE db; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t2;"

適用:Shell 腳本嵌入、監控採集、CI/CD 流程。

5. 批次模式:標準輸入輸出重導向

# 執行腳本並保存結果
mysql -u root -p db_name < /path/script.sql > /path/result.txt 2>&1

# 只保存查詢結果(-N 隱藏列名)
mysql -u root -p db_name -e "SELECT * FROM t" -N > /path/data.txt

**進階**:結合系統排程 (cron / Windows Task Scheduler) 實現「定時執行 SQL + 結果歸檔」。

方式對比與選擇建議

方式互動性自動化友好結果處理典型場景
互動模式高低終端顯示開發調試、臨時查詢
SOURCE / < 腳本無高可重導向部署遷移、批量導入
INTO OUTFILE無中服務端寫檔大量資料導出 CSV/TSV
-e 參數無高標準輸出Shell 嵌入、單條監控
批次重導向無最高檔案/管道定時任務、ETL、報表生成

官方文檔參考

3.5 Using mysql in Batch Mode

常用參數速查

  • -N, --skip-column-names:不輸出列名
  • -s, --silent:靜默模式(Tab 分隔,適合程式解析)
  • -r, --raw:原始輸出(不轉義 \n \t 等)
  • --xml:XML 格式輸出
  • --html:HTML 表格輸出
  • --default-character-set=utf8mb4:指定連線字元集,防亂碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved