### 4.5.1 `mysql` — MySQL 命令行客戶端
[**mysql**](https://dev.mysql.com/doc/refman/8.0/en/mysql.html) 時帶有輸入行編輯功能的簡單 SQL shell. 它支持交互式和非交互式使用. 當用于交互式時, 查詢結果以 ASCII表格式顯示. 當非交互式使用時(例如, 作為過濾器), 結果以制表符分隔的格式顯示. 可以使用命令選項來更改輸出格式.
如果因為獲取大的結果集導致內存不足從而程序出現問題, 可使用 [`--quick`](https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_quick) 選項. 會強制 [**mysql**](https://dev.mysql.com/doc/refman/8.0/en/mysql.html) 一行一行地從服務器檢索結果, 而不是檢索整個結果, 然后在顯示之前一直在內存中緩存. 這是通過使用 client/server 類庫中的 [`mysql_use_result()`](https://dev.mysql.com/doc/refman/8.0/en/mysql-use-result.html) C API 函數返回結果集, 而不是 [`mysql_store_result()`](https://dev.mysql.com/doc/refman/8.0/en/mysql-store-result.html).
> **注意**
>
> 另外, MySQL Shell 提供了對 X DevAPI 的訪問. 有關詳情, 參閱 [MySQL Shell 8.0 (MySQL 8.0 部分)](https://dev.mysql.com/doc/mysql-shell/8.0/en/).
使用 [**mysql**](https://dev.mysql.com/doc/refman/8.0/en/mysql.html) 非常容易. 從命令解釋器的提示符調用它, 如下所示:
```bash
shell> mysql db_name
```
或者:
```bash
shell> mysql --user=user_name --password db_name
Enter password: your_password
```
然后輸入一個SQL語句, 以 `;`, `\g`, 或者 `\G` 結束, 然后按 Enter 鍵.
如果存在語句, 鍵入 **Control+C** 會中斷當前語句, 否則取消任何部分的輸入行.
你可以在腳本文件(批處理文件)中執行 SQL 語句, 如下所示:
```bash
shell> mysql db_name < script.sql > output.tab
```
在 Unix 上, [**mysql**](https://dev.mysql.com/doc/refman/8.0/en/mysql.html) 客戶端記錄可交互式的執行語句到一個歷史文件中. 參閱 [Section 4.5.1.3, “mysql 客戶端日志”](https://dev.mysql.com/doc/refman/8.0/en/mysql-logging.html).
- 簡介
- 前言和法律條款
- 安裝和更新 MySQL
- 在 Linux 上安裝 MySQL
- 在 Linux 上使用 APT 庫安裝 MySQL
- 在 Linux 上使用 Docker 部署 MySQL
- 使用 Docker 部署 MySQL 服務器的基本步驟
- 使用 Docker 部署 MySQL 服務器的更多主題
- 教程
- 連接到服務器和從服務器斷開
- 輸入查詢
- 創建和使用數據庫
- 創建和選擇數據庫
- 創建表
- 將數據加載到表中
- 從表中檢索數據
- 選擇所有數據
- 選擇特定行
- 選擇指定列
- 行排序
- 日期計算
- 處理 NULL 值
- 模式匹配
- 計算行數
- 使用多個表
- 獲取數據庫和表的信息
- 在批處理模式使用 mysql
- 常見查詢示例
- 列的最大值
- 包含某一行最大值的記錄
- 每組中列的最大值
- 擁有某個字段的組間最大值的行
- 使用用戶自定義變量
- 使用外鍵
- 兩個鍵上搜索
- 計算每日訪問量
- 使用 AUTO_INCREMENT
- 在 Apache 中使用 MySQL
- MySQL 程序
- MySQL 客戶端程序
- mysql — MySQL 命令行客戶端
- 優化
- 優化概述
- 優化 SQL 語句
- 優化和索引
- 優化數據庫結構
- 優化 InnoDB 表
- 優化 MyISAM 表
- 優化 MEMORY 表
- 理解查詢執行計劃
- 控制查詢優化器
- 緩沖和緩存
- 優化鎖操作
- 優化 MySQL 服務器
- 測量性能 (Benchmarking)
- 檢查線程信息