Karena bagian terbesar dari informasi bisnis disimpan dalam database. Dalam bahasa pemrograman apa pun yang Anda tulis, Anda harus melakukan berbagai tindakan dengannya.
Pada artikel ini saya akan berbicara tentang dua antarmuka untuk bekerja dengan database di R. Sebagian besar contoh menunjukkan bekerja dengan Microsoft SQL Server, namun, semua contoh kode akan bekerja dengan database lain, seperti: MySQL, PostgreSQL, SQLite, ClickHouse , Google BigQuery, dll.

Isi
Diperlukan perangkat lunak
Untuk mengulangi semua contoh bekerja dengan DBMS yang dijelaskan dalam artikel, Anda akan memerlukan perangkat lunak gratis berikut yang tercantum di bawah ini:
- Bahasa R ;
- Lingkungan pengembangan RStudio ;
- Sistem Manajemen Basis Data, untuk dipilih:
3.1. Microsoft SQL Server
3.2. MySQL
3.3. PostgreSQL
Paket DBI
Paket DBI
adalah cara yang paling populer dan mudah untuk berinteraksi dengan basis data di R.
DBI
menyediakan Anda serangkaian fungsi yang dapat digunakan untuk mengelola basis data. Tetapi untuk terhubung ke database, Anda perlu menginstal paket tambahan yang merupakan driver untuk berbagai sistem manajemen basis data (DBMS).
Daftar fungsi dasar DBI
dbConnect
- koneksi ke database;dbWriteTable
- menulis tabel ke database;dbReadTable
- memuat tabel dari database;dbGetQuery
- memuat hasil eksekusi permintaan;dbSendQuery
- mengirim kueri ke basis data;dbFetch
- ekstrak elemen dari set hasil;dbExecute
- eksekusi permintaan untuk memperbarui / menghapus / memasukkan data ke dalam tabel;dbGetInfo
- informasi permintaan tentang hasil permintaan atau koneksi;dbListFields
- permintaan daftar bidang tabel;dbListTables
- kueri daftar tabel basis data;dbExistsTable
- periksa keberadaan tabel dalam database;dbRemoveTable
- menghapus tabel dari database;dbDisconnect
- putuskan sambungan dari basis data.
Konektivitas Basis Data
Untuk berinteraksi dengan basis data, Anda harus terlebih dahulu terhubung dengannya. Bergantung pada DBMS yang Anda rencanakan untuk bekerja, Anda akan memerlukan paket tambahan, di bawah ini adalah daftar yang paling sering digunakan.
odbc
- Driver untuk terhubung melalui antarmuka ODBC;RSQLite
- Driver untuk SQLite;RMySQL
/ RMariaDB
- Driver untuk MySQL dan MariaDB;RPostgreSQL
- Driver untuk PosrtgreSQL;bigrquery
- Driver untuk Google BigQuery;RClickhouse
/ clickhouse
- Driver untuk ClickHouse;RMSSQL
- Driver untuk Microsoft SQL Server (MS SQL), pada saat penulisan, hanya ada di GitHub .
Paket DBI
dilengkapi dengan paket R dasar, tetapi paket yang merupakan driver basis data harus diinstal menggunakan perintah install.packages(" ")
.
Untuk menginstal paket dari GitHub, Anda juga memerlukan paket tambahan - devtools
. Misalnya, paket RMSSQL
saat ini tidak dipublikasikan di repositori paket R utama, gunakan kode berikut untuk menginstalnya:
install.packages("devtools") devtools::install_github("bescoto/RMSSQL")
Contoh menghubungkan ke Microsoft SQL Server menggunakan paket odbc
Sebelum menggunakan paket apa pun dalam sesi R, terlebih dahulu harus terhubung menggunakan fungsi library(" ")
.
Bukan tanpa alasan saya memilih Microsoft SQL Server sebagai DBMS utama, yang akan memberikan sebagian besar contoh dalam artikel ini. Faktanya adalah bahwa ini adalah basis data yang cukup populer, tetapi pada saat yang sama masih tidak memiliki driver untuk terhubung dari R yang diterbitkan pada CRAN.
Tetapi untungnya, SQL Server, seperti hampir semua database lain, memiliki antarmuka ODBC (English Open Database Connectivity) untuk menghubungkan. Ada sejumlah paket untuk terhubung ke DBMS melalui antarmuka ODBC di R. Pertama, kita akan melihat menghubungkan melalui paket odbc
.
Koneksi basis data yang mudah melalui antarmuka odbc # odbc install.packages("odbc") # library(odbc) # MS SQL con <- dbConnect(drv = odbc(), Driver = "SQL Server", Server = "localhost", Database = "mybase", UID = "my_username", PWD = "my_password", Port = 1433)
Dalam fungsi dbConnect()
, Anda harus melewati fungsi, yang merupakan driver untuk menyambungkan ke DBMS ( odbc()
), sebagai argumen pertama ke drv . Fungsi seperti itu biasanya disebut sama dengan DBMS, dan datang dengan paket yang merupakan driver untuk DBI
.
Selanjutnya, Anda perlu mendaftar parameter koneksi. Untuk terhubung ke MS SQL melalui ODBC, Anda harus menentukan parameter berikut:
- Driver - Nama driver ODBC;
- Server - alamat IP dari server SQL;
- Database - Nama database yang akan dihubungkan;
- UID - Nama pengguna basis data;
- PWD - Kata Sandi;
- Port - Port yang akan dihubungkan, dengan SQL Server, port default adalah 1433.
Pengandar ODBC untuk menghubungkan ke Microsoft SQL Server disertakan dengan Windows, tetapi mungkin memiliki nama yang berbeda. Anda dapat melihat daftar driver yang diinstal di ODBC Data Source Administrator. Anda dapat memulai administrator sumber data di Windows 10 dengan cara berikut:
- Versi 32-bit:
%systemdrive%\Windows\SysWoW64\Odbcad32.exe
- Versi 64-bit:
%systemdrive%\Windows\System32\Odbcad32.exe

Anda juga bisa mendapatkan daftar semua driver yang diinstal pada PC Anda menggunakan fungsi odbcListDrivers()
.
name attribute value <chr> <chr> <chr> 1 SQL Server APILevel 2 2 SQL Server ConnectFunctions YYY 3 SQL Server CPTimeout 60 4 SQL Server DriverODBCVer 03.50 5 SQL Server FileUsage 0 6 SQL Server SQLLevel 1 7 SQL Server UsageCount 1 8 MySQL ODBC 5.3 ANSI Driver UsageCount 1 9 MySQL ODBC 5.3 Unicode Driver UsageCount 1 10 Simba ODBC Driver for Google BigQuery Description Simba ODBC Driver for Google BigQuery2.0 # ... with 50 more rows
Anda dapat mengunduh driver ODBC untuk DBMS lain di tautan berikut:
Untuk berbagai DBMS, nama parameter untuk koneksi mungkin berbeda, misalnya:
- PostgreSQL / MySQL / MariaDB - pengguna, kata sandi, host, port, dbname;
- GoogleBigQuery - proyek, set data;
- ClickHouse - pengguna, kata sandi, db, port, host;
Menggunakan administrator sumber data ODBC, Anda bisa menjalankan panduan untuk membuat sumber data ODBC. Untuk melakukan ini, cukup buka administrator, buka tab "Custom DSN" dan klik tombol "Add ...".

Saat membuat sumber data menggunakan administrator, Anda memberinya nama, DSN (Nama Sumber Data).

Pada contoh di atas, kami membuat sumber data dengan DSN "my_test_source". Sekarang kita dapat menggunakan sumber ini untuk terhubung ke Microsoft SQL Server, dan tidak menentukan parameter koneksi lain dalam kode.
Menghubungkan ke database melalui antarmuka odbc menggunakan DSN # DSN con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password")
Anda dapat melihat nama semua sumber data ODBC yang dibuat pada PC Anda menggunakan fungsi odbcListDataSources()
.
name description <chr> <chr> 1 BQ Simba ODBC Driver for Google BigQuery 2 BQ_main Simba ODBC Driver for Google BigQuery 3 BQ ODBC Simba ODBC Driver for Google BigQuery 4 OLX Simba ODBC Driver for Google BigQuery 5 Multicharts Simba ODBC Driver for Google BigQuery 6 PostgreSQL35W PostgreSQL Unicode(x64) 7 hillel_bq Simba ODBC Driver for Google BigQuery 8 blog_bq Simba ODBC Driver for Google BigQuery 9 MyClientMSSQL SQL Server 10 local_mssql SQL Server 11 MSSQL_localhost SQL Server 12 my_test_source SQL Server 13 Google BigQuery Simba ODBC Driver for Google BigQuery
Contoh menghubungkan ke Microsoft SQL Server menggunakan paket RMSSQL
RMSSQL
tidak dipublikasikan di CRAN, jadi Anda dapat menginstalnya dari GitHub menggunakan paket devtools
.
install.packages("devtools") devtools::install_github("bescoto/RMSSQL")
Contoh koneksi menggunakan driver DBI RMSSQL # library(RJDBC) library(RMSSQL) library(DBI) # RMSSQL con <- dbConnect(MSSQLServer(), host = 'localhost', user = 'my_username', password = 'my_password', dbname = "mybase")
Dalam kebanyakan kasus, menggunakan paket DBI
untuk bekerja dengan database, Anda akan terhubung dengan cara ini. Yaitu instal salah satu paket driver yang diperlukan, melewati fungsi dbConnect
sebagai nilai argumen drv , fungsi driver untuk terhubung ke DBMS yang Anda butuhkan.
Contoh menghubungkan ke MySQL, PostgreSQL, SQLite dan BigQuery # MySQL library(RMySQL) con <- dbConnect(MySQL(), host = 'localhost', user = 'my_username', password = 'my_password', dbname = "mybase", host = "localhost") # PostrgeSQL library(RPostgreSQL) con <- dbConnect(PostgreSQL(), host = 'localhost', user = 'my_username', password = 'my_password', dbname = "mybase", host = "localhost") # PostrgeSQL library(RPostgreSQL) con <- dbConnect(PostgreSQL(), host = 'localhost', user = 'my_username', password = 'my_password', dbname = "mybase", host = "localhost") # SQLite library(RSQLite) # connection or create base con <- dbConnect(drv = SQLite(), "localhost.db") # Google BigQuery library(bigrquery) con <- dbConnect(drv = bigquery(), project = "my_proj_id", dataset = "dataset_name")
Cara menyembunyikan kata sandi basis data dalam skrip R.
Di atas, saya memberikan beberapa contoh yang dapat digunakan untuk terhubung ke basis data apa pun, tetapi ada satu minus di dalamnya, dalam bentuk ini semua akses basis data, termasuk kata sandi, disimpan sebagai teks dalam skrip itu sendiri.
Jika semua skrip Anda dikerahkan dan dijalankan secara eksklusif di PC Anda, dan itu dilindungi kata sandi pada saat yang sama, maka kemungkinan besar tidak akan ada masalah. Tetapi jika Anda bekerja dengan seseorang di server yang sama, maka menyimpan kata sandi dari database dalam teks skrip Anda bukanlah solusi terbaik.
Setiap sistem operasi memiliki utilitas untuk mengelola kredensial. Misalnya, pada Windows, ini adalah Manajer Kredensial. Anda dapat menambahkan kata sandi yang Anda gunakan untuk terhubung ke database melalui paket keyring
ke repositori ini. Paket ini adalah cross-platform dan contoh di atas akan bekerja di sistem operasi apa pun, setidaknya pada Windows, MacOS dan Linux.
# install.packages("keyring") # library(keyring) library(RMSSQL) # key_set_with_value(service = "mssql", username = "my_username", password = "my_password") # RMSSQL con <- dbConnect(MSSQLServer(), host = 'localhost', user = 'my_username', password = key_get("mssql", "my_username"), dbname = "mybase")
Yaitu menggunakan fungsi key_set_with_value()
, Anda menambahkan kata sandi ke penyimpanan kredensial, dan menggunakan key_get()
minta, dan hanya pengguna yang menambahkannya ke toko yang dapat meminta kata sandi. Dengan menggunakan keyring
Anda dapat menyimpan kata sandi tidak hanya dari database, tetapi juga dari layanan apa pun, serta token otorisasi ketika bekerja dengan API.
Membuat tabel dan menulis ke database
Menulis ke database dilakukan oleh fungsi dbWriteTable()
.
Argumen untuk fungsi dbWriteTable()
:
Argumen yang diperlukan dalam huruf tebal, huruf miring adalah opsional
- objek koneksi conn - DBMS dibuat menggunakan fungsi
dbConnect
; - nama - nama tabel dalam DBMS dimana data akan ditulis;
- value - tabel (objek dari kelas data.frame / data.table / tibble_frame) dalam R, data yang darinya akan ditulis ke DBMS;
- row.names - Menambahkan kolom row_names dengan nomor baris ke tabel, default ke FALSE .
- overwrite - Timpa tabel jika tabel dengan nama yang ditentukan dalam argumen nama sudah ada dalam DBMS, nilai defaultnya adalah SALAH ;
- append - Menambahkan data jika tabel dengan nama yang ditentukan dalam argumen nama sudah ada dalam DBMS, nilai defaultnya adalah SALAH ;
- field.types - Menerima vektor bernama, dan menetapkan tipe data di setiap bidang saat menulis ke DBMS, default ke NULL ;
- temporary - Memungkinkan Anda untuk membuat tabel sementara dalam DBMS, yang akan tersedia hingga koneksi dengan database terputus; nilai defaultnya adalah SALAH .
Contoh penulisan data ke DBMS melalui DBI # library(odbc) # DSN con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password") # iris, R iris dbWriteTable(conn = con, name = "iris", value = iris) # dbDisconnect(con)
Untuk melihat tabel dalam database, gunakan fungsi dbListTables()
, untuk menghapus tabel dbRemoveTable()
Contoh meminta daftar tabel dan menghapus tabel dari DBMS # library(odbc) # con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password") # dbListTables(con) # iris dbRemoveTable(con, "iris") # dbDisconnect(con)
Membaca data dari DBMS
Menggunakan DBI
Anda bisa meminta seluruh tabel atau hasil dari mengeksekusi query SQL Anda. Fungsi dbReadTable()
dan dbGetQuery()
digunakan untuk melakukan operasi ini.
Contoh permintaan tabel iris dari DBMS # library(odbc) # con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password") # iris iris dbiris <- dbReadTable(con, "iris") # dbDisconnect(con)
Contoh memuat hasil mengeksekusi SQL dari DBMS # library(odbc) # con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password") # setosa <- dbGetQuery(con, "SELECT * FROM iris WHERE Species = 'setosa'") # dbDisconnect(con)
Manipulasi data dalam DBMS (DML)
Fungsi dbGetQuery()
atas digunakan secara eksklusif untuk meminta sampel data (SELECT).
Untuk operasi manipulasi data, seperti UPDATE, INSERT, DELETE, fungsi dbExecute()
ada di DBI
.
Kode sampel untuk memanipulasi data dalam DBMS # library(odbc) # con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password") # (INSERT) dbExecute(con, "INSERT INTO iris (row_names, [Sepal.Length], [Sepal.Width], [Petal.Length], [Petal.Width], [Species]) VALUES (51, 5.0, 3.3, 1.7, 0.3, 'new_values')") # (UPDATE) dbExecute(con, "UPDATE iris SET [Species] = 'old_value' WHERE row_names = 51") # (DELETE) dbExecute(con, "DELETE FROM iris WHERE row_names = 51") # dbDisconnect(con)
Transaksi dalam DBMS
Transaksi adalah operasi baca dan tulis berurutan. Akhir transaksi dapat berupa menyimpan perubahan (komit, komit) atau membatalkan perubahan (rollback, rollback). Sehubungan dengan database, transaksi adalah serangkaian pertanyaan, yang diperlakukan sebagai permintaan tunggal.
Kutipan dari artikel "Transaksi dan mekanisme kendali mereka"
Suatu transaksi merangkum beberapa pernyataan SQL dalam sebuah unit dasar. Di DBI
awal transaksi dimulai dengan dbBegin()
dan kemudian dikonfirmasi dengan dbCommit()
atau dibatalkan dengan dbRollback()
. Dalam hal apa pun, DBMS menjamin bahwa: semua atau tidak satu pun pernyataan akan diterapkan pada data.
Misalnya, selama transaksi, mari tambahkan 51 baris ke tabel iris, lalu ubah nilai Sepal.Width menjadi 5 baris dan hapus 43 baris dari tabel.
Contoh kode transaksi # library(odbc) # con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password") # dbGetQuery(con, "SELECT * FROM iris WHERE row_names IN (5, 43, 51)") # row_names Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5 5.0 3.6 1.4 0.2 setosa # 2 43 4.4 3.2 1.3 0.2 setosa # 3 51 7.0 3.2 4.7 1.4 versicolor # dbBegin(con) # dbExecute(con, "INSERT INTO iris (row_names, [Sepal.Length], [Sepal.Width], [Petal.Length], [Petal.Width], [Species]) VALUES (51, 5.0, 3.3, 1.7, 0.3, 'new_values')") # dbExecute(con, "UPDATE iris SET [Sepal.Width] = 8 WHERE row_names = 5") # 43 dbExecute(con, "DELETE FROM iris WHERE row_names = 43") # dbCommit(con) # dbGetQuery(con, "SELECT * FROM iris WHERE row_names IN (5, 43, 51)") # row_names Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5 5 8.0 1.4 0.2 setosa # 2 51 7 3.2 4.7 1.4 versicolor # 3 51 5 3.3 1.7 0.3 new_values
Contoh Kode Pembatalan Transaksi # library(odbc) # con <- dbConnect(odbc(), DSN = "my_test_source", UID = "my_username", PWD = "my_password") # dbGetQuery(con, "SELECT * FROM iris WHERE row_names IN (5, 43, 51)") # row_names Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5 5.0 3.6 1.4 0.2 setosa # 2 43 4.4 3.2 1.3 0.2 setosa # 3 51 7.0 3.2 4.7 1.4 versicolor # dbBegin(con) # dbExecute(con, "INSERT INTO iris (row_names, [Sepal.Length], [Sepal.Width], [Petal.Length], [Petal.Width], [Species]) VALUES (51, 5.0, 3.3, 1.7, 0.3, 'new_values')") # dbExecute(con, "UPDATE iris SET [Sepal.Width] = 8 WHERE row_names = 5") # 43 dbExecute(con, "DELETE FROM iris WHERE row_names = 43") # dbRollback(con) # dbGetQuery(con, "SELECT * FROM iris WHERE row_names IN (5, 43, 51)") # row_names Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5 5.0 3.6 1.4 0.2 setosa # 2 43 4.4 3.2 1.3 0.2 setosa # 3 51 7.0 3.2 4.7 1.4 versicolor
Paket RODBC
Paket RODBC
menyediakan antarmuka yang berdiri sendiri untuk menghubungkan dan bekerja dengan DBMS melalui antarmuka ODBC.
RODBC
tidak kompatibel dengan DBI
, mis. Anda tidak dapat menggunakan objek koneksi yang dibuat menggunakan RODBC
dalam fungsi yang disediakan oleh paket DBI
.
Fitur utama dari paket RODBC
odbcConnect
- Koneksi ke DBMS melalui DSN;odbcDriverConnect
- Koneksi ke database melalui string koneksi;sqlQuery
- Mengirim kueri ke DBMS, dan mendapatkan hasil eksekusi. Mendukung kueri apa pun: SELECT, UPDATE, INSERT, DELETE.sqlFetch
- Dapatkan seluruh tabel dari DBMS;sqlTables
- Dapatkan daftar tabel dalam database.sqlSave
- Buat tabel baru di database, atau tambahkan data baru ke tabel yang ada;sqlUpdate
- Memperbarui data dalam tabel yang sudah ada di DBMS;sqlDrop
- Hapus tabel dalam DBMS;odbcClose
- Akhiri koneksi ke DBMS.
Contoh bekerja dengan RODBC
Dari sudut pandang saya, RODBC
kurang fungsional daripada DBI
, tetapi memiliki semua fungsi yang diperlukan untuk bekerja dengan DBMS.
Contoh interaksi dengan DBMS melalui RODBC # library(RODBC) # con_string <- odbcDriverConnect(connection = "Driver=SQL Server;Server=localhost;Database=mybase;UID=my_username;PWD=my_password;Port=1433") # DSN con_dsn <- odbcConnect(dsn = "my_test_source", uid = "my_username", pwd = "my_password") # sqlSave(con_dsn, dat = iris, tablename = "iris") # iris sqlSave(con_dsn, dat = iris, tablename = "iris", append = TRUE) # 4 sqlFetch(con_dsn, "iris", rownames = FALSE, max = 4) # R iris[1, 5] <- "virginica" # sqlUpdate(con_dsn, dat = iris, tablename = "iris") # 4 sqlFetch(con_dsn, "iris", rownames = FALSE, max = 4) # sqlDrop(con_dsn, sqtable = "iris") # odbcCloseAll()
Transaksional
Secara default, transaksionalitas dalam RODBC
dimatikan. Manajemen transaksi dilakukan oleh dua fungsi.
odbcSetAutoCommit
- Beralih antara mode operasi DBMS normal dan transaksional;odbcEndTran
- Konfirmasikan atau batalkan transaksi.
Mengaktifkan dan menonaktifkan mode transaksi dilakukan oleh fungsi odbcSetAutoCommit
menggunakan argumen autoCommit .
Contoh bekerja dalam mode transaksional dalam RODBC # library(RODBC) # DSN con_dsn <- odbcConnect(dsn = "my_test_source", uid = "my_username", pwd = "my_password") # sqlSave(con_dsn, dat = iris, tablename = "iris") # odbcSetAutoCommit(con_dsn, autoCommit = FALSE) # 4 sqlFetch(con_dsn, "iris", rownames = FALSE, max = 4) # rownames SepalLength SepalWidth PetalLength PetalWidth Species # 1 1 5.1 3.5 1.4 0.2 setosa # 2 2 4.9 3.0 1.4 0.2 setosa # 3 3 4.7 3.2 1.3 0.2 setosa # 4 4 4.6 3.1 1.5 0.2 setosa # R iris[1, 5] <- "virginica" # sqlUpdate(con_dsn, dat = iris, tablename = "iris") # 4 sqlFetch(con_dsn, "iris", rownames = FALSE, max = 4) # rownames SepalLength SepalWidth PetalLength PetalWidth Species # 1 1 5.1 3.5 1.4 0.2 virginica # 2 2 4.9 3.0 1.4 0.2 setosa # 3 3 4.7 3.2 1.3 0.2 setosa # 4 4 4.6 3.1 1.5 0.2 setosa # odbcEndTran(con_dsn, commit = FALSE) # 4 sqlFetch(con_dsn, "iris", rownames = FALSE, max = 4) # rownames SepalLength SepalWidth PetalLength PetalWidth Species # 1 1 5.1 3.5 1.4 0.2 setosa # 2 2 4.9 3.0 1.4 0.2 setosa # 3 3 4.7 3.2 1.3 0.2 setosa # 4 4 4.6 3.1 1.5 0.2 setosa # sqlUpdate(con_dsn, dat = iris, tablename = "iris") # odbcEndTran(con_dsn, commit = TRUE) # 4 sqlFetch(con_dsn, "iris", rownames = FALSE, max = 4) # rownames SepalLength SepalWidth PetalLength PetalWidth Species # 1 1 5.1 3.5 1.4 0.2 virginica # 2 2 4.9 3.0 1.4 0.2 setosa # 3 3 4.7 3.2 1.3 0.2 setosa # 4 4 4.6 3.1 1.5 0.2 setosa # odbcClose(con_dsn)
Kesimpulan
Dua metode bekerja dengan database dalam bahasa R, DBI
dan RODBC
yang dijelaskan dalam artikel ini cukup universal dan akan bekerja dengan hampir semua DBMS.
Satu-satunya perbedaan dalam operasi antara DBMS yang berbeda adalah proses koneksi. Untuk sebagian besar DBMS populer, ada paket terpisah yang merupakan driver. Untuk sisa DBMS, perlu untuk mengkonfigurasi koneksi melalui antarmuka ODBC menggunakan RODBC
odbc
atau RODBC
. Semua manipulasi lain, terlepas dari DBMS yang Anda pilih, tidak akan berubah. Pengecualian mengirim kueri SQL, tergantung pada dialek SQL yang didukung oleh DBMS yang Anda gunakan.