【问题标题】:Importing Data into SQL Server with Visual Studio Code使用 Visual Studio Code 将数据导入 SQL Server
【发布时间】:2021-04-07 19:36:40
【问题描述】:

我正在尝试使用 Visual Studio Code(VSC) 将 csv 文件导入 SQL Server。

我可以使用 MSSQL 扩展访问 VSC 中的 SQL Server。我可以选择、添加列、创建表格等...我可以使用 python 来加载和操作 csv 文件。

但是,我不知道如何连接 Python 和 SQL 脚本,或者,如何使用 sql 脚本在本地计算机上查询 csv 文件。

一个选项是use Python,但我在成功设置该连接时遇到了一些麻烦。

【问题讨论】:

  • 如果是我,我永远无法相信 VSCode 扩展是如何进行转换的。我想要控制一个 Python 脚本。您要使用哪个连接器?
  • @TimRoberts ,很高兴知道。不管你是否相信它。是否可以?我正在尝试使用 pyodbc 作为连接器,但我愿意接受建议。这不是我的经验。
  • 老实说,这感觉太宽泛了。实际上,问题是“如何使用 Python 将 CSV 数据导入 SQL Server?”,search 给出了丰富的结果。这回答了你的问题了吗? Writing a csv file into SQL Server database using python。到目前为止你有什么?为什么它不起作用?
  • “我在成功建立该连接时遇到了一些麻烦。” 您是否阅读过有关如何实现此目的的文档? Python SQL Driver
  • @Larnu 你可能是对的,这个问题太宽泛了。我确实尽量做到具体。我的感觉是“嘿,我打开 VS 代码:我有一个可以读取和写入 SQL Server 的 SQL 脚本。我有一个可以读取桌面上的 csv 文件的 python 脚本。应该有办法让两者一起工作吧?”但是我似乎无法让 SQL 读取 csv,而且我对 python 的熟练程度要低得多,因此将它连接到 SQL 服务器对我来说是一个挑战,尽管我确实阅读了文档。

标签: python sql-server visual-studio-code anaconda


【解决方案1】:

我不知道 VS Code 特定工具,但如果您可以运行 SQL 脚本,那么您可以查看 OPENROWSET。示例 F 可能与您正在寻找的内容非常匹配,但此命令有很多选项可以准确获取您想要的内容。

INSERT INTO MyTable SELECT a.* FROM
OPENROWSET (BULK N'D:\data.csv', FORMATFILE =
    'D:\format_no_collation.txt', CODEPAGE = '65001') AS a;

【讨论】:

  • 谢谢!虽然不是直接回答这个问题,但这确实帮助我了解更多。
【解决方案2】:

首先尝试使用这个-pip install mysql-connector-python安装mysql连接器

之后使用import mysql.connector 导入连接器

然后使用这个连接你的数据库-

myconn = mysql.connector.Connect(user='root',password="1234567890",database="world",auth_plugin='mysql_native_password')

其中password是你的mysql密码,database是你要连接的数据库的名字

假设您想从所选表中获取所有行-

myconn = mysql.connector.Connect(user='root',password="1234567890",database="world")
cur = myconn.cursor()
cur.execute("Select * from emptab")
allrows = cur.fetchall()
print(allows)

这会产生这样的结果-

(1001, 'RamKumar', 10000)
(1002, 'Ganesh Kumar', 1000)
(1003, 'Rohan', 3450)
(1004, 'Harish Kumar', 56000)
(1005, 'Mohit', 12000)
(1006, 'Harish Nagar', 56000)

要将上述数据转换为CSV格式,首先将其转换为pandas数据框-

df = pd.DataFrame(allrows)
df.columns = ['empno','name','salary']

这会将数据转换为 pandas df 和上面的列

最后使用

df_final.to_csv(r'final.csv', index = False)

like 命令将结果保存到 csv 格式

【讨论】:

  • 我正在尝试这个,但我认为这不会起作用,因为 SQL Server 不是 MySQL。
猜你喜欢
  • 2013-09-05
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
  • 2011-11-13
  • 2023-03-25
  • 2011-11-18
  • 2010-11-10
  • 1970-01-01
相关资源
最近更新 更多