安装
extension_id: Oracle.mysql-shell-for-vs-code
只需要在vscode
扩展中搜索, 安装即可.
可以看到也支持sqlite
.
在界面上输入账号, 密码即可.
使用
假如使用过jupyter notebook
, 对于这种操作界面应该不陌生, 就是jupyter notebook
的翻版, 不叫notebook
叫shell
反而有点不是很明确说明这个扩展的特性.
在jupyter notebook
上使用mysql_connector
和pandas
实现上述效果.
相比于其他的操作MySQL
的方式, 显然notebook
的方式对于需要进行更复杂内容输出或者教学, 这种方式优势更为明显.
\about
Welcome to the MySQL Shell
— DB Notebook .
Press Ctrl+Enter to execute the current statement.
Execute \sqt to switch to SQL, \ js to JavaScript and \ ts to TypeScript mode.
Execute \help or \ ? for help;
可以看到这个扩展支持不限于SQL
语言
和其客户端上的MySQL shell
类似, 支持JavaScript
和 ts
.
The MySQL Shell is an interactive Javascript, Python, or SQL interface supporting development and administration for the MySQL Server and is a component of the MySQL Server. You can use the MySQL Shell to perform data queries and updates as well as various administration operations. The MySQL Shell provides: Both Interactive and Batch operations......
注意别搞混了, 这里的shell
, 不知在cmd/powershell
命令行进入的那个MySQL
环境, MySQL shell
是更强大的集成环境终端.
交互
支持代码的输入提示.
对于嵌套函数, 不便于理解的, 可以拆出来独立运行, 执行的结果.
在终端上, 如powershell
, 可以保存上次运行的结果, 但是不支持代码输入的提示, 而像navicat
之类的客户端支持代码提示, 但是却不能保存上次的执行结果.
JavaScript
使用
\js
# 或者
\JavaScript
# 切换到js环境
支持ES6+
支持的全局函数
print
, 打印函数, 而不是console.log
runSql
, 执行返回结果runSqtIterative
, 返回的是结果的迭代器.
const cmd = 'select douban_id, title, publisher, publish_time, author, rate, rate_nums from book_table LIMIT 5;';
// cmd, 命令行字符串; () => callback, 回调函数
runSql(cmd, (results)=> {for (const r of results) print(r);})
小结
使用上还是很生硬, 在操作逻辑上也有不少问题, 例如登录/断开的方式不明晰.
执行结果的输出也是个问题, 不像jupyter notebook
可以和各种文件类型进行交互, 不支持结果输出, (执行后有个export result
按钮, 但是点击没反应).
同样, 也没有相应的绘图工具, 图和数据如影随从.
navicat
集成的绘图工作区.
目前这个扩展的对于普通用户而言, 也就是作为交互更好的一个终端, 可以用于练习MySQL
一些复杂的查询语句.