在 IPython/Jupyter 笔记本中格式化 SQL 查询

Formatting SQL Query Inside an IPython/Jupyter Notebook

我想在笔记本中显示一些 SQL 查询。我既不需要也不希望他们 运行。我只是希望它们格式正确。至少我希望它们用新行正确缩进,尽管关键字突出显示也很好。是否已经存在解决方案?

如果您将单元格设置为 Markdown,您可以将 sql 查询编写为指定语言的代码(例如 mysql)

``` mysql
SELECT *
FROM table_a AS a
LIMIT 10; 
```

这会产生:

突出关键词。不幸的是,它似乎没有处理缩进,这似乎是您要处理的主要问题,但也许这会有所帮助。

我发现这解决了我遇到的问题。

``` sql

在编辑模式下生成样式代码,但在单元格为 运行 时未生成样式代码。

``` mysql

生成正确的样式

如果你 - 像我一样 - 发现自己在这里是因为你想强调(和 运行)%%sql 魔法,你最好使用这个 的技巧.把它贴在这里是因为我花了很长时间才找到正确的答案关键字:)

require(['notebook/js/codecell'], function(codecell) {
  codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = {'reg':[/^%%sql/]} ;
  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){
  Jupyter.notebook.get_cells().map(function(cell){
      if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;
  });
});