如何用ODBC链接SQL数据库和Python中的SQL查询

2024-09-27 21:32:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我通常通过使用ODBC链接到SQL数据库来使用R来执行SQL查询。代码通常如下所示:

library(RODBC)
ch<-odbcConnect('B1P HANA',uid='****',pwd='****')
myOffice <- c(0)
office_clause = ""
if (myOffice != 0) {
  office_clause = paste(
    'AND "_all"."/BIC/ZSALE_OFF" IN (',paste(myOffice, collapse=", "),')'
  )
}
a <- sqlQuery(ch,paste(' SELECT "_all"."CALDAY" AS "ReturnDate                         FROM "SAPB1P"."/BIC/AZ_RT_A212" "_all"
                         WHERE "_all"."CALDAY"=20180101
                               ',office_clause,'
                         GROUP BY "_all"."CALDAY
                       '))  

工作流程是:

  1. odbcConnect是使用ODBC连接R和SQL。

  2. myOffice是一个数组,用于从R获取数据。这些数据将用作SQL中WHERE子句中的筛选条件。

  3. a存储来自SQL数据库的查询结果。

那么,如何在Python中完成所有这些工作,即使用ODBC链接SQL数据库和Python,在Python中进行SQL查询呢?我是Python新手。我只知道:

^{pr2}$

那我就不知道该怎么继续了。我在网上找不到一个完整的例子。有人能提供一个全面的例子吗?从Python unitl中的linksql数据库检索结果?在


Tags: 数据库sql链接clauseallchwhere例子
1条回答
网友
1楼 · 发布于 2024-09-27 21:32:13

从python执行SQL

实例化一个游标并使用Cursor类的execute方法来执行任何SQL语句。在

cursor = cnxn.cursor()

选择

您可以使用fetchallfetchonefetchmany检索从SELECT语句返回的行:

^{pr2}$

可以在序列或参数列表中提供参数化查询:

cursor.execute("SELECT Col1, Col2, Col3, ... FROM MyTable WHERE Col1 = ?", 'SomeValue',1)

插入

INSERT命令也使用execute方法;但是,必须在INSERT之后调用commit方法,否则将丢失所做的更改:

cursor.execute("INSERT INTO MyTable (Col1) VALUES ('SomeValue')")
cnxn.commit()

更新和删除

与insert一样,在调用execute进行更新或删除后,还必须调用commit

cursor.execute("UPDATE MyTable SET Col1= 'SomeValue'")
cnxn.commit()

元数据发现

您可以使用getinfo方法来检索数据,例如关于数据源和驱动程序功能的信息。getinfo方法将输入传递给ODBCSQLGetInfo方法。在

cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)

相关问题 更多 >

    热门问题