Python 如何使用sql读取csv

Python 如何使用sql读取csv,python,sql,csv,python-3.x,Python,Sql,Csv,Python 3.x,我想知道如何使用sql读取csv文件。我想使用group by并将其他csv文件连接在一起。我将如何在python中实现这一点 例如: select * from csvfile.csv where name LIKE 'name%' SQL代码由数据库引擎执行。Python不直接理解或执行SQL语句 虽然一些SQL数据库将数据存储在类似csv的文件中,但几乎所有SQL数据库都使用更复杂的文件结构。因此,需要将每个csv文件导入SQL数据库引擎中的一个单独的表中。然后,您可以使用Python连

我想知道如何使用sql读取csv文件。我想使用group by并将其他csv文件连接在一起。我将如何在python中实现这一点

例如:

select * from csvfile.csv where name LIKE 'name%'

SQL代码由数据库引擎执行。Python不直接理解或执行SQL语句

虽然一些SQL数据库将数据存储在类似csv的文件中,但几乎所有SQL数据库都使用更复杂的文件结构。因此,需要将每个csv文件导入SQL数据库引擎中的一个单独的表中。然后,您可以使用Python连接到SQL引擎并向其发送SQL语句,如SELECT。引擎将执行SQL,从数据文件中提取结果,并将其返回到Python程序


最常见的轻量级引擎是SQLite。

您可以使用PHP脚本轻松查询SQL数据库。PHP运行服务器端,因此您的所有代码都必须在一个Web服务器上,即一个带有数据库的服务器上。您可以创建一个连接到数据库的函数,如下所示:

$con= mysql_connect($hostname, $username, $password) 
  or die("An error has occured");
然后使用$con完成其他任务,例如循环数据和创建表,甚至向现有表添加行和列

编辑:我注意到你说的是.CSV文件。您可以将CSV文件上载到SQL数据库中,并从中创建一个表。如果您使用的是控制面板服务,如phpMyAdmin,则只需将CSV文件导入数据库,如下所示:

如果您正在寻找一个免费的web主机来测试您的SQL和PHP文件,请查看主机

是我编写的一个Python模块,用于像处理数据库表一样处理对象列表,但使用类似关系的API,而不是实际的SQL select语句。littletable中的表可以轻松地从CSV文件读取和写入。我特别喜欢的一个特性是,来自littletable表的每个查询都返回一个新表,因此您不必了解表与记录集的不同接口。表与列表一样是可编辑的,但它们也可以被选择、索引、连接和数据透视-请参阅

表的列是从添加到表中的对象的属性推断出来的。namedtuples也很好,还有一种称为DataObject的基本不可变的特殊类型,也在littletable中定义


littletable需要一点时间来适应,但听起来您已经在按照类似的思路思考了。

sql?python是哪一个?您手头的具体问题是什么?我想使用sql查询csv文件。从csvfile.csv中选择*,其中类似“name%”的名称SQL用于查询数据库而不是文本文件。首先在您选择的数据库中创建模式/表,然后用python加载数据库表中的csv值。最后,您可以使用SQL进行查询。理论上没有理由认为SQL不能应用于CSV文件,事实上,有些SQL引擎以CSV格式存储数据。然而,对Python的快速搜索并没有发现任何问题,也不知道为什么这个问题会被搁置。问题很清楚——如何使用SQL语句查询csv文件。仅使用Python是不可能做到这一点的,这表明OP的知识中存在漏洞,而不是缺乏清晰性。问题中没有任何迹象表明web服务器以任何方式参与其中。用户没有运行数据库,而是运行csv文件。另外,我确信PHP提供了参数化查询,因此如果这是一个关于从用PHP编写的web服务器查询MySQL的问题,那么假设您仔细编码,那么关于SQL注入的部分是不正确的。此外,数据库服务器不需要与web服务器驻留在一起。
# print a particular customer name 
# (unique indexes will return a single item; non-unique
# indexes will return a Table of all matching items)
print customers.by.id["0030"].name
print len(customers.by.zipcode["12345"])

# print all items sold by the pound
for item in catalog.query(unitofmeas="LB"):
    print item.sku, item.descr

# print all items that cost more than 10
for item in catalog.where(lambda o : o.unitprice>10):
   print item.sku, item.descr, item.unitprice

# join tables to create queryable wishlists collection
wishlists = customers.join_on("id") + wishitems.join_on("custid") + catalog.join_on("sku")

# print all wishlist items with price > 10
bigticketitems = wishlists().where(lambda ob : ob.unitprice > 10)
for item in bigticketitems:
   print item