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 显示来自操作系统命令的输出,或者如果无法执行命令,则返回错误。