sql 百分号_如何在Jupyter Notebook中运行SQL?

​在我们学习数据科学的时候,通常数据都存在csv等格式的文件中,但是事实上在企业里,数据往往被存储到数据库中。

d9896c0754c13938be17a00c8a037ecc.png

今天我将介绍如何使用Jupyter Notebooks或JupyterLab作为SQL IDE。

设置

首先,我们需要安装一个库以确保可以直接在Notebook中运行SQL,我们直接在Jupyter单元中运行如下代码:

! pip install ipython-sql

接着,我们将使用sqlalchemy库来创建连接数据库所需的引擎。每个数据库url仅需要一次。

以下是各种数据库的一些通用的url.

  • PostgreSQL: postgresql://scott:tiger@localhost/mydatabase
  • Mysql: mysql://scott:tiger@localhost/foo
  • Oracle: oracle://scott:tiger@127.0.0.1:1521/sidname
  • SQL server: mssql+pyodbc://scott:tiger@mydsn
  • SQLite: sqlite:///foo.db

这是Oracle DB的示例:

abd56533210333aadb1a4e0a6138df6e.png

现在我们可以加载以前安装的SQL模块:

42084b26c6272e485d2fdb626536e7ce.png

并使用先前指定的url连接到数据库。

172707955dee96baa8ac202a8a7cc1d7.png

开始

好的,现在可以开始了。首先,我将展示如何将多行SQL查询传递给Juypter单元。需要在代码前面加上前缀%%sql或%sql在下面进行演示即可。

将整个单元格标记为SQL块

让我们从这一点开始,因为它允许输入多行SQL语句。唯一的要求是%%sql在开头加上前缀。例如从某个表中选择前五行:

548303d5a8adfa1b6ee57fa3b21591e6.png

如果要执行此单元格,则将得到以下输出:

421ecb095924781f0c5772ceb6d1ef0d.png

看起来像是Pandas DataFrame,但不是,它只是展示了表格的外观。

将结果存储到变量

不仅限于多行语句,我们还可以将SQL查询的结果存储到变量中。在这里,将只有一个百分号,而不是两个:%sql

例如我将从phone_number列中选择一个值:

36792110dd487f649285c57af5616c80.png

可以发现输出不是我们想要的,我们可以通过以下方法来解决。

b3fbb3f9b2a257a9b1a589de022fee6e.png

其他操作

转换为Pandas DataFrame

从数据库中选择一些数据集,然后调用.DataFrame()它的方法,这样就无须手动给转换了。

490884732b7647de2a197255b9af78e9.png

853bedbfbf4e0ad4ea5ae2affd376c76.png

绘图

假设你想要快速从数据库中获取一些数据并制作条形图。我们还可以使用matplotlib

7b9b6c9e272baede75a91d22c7adf60b.png

f5dc1919ed9f334a9eacdd85e70ebcac.png

最后

希望本文对你有帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值