MySQL Shell 可以執行 SQL、JavaScript 或 Python 程式碼,但一次只能啟用一種語言。活動模式決定了如何處理執行的陳述式
如果使用 SQL 模式,陳述式會被處理為 SQL,這表示它們會被傳送到 MySQL 伺服器執行。
如果使用 JavaScript 模式,陳述式會被處理為 JavaScript 程式碼。
如果使用 Python 模式,陳述式會被處理為 Python 程式碼。
MySQL Shell 使用 Python 3。對於包含系統支援安裝的 Python 3 的平台,MySQL Shell 會使用可用的最新版本,最低支援版本為 Python 3.4.3。對於未包含 Python 3 的平台,MySQL Shell 會捆綁 Python 3.7.4。MySQL Shell 維持與 Python 2.6 和 Python 2.7 的程式碼相容性,因此如果您需要這些較舊的版本之一,可以使用適當的 Python 版本從原始碼建置 MySQL Shell。
在互動模式下執行 MySQL Shell 時,輸入命令來啟用特定語言:\sql
、\js
、\py
。
在批次模式下執行 MySQL Shell 時,傳遞以下任何命令列選項來啟用特定語言:--js
、--py
或 --sql
。如果未指定任何選項,則預設模式為 SQL。
使用 MySQL Shell 將檔案 code.sql
的內容以 SQL 執行。
$> mysqlsh --sql < code.sql
使用 MySQL Shell 將檔案 code.js
的內容以 JavaScript 程式碼執行。
$> mysqlsh --js < code.js
使用 MySQL Shell 將檔案 code.py
的內容以 Python 程式碼執行。
$> mysqlsh --py < code.py
您可以在其他語言處於活動狀態時執行單一 SQL 陳述式,方法是輸入緊接著 SQL 陳述式的 \sql
命令。例如
mysql-py> \sql select * from sakila.actor limit 3;
SQL 陳述式不需要任何額外的引號,而且陳述式分隔符號是可選的。此命令只接受單一行的單一 SQL 查詢。使用這種格式,MySQL Shell 不會像您輸入 \sql
命令時那樣切換模式。SQL 陳述式執行後,MySQL Shell 會保持在 JavaScript 或 Python 模式。
您可以在任何語言處於活動狀態時執行作業系統命令,方法是輸入緊接著要執行的命令的 \system
或 \!
命令。例如
mysql-py> \system echo Hello from MySQL Shell!
MySQL Shell 會顯示作業系統命令的輸出,或在無法執行命令時傳回錯誤。