ODBC

Il pacchetto RODBC consente l’accesso ai database in R (inclusi Microsoft Access e Microsoft SQL Server) tramite un’interfaccia ODBC. Di seguito le funzioni principali:

FunzioneDescrizione
odbcConnect(dsn, uid = “username”, pwd=”password”)Apre una connessione ad un database OBDC
sqlFetch(connessione, nome tabella)Legge I dati di una tabella da un database ODBC come data frame
sqlQuery(connessione, query)Legge I dati di una query da un database ODBC come data frame
sqlSave(connessione, date_frame, tablename = sqtable, append = FALSE)Scrive o aggiorna (append=True) un data frame su una tabella de un database ODBC
sqlDrop(connessione, sqtable)Cancella un tabella da un database ODBC
close(connessione)Chiude la connessione

Facciamo un esempio base di input da database in R

# Esempio package RODBC
# importiamo 2 tabelle (tabella_1 and tabella_2) da un database
# in data frames: data_frame_1 e data_frame_2

library(RODBC)
conn <-odbcConnect("mydsn", uid="username", pwd="password")
data_frame_1 <- sqlFetch(conn, "")
data_frame_2 <- sqlQuery(conn, "select * from tabella_2")
close(myconn)

Gli altri package disponibili sono RMySQL fornisce l’accesso ai database in R tramite un’interfaccia My Sql.

Esempio:

library(RMySQL)

m<-dbDriver("MySQL");
conn <-dbConnect(dsn,user= ‘username’ ,password=’ password’,host='localhost',dbname='nome db');
resData<-dbSendQuery(conn, "select * from tabella_1")
res<- fetch(resData, n = -1)

ROracle fornisce l’accesso ai database tramite un’interfaccia Oracle.

drv <- dbDriver("Oracle")
conn <- dbConnect(drv, " username", "password")
dbReadTable(conn, " tabella_1 ")
res <- dbSendQuery(conn, "delete from tabella_1 where nome_campo=valore_campo")
dbReadTable(conn, " tabella_1 ")

RJDBC fornisce l’accesso ai database tramite un’interfaccia JDBC.

library(RJDBC)
drv<- JDBC("com.mysql.jdbc.Driver",
"/etc/jdbc/mysql-connector-java-3.1.14-bin.jar",
identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://localhost/test", " username", "password")
dbListTables(conn)
dbWriteTable(conn, " data_frame_1 ", tabella_1, overwrite=TRUE)
dbGetQuery(conn, "select count(*) from tabella_1")
res <- dbReadTable(conn, " tabella_1")

Guarda tutti i tutorial di Data input oppure torna su R tutorial.