我有这个提示(如下所示)。我想我知道如何在SQL中编写它(如下所示,但如果它不正确请告诉我)。我希望获得与SQL相同但使用Python的结果。
问题 - 给定一组数据,编写一个解析数据的函数,1)找到给定月份的收入2)找到给定月份的未预留办公室的总容量。
SQL猜测:
SELECT revenue FROM financials WHERE month = "June"
SELECT SUM(capacity) FROM booking WHERE month = "June" and office_reserved IS NULL
我没有这方面的实际数据所以我只是编写了列名。第一个是直截了当的。第二个是我认为会有一个数据库,其中包含月 - 日 - office_reserved - 容量(即12个人可以坐在房间里)。
Python猜猜:
arr = []
i = 0
for i < len(financials):
if financials.month[i] = "June":
arr.append(financials.revenue[i])
i+=1
arr = []
i = 0
for i < len(booking):
if booking.month[i] = "June" and office_reserved IS NULL:
arr.append(booking.capacity[i])
i+=0
print(sum(arr))
这让我相信在查找数据的情况下,SQL在计算上比Python快。在大型计算或程序的实例中,Python可能更快。 ??
答案 0 :(得分:0)
就我而言,除了SQL之外,您无法使用其他任何东西与RDBMS进行交互。 也就是说可能有SQL的Python接口。从来没听说过。
为了能够使用其他语言(如Python或Javascript(node.js))作为后端解决方案,您将不得不使用noSQL数据库,这意味着主要是JSON数据库,它依赖于完全不同的属性,规则和方案。现在,您可以通过选择分布式文件系统解决方案,使数据库为大型数据集和处理(大数据)做好准备。但是,虽然在处理大数据时效率更高,但在某些特定情况下(快速读取,事务,小数据集......),此选项可能会更慢。更多详情:https://stackoverflow.com/a/50457922/5922920
答案 1 :(得分:0)
我能想到的最接近的是熊猫。例如,我创建了一个伪数据集,您可以将其放入数据框中以查找值。我会对熊猫做更多的研究,因为它在处理与此类似的数据方面相当不错。以下是一个例子:
Financials = pd.DataFrame([100000, 2000000, 300000, 4000000], columns=['Revenue'], index=['Jan', 'Feb', 'April', 'June'])
print(Financials[Financials['Revenue'] < 400000])
这将是你的输出:
Revenue
Jan 100000
April 300000
您可以使用pandas库从.csv或许多其他资源导入数据,并执行您想要执行的布尔选择,这有点类似于SQL,但没有任何内容可以与SQL语法完全匹配。
一个好的库,您可能知道或者可能不知道是否是pymysql,它允许您使用Python连接到MySQL数据库。
以下是我正在使用的程序示例:
import pymysql
import pymysql.cursors
mydb = pymysql.connect(user='sample', passwd='sample_pass', db='medical_app', host='localhost')
cur = mydb.cursor()
select = cur.execute('''SELECT * FROM patient_login''')
print(select)
如您所见,您可以在Python中访问数据库,创建游标对象,然后执行SQL命令。您可能已经或可能不知道这一点,但我认为它也值得注意。