The dbms parameter tells DatabaseConnector which database type you’re using.
Supported Database Systems
# SQLite (file-based, no server needed)dbms ="sqlite"# PostgreSQLdbms ="postgresql"# SQL Serverdbms ="sql server"# Oracledbms ="oracle"# And more: redshift, spark, bigquery, snowflake...
Creating Tables
# Create a simple data framepeople <-data.frame(person_id =1:3,name =c("Alice", "Bob", "Carol"),year_of_birth =c(1985, 1990, 1978))# Write it to the databaseinsertTable(connection = connection,tableName ="person",data = people)
Querying with SQL
# Run a query and get resultsresult <-querySql(connection = connection,sql ="SELECT * FROM person WHERE year_of_birth > 1980")result
Returns a data frame you can work with in R.
Parameterized Queries
# Use @parameters in your SQLsql <-"SELECT * FROM person WHERE year_of_birth > @cutoff"result <-renderTranslateQuerySql(connection = connection,sql = sql,cutoff =1985)
renderTranslateQuerySql handles parameter substitution and dialect translation.
SqlRender: Write Once, Run Anywhere
OHDSI’s SqlRender translates SQL between dialects:
library(SqlRender)sql <-"SELECT TOP 10 * FROM person;"translate(sql, targetDialect ="postgresql")# → "SELECT * FROM person LIMIT 10;"translate(sql, targetDialect ="oracle")# → "SELECT * FROM person WHERE ROWNUM <= 10;"
Executing Statements
# For statements that don't return data (CREATE, INSERT, UPDATE, DELETE)executeSql(connection = connection,sql ="CREATE INDEX idx_person ON person (person_id)")