5.1主动语言

MySQL Shell可以执行SQL、JavaScript或Python代码,但一次只能激活一种语言。活动模式决定了执行语句的处理方式:

  • 如果使用SQL模式,语句将被作为SQL处理,这意味着它们将被发送到MySQL服务器执行。

  • 如果使用JavaScript模式,语句将作为JavaScript代码处理。

  • 如果使用Python模式,语句将作为Python代码处理。

请注意

从8.0.18版本开始,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.如果没有指定,默认模式是JavaScript。

使用MySQL Shell来执行文件的内容code.sqlSQL。

Shell > mysqlsh——sql < code.sql

使用MySQL Shell来执行文件的内容code.js作为JavaScript代码。

Shell > mysqlsh < code.js

使用MySQL Shell来执行文件的内容code.py作为Python代码。

Shell > mysqlsh——py < code.py

在MySQL Shell 8.0.16中,您可以在另一种语言处于活动状态时执行单个SQL语句,只需输入\ sql命令后紧跟着SQL语句。例如:

Mysql-py > \sql select * from sakila演员限制3;

SQL语句不需要任何额外的引号,语句分隔符是可选的。该命令只接受单行上的单个SQL查询。使用这种格式,MySQL Shell不会像输入\ sql命令。执行完SQL语句后,MySQL Shell将保持JavaScript或Python模式。

在MySQL Shell 8.0.18中,您可以在任何语言处于活动状态时执行操作系统命令,只需输入\系统\ !命令后紧跟着要执行的命令。例如:

MySQL -py> \system echo从MySQL Shell你好!

MySQL Shell显示操作系统命令的输出,如果无法执行命令则返回错误。