Database Interface (DBI) Classes and drivers

The virtual classes and generics in the DBI package define the interface to database management systems (DBMS). They are extended by packages or drivers that implement the methods in the context of specific DBMS (e.g., Informix, MySQL, Oracle, ODBC, PostgreSQL, SQLite).

methods, interface, database
dbDriver(drvName, ...)
  dbUnloadDriver(drv, ...)     ## free up all resources
character name of the driver to instantiate.
an object that inherits from DBIDriver as created by dbDriver.
any other arguments are passed to the driver drvName.

The virtual class DBIDriver defines the operations for creating connections and defining data type mappings. Actual driver classes, for instance RSQLite, RMySQL, etc. implement these operations in a DBMS-specific manner.

More generally, the DBI defines a very small set of classes and methods that allows users and applications access DBMS with a common interface. The virtual classes are DBIDriver that individual drivers extend, DBIConnection that represent instances of DBMS connections, and DBIResult that represent the result of a DBMS statement. These three classes extend the basic class of DBIObject, which serves as the root or parent of the class hierarchy.


  • In the case of dbDriver, an driver object whose class extends DBIDriver. This object may be used to create connections to the actual DBMS engine. In the case of dbUnloadDriver, a logical indicating whether the operation succeeded or not.

Side Effects

The client part of the database communication is initialized (typically dynamically loading C code, etc.) but note that connecting to the database engine itself needs to be done through calls to dbConnect.


See the Database Interface definition document DBI.pdf in the base directory of this package or http://developer.r-project.org/db.

See Also

dbConnect, dbSendQuery, dbGetQuery, fetch, dbCommit, dbGetInfo, dbListTables, dbReadTable.

  • dbDriver
  • dbUnloadDriver
  • dbDriver-methods
  • dbUnloadDriver-methods
  • dbDriver,character-method
  • dbUnloadDriver,DBIDriver-method
# create a MySQL instance for capacity of up to 25 simultaneous
# connections.
m <- dbDriver("MySQL", max.con = 25)
p <- dbDriver("PgSQL")

# open the connection using user, password, etc., as
con <- dbConnect(m, user="ip", password = "traffic", dbname="iptraffic")
rs <- dbSubmitQuery(con, 
         "select * from HTTP_ACCESS where IP_ADDRESS = ''")
df <- fetch(rs, n = 50)
df2 <- fetch(rs, n = -1)

pcon <- dbConnect(p, "user", "password", "dbname")
Documentation reproduced from package DBI, version 0.1-10, License: GPL (version 2 or later)

Community examples

Looks like there are no examples yet.