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