在IPython/Jupyter Notebook中格式化SQL查询

18

我想在笔记本中展示一些SQL查询。我不需要也不想让它们运行,只是希望它们格式良好。至少我希望它们能正确缩进并换行,虽然关键字高亮也会很不错。是否已经存在这样的解决方案?

4个回答

21

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

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

这将产生:

在笔记本中使用SQL

它会突出显示关键字。不幸的是,它似乎不能处理缩进,这似乎是您试图处理的主要问题,但也许这能帮助。


5

如果您像我一样,想要突出显示(并运行)%%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(); } }) ;
  });
});

1
我发现这解决了我遇到的问题。
``` sql
在编辑模式下生成样式化代码,但在运行单元格时不会。
``` mysql
生成正确的样式。

0
你可以使用jupysql-plugin来格式化SQL单元格: enter image description here 文档

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接