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)