# 如果在ODBC中已配置密码,则只需要输入前面配置的dsnname作为参数,如果没有,则需要把账号和密码也传入uid和pwd
library(DBI)
con_dsn <- dbConnect(odbc::odbc(), "dsnname", timeout = 10, encoding = "GBK")
library(DBI)
con_pwd <- dbConnect(odbc::odbc(), "dsnname",
uid = "userid",
pwd = "password", encoding = "GBK", timeout = 10
)ODBC连接数据库
数据库
sql
ODBC
通过ODBC连接数据库
下载安装ODBC驱动
配置ODBC
windows打开ODBS数据源管理器
配置系统DSN,添加新数据源
选择合适的ODBC驱动
按照对应ODBC驱动提示配置数据库连接信息
连接数据库
import pyodbc
# 使用 DSN 连接
con_dsn = pyodbc.connect("DSN=dsnname;UID=userid;PWD=password;CHARSET=GBK", timeout=10)
# 使用用户名和密码连接
con_pwd = pyodbc.connect("DSN=dsnname;UID=userid;PWD=password;CHARSET=GBK", timeout=10)查询数据
library(readr)
# 从文件读取 SQL 语句
sql_file <- read_file("sql_text.sql")
# 直接在代码中写 SQL 语句
sql_inline <- "SELECT * FROM table"
# 使用 DSN 连接查询
df_dsn <- dbGetQuery(conn = con_dsn, statement = sql_file)
# 使用用户名/密码连接查询
df_pwd <- dbGetQuery(conn = con_pwd, statement = sql_inline)import pandas as pd
# 使用 DSN 连接查询
sql_query = "SELECT * FROM table"
df_dsn = pd.read_sql_query(sql=sql_query, con=conn_dsn)
# 使用用户名/密码连接查询
df_pwd = pd.read_sql_query(sql=sql_query, con=conn_pwd)执行sql语句
sql_exec <- "TRUNCATE table_name"
# 使用 DSN 连接执行
dbSendQuery(conn = con_dsn, statement = sql_exec)
# 使用用户名/密码连接执行
dbSendQuery(conn = con_pwd, statement = sql_exec)sql_exec = "DELETE FROM your_table WHERE id = 123"
# 使用 DSN 连接执行
conn_dsn.execute(sql_exec)
# 使用用户名/密码连接执行
conn_pwd.execute(sql_exec)写入表格
library(DBI)
df <- iris
# 使用 DSN 连接写入
dbAppendTable(conn = con_dsn, name = "target_table_name", value = df)
# 使用用户名/密码连接写入
dbAppendTable(conn = con_pwd, name = "target_table_name", value = df)df <- pd.DataFrame(iris)
# 使用 DSN 连接写入
df.to_sql("target_table_name", con = conn_dsn, if_exists = "replace", index = False)
# 使用用户名/密码连接写入
df.to_sql("target_table_name", con = conn_pwd, if_exists = "replace", index = False)



