一、语言选择
前几篇我们知道了 MySQL Shell 支持三种语言模式,但一次只能激活使用一种,模式自己决定。
- 如果 SQL 模式,直接发送到 MySQL 服务器执行;
- 如果 Javascript 模式,将被作为 Javascript 代码处理;
- 如果 Python 模式,将被作为 Python 代码处理。
在 MySQL Shell 的交互模式下运行。激活特定语言使用命令: \sql
,\js
,\py
在 MySQL Shell 的批处理模式下通过选项激活指定语言: --js
, --py
,--sql
,如果未指定则默认 Javascript。
shell> mysqlsh --sql < code.sql
shell> mysqlsh < code.js
shell> mysqlsh --py < code.py
在 MySQL Shell 8.0.16 中,可在另一种语言模式中执行单个 SQL 语句,执行后模式仍处于 py 或 js 模式。
mysql-py> \sql select * from sakila.actor limit 3;
在 MySQL Shell 8.0.18 中,可在任何语言状态执行操作系统命令
mysql-py> \system echo Hello from MySQL Shell!
二、交互式代码执行
看一段 MySQL Shell 8.0.18 (早期版本略有不同)中 Javascript 模式的代码。
准备测试环境,官网下载一个 world_x
示例库,有四张表可用,其中 countryinfo 为 JSON 结构:
- country:有关世界各国的信息。
- city:有关这些国家/地区中某些城市的信息。
- countrylanguage:每个国家/地区使用的语言。
- countryinfo:有关以JSON文档表示的每个国家/地区的信息。