| Type: | Package | 
| Title: | A Fast, Easy-to-Use Database Interface | 
| Version: | 0.4.0 | 
| Date: | 2025-03-17 | 
| Description: | Provides select, insert, update, upsert, and delete database operations. Supports 'PostgreSQL', 'MySQL', 'SQLite', and more, and plays nicely with the 'DBI' package. | 
| URL: | https://github.com/ankane/dbx | 
| BugReports: | https://github.com/ankane/dbx/issues | 
| License: | MIT + file LICENSE | 
| RoxygenNote: | 7.3.1 | 
| Encoding: | UTF-8 | 
| Imports: | DBI (≥ 1.0.0) | 
| Suggests: | testthat (≥ 1.0.2), urltools (≥ 1.7.0), RSQLite (≥ 2.1.2), RMariaDB, RMySQL (≥ 0.10.20), RPostgres, RPostgreSQL, hms, jsonlite, blob, odbc | 
| NeedsCompilation: | no | 
| Packaged: | 2025-03-18 02:29:55 UTC; andrew | 
| Author: | Andrew Kane [aut, cre] | 
| Maintainer: | Andrew Kane <andrew@chartkick.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-03-18 11:00:02 UTC | 
Create a database connection
Description
Create a database connection
Usage
dbxConnect(
  url = NULL,
  adapter = NULL,
  storage_tz = NULL,
  variables = list(),
  ...
)
Arguments
url | 
 A database URL  | 
adapter | 
 The database adapter to use  | 
storage_tz | 
 The time zone timestamps are stored in  | 
variables | 
 Session variables  | 
... | 
 Arguments to pass to dbConnect  | 
Examples
# SQLite
db <- dbxConnect(adapter="sqlite", dbname=":memory:")
## Not run: 
# Postgres
db <- dbxConnect(adapter="postgres", dbname="mydb")
# MySQL
db <- dbxConnect(adapter="mysql", dbname="mydb")
# Others
db <- dbxConnect(adapter=odbc(), database="mydb")
## End(Not run)
Delete records
Description
Delete records
Usage
dbxDelete(conn, table, where = NULL, batch_size = NULL)
Arguments
conn | 
 A DBIConnection object  | 
table | 
 The table name to delete records from  | 
where | 
 A data frame of records to delete  | 
batch_size | 
 The number of records to delete in a single statement (defaults to all)  | 
Examples
db <- dbxConnect(adapter="sqlite", dbname=":memory:")
table <- "forecasts"
DBI::dbCreateTable(db, table, data.frame(id=1:3, temperature=20:22))
# Delete specific records
bad_records <- data.frame(id=c(1, 2))
dbxDelete(db, table, where=bad_records)
# Delete all records
dbxDelete(db, table)
Close a database connection
Description
Close a database connection
Usage
dbxDisconnect(conn)
Arguments
conn | 
 A DBIConnection object  | 
Examples
db <- dbxConnect(adapter="sqlite", dbname=":memory:")
dbxDisconnect(db)
Execute a statement
Description
Execute a statement
Usage
dbxExecute(conn, statement, params = NULL)
Arguments
conn | 
 A DBIConnection object  | 
statement | 
 The SQL statement to use  | 
params | 
 Parameters to bind  | 
Examples
db <- dbxConnect(adapter="sqlite", dbname=":memory:")
DBI::dbCreateTable(db, "forecasts", data.frame(id=1:3, temperature=20:22))
dbxExecute(db, "UPDATE forecasts SET temperature = 20")
dbxExecute(db, "UPDATE forecasts SET temperature = ?", params=list(20))
dbxExecute(db, "UPDATE forecasts SET temperature = ? WHERE id IN (?)", params=list(20, 1:3))
Insert records
Description
Insert records
Usage
dbxInsert(conn, table, records, batch_size = NULL, returning = NULL)
Arguments
conn | 
 A DBIConnection object  | 
table | 
 The table name to insert  | 
records | 
 A data frame of records to insert  | 
batch_size | 
 The number of records to insert in a single statement (defaults to all)  | 
returning | 
 Columns to return  | 
Examples
db <- dbxConnect(adapter="sqlite", dbname=":memory:")
table <- "forecasts"
DBI::dbCreateTable(db, table, data.frame(id=1:3, temperature=20:22))
records <- data.frame(temperature=c(32, 25))
dbxInsert(db, table, records)
Select records
Description
Select records
Usage
dbxSelect(conn, statement, params = NULL)
Arguments
conn | 
 A DBIConnection object  | 
statement | 
 The SQL statement to use  | 
params | 
 Parameters to bind  | 
Examples
db <- dbxConnect(adapter="sqlite", dbname=":memory:")
DBI::dbCreateTable(db, "forecasts", data.frame(id=1:3, temperature=20:22))
dbxSelect(db, "SELECT * FROM forecasts")
dbxSelect(db, "SELECT * FROM forecasts WHERE id = ?", params=list(1))
dbxSelect(db, "SELECT * FROM forecasts WHERE id IN (?)", params=list(1:3))
Update records
Description
Update records
Usage
dbxUpdate(
  conn,
  table,
  records,
  where_cols,
  batch_size = NULL,
  transaction = TRUE
)
Arguments
conn | 
 A DBIConnection object  | 
table | 
 The table name to update  | 
records | 
 A data frame of records to insert  | 
where_cols | 
 The columns to use for WHERE clause  | 
batch_size | 
 The number of records to update in a single transaction (defaults to all)  | 
transaction | 
 Wrap the update in a transaction (defaults to true)  | 
Examples
db <- dbxConnect(adapter="sqlite", dbname=":memory:")
table <- "forecasts"
DBI::dbCreateTable(db, table, data.frame(id=1:3, temperature=20:22))
records <- data.frame(id=c(1, 2), temperature=c(16, 13))
dbxUpdate(db, table, records, where_cols=c("id"))
Upsert records
Description
Upsert records
Usage
dbxUpsert(
  conn,
  table,
  records,
  where_cols,
  batch_size = NULL,
  returning = NULL,
  skip_existing = FALSE
)
Arguments
conn | 
 A DBIConnection object  | 
table | 
 The table name to upsert  | 
records | 
 A data frame of records to upsert  | 
where_cols | 
 The columns to use for WHERE clause  | 
batch_size | 
 The number of records to upsert in a single statement (defaults to all)  | 
returning | 
 Columns to return  | 
skip_existing | 
 Skip existing rows  | 
Examples
## Not run: 
db <- dbxConnect(adapter="postgres", dbname="dbx")
table <- "forecasts"
DBI::dbCreateTable(db, table, data.frame(id=1:3, temperature=20:22))
records <- data.frame(id=c(3, 4), temperature=c(20, 25))
dbxUpsert(db, table, records, where_cols=c("id"))
## End(Not run)