RSQLite パッケージ
SQLite は軽量のデータベース管理システムソフトウェア
このページでは,R システムでの RSQLite パッケージのインストールを説明する.
【関連する外部ページ】
R システムの CRAN の URL: https://cran.r-project.org/
前準備
R システムのインストール
【関連する外部ページ】
R システムの CRAN の URL: https://cran.r-project.org/
RSQLite パッケージのインストール (Install RSQLite package)
- R の起動 (execute R)
- 「install.pacakges("RSQLite")」を使い,RSQLite パッケージをインストール (Install R package using install.packages())
install.packages("RSQLite")
- (オプション) CPAN ミラーサイトの選択 (Optionally, Choose CPAN mirror site)
「install.packages()」を実行すると,ミラーサイトを選択するウインドウが現れる場合がある. 日本国内を選んでおく.
* 操作手順例(「Japan (Hyogo)」をダブルクリック)
- インストール終了の確認
エラーメッセージが出ていないことを確認
- 「library(RSQLite)」のように操作して,依存パッケージのインストールを行う
パッケージを使うために,「library(RSQLite)」のようなコマンドを実行して,パッケージを読み込む必要がある. ここで,なぜ,パッケージを読み込んでいるかというと, 今インストールしたパッケージである RSQLite が, 他のパッケージのインストールを必要としており,初回のパッケージ読み込みにおいて,R が,そうした必要な他のパッケージを自動的にインストールしてくれるからです.
library("RSQLite")
- (オプション) パッケージを新しくインストールするかを尋ねてきたときには,「はい」をクリックし,パッケージのインストールを開始
RSQLite パッケージを使ってみる (try to use RSQLite package)
- RSQLite パッケージの読み込み
library("RSQLite")
- dbDriver() 関数を使い,drv オブジェクトを取得
drv <- dbDriver("SQLite", max.con = 1)
- dbConnect() 関数を使い,データベース管理システムソフトウェアと接続
conn <- dbConnect(drv, dbname="/tmp/mydb")
- SQL の create table で,テーブルを定義
rs <- dbSendQuery( conn, "create table commodity ( id integer primary key autoincrement not null, name text, price INTEGER );" )
- dbListTables() 関数をつかい,テーブル一覧を取得
dbListTables(conn)
- SQL の insert table で,テーブルの生成
rs <- dbSendQuery( conn, "insert into commodity values( 1, 'apple', 50 );" ) rs <- dbSendQuery( conn, "insert into commodity values( 2, 'orange', 20 );" )
- dbGetPreparedQuery() 関数をつかい,テーブルを生成
多数の行を一度に挿入したい時は、for ループなどは使わずに、 dbGetPreparedQuery() 関数を使う方が高速.
data <- data.frame( id = c(1, 2, 3), name = c("apple", "orange", "banana"), price = c("100", "80", "250" ), stringsAsFactors=F ) dbBeginTransaction(conn) dbGetPreparedQuery(conn, "insert into products values(:id, :name, :price)", bind.data=data) dbCommit(conn)
- SQL の select from を評価させてみる
rs <- dbSendQuery( conn, "SELECT * FROM commodity;;" ) t <- fetch(rs, n = -1) t
SQLite 3 でテーブルの中身を確認したいときの操作
端末で次のように操作する.行数が多いときは SQLiteman などを使うのが便利.
sqlite3
select * from commodity;
.exit