在SQL中读取csv文件

4

我有一个csv文件,想要在不创建表的情况下直接使用它。有没有一种方法可以直接读取和操作它?


总的来说 - 不行。 - P.Salmon
你必须先导入它。这有什么问题吗? - ADyson
是的,不幸的是我没有权限在那个数据库中创建表。 - AlisonGrey
你能做的只有三件事:a)请求足够的访问权限以便执行该操作,或者b)请别人为你导入文件,或者c)使用另一种语言编写代码,与数据库和CSV文件进行交互,以完成你正在尝试的任务(你没有说你实际想要对数据做什么,所以也许这没有意义,但是如果没有更多信息,我们无法提出更具体的建议)。 - ADyson
我正在使用数据在工具中可视化为图形。因此,我只需要数据输入即可。操作可以在工具上完成。 - AlisonGrey
2个回答

6
只要您能连接到服务器,就可以创建临时表。对于 Microsoft SQL:
declare @TempTable csvtable 
     (
        firstCol varchar(50) NOT NULL,
        secondCol varchar(50) NOT NULL
     )

BULK INSERT @TempTable FROM 'PathToCSVFile' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')

GO

对于MySQL;
CREATE TEMPORARY TABLE csvtable

LOAD DATA INFILE 'PathToCSVFile' 
INTO TABLE csvtable 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

1
我知道这个标签是MySQL,但我认为你只是想在CSV上运行SQL查询。如果你愿意使用Python,你可以使用FugueSQL来实现。
一个示例Python代码片段如下:
from fugue_sql import fsql

query = """
df = LOAD "/path/to/myfile.csv"

SELECT * 
  FROM df
 WHERE col > 1
 PRINT
"""
fsql(query).run()

这将默认使用Pandas来运行查询。还有一个SAVE关键字,可以将输出保存到另一个文件中。

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