iPhoneデータベース入門(SQLite)Part.1 FMDBでSQLiteを扱う準備をしよう
iPhoneデータベースについての連載を始めることにしました。
本当にわかりやすく、なるべく実践的なデータベース解説にします。
やりたいことはデータの保存と、その取り出し
SQLite、さらに言うとFMDBを使います。
SQLiteってなに?
Wikipediaから抜粋してみます。
サーバとしてではなくアプリケーションに組み込んで利用される軽量のデータベースである。 一般的なRDBMSに比べて大規模な仕事には不向きだが、中小規模ならば速度に遜色はない。 また、APIは単純にライブラリを呼び出すだけであり、データの保存に単一のファイルのみを使用することが特徴である。バージョン3.3.8からは全文検索のFTS1モジュールがサポートされた。その後 FTS2 - FTS3 と強化を続けバージョン3.7.4からはFTS4モジュールがサポートされている。
http://ja.wikipedia.org/wiki/SQLite
これはもうそのまんまですね。
iPhoneアプリで使うローカルデータベースとしてSQLiteを使います。全くSQLiteになじみがない方にはピンと来ないかもしれませんが、SQLiteは単一のファイルです。
アプリのなかでSQLiteファイルを生成することもできますし、自分でつくったSQLiteファイルをアプリの中に組み込むこともできます。
SQLite Managerをダウンロード
SQLite Managerは雰囲気がphpMyAdminに似ているので、phpMyAdminになれてる人はこれを導入として使うといいのかなとおもいます。
手順解説
1.Firefoxをダウンロードする
こちらから→http://mozilla.jp/firefox/
「アプリケーション」の中に入ってると思います。
Firefoxを起動してください。
そのFirefoxのなかのGoogle検索で「SQLite Manager」と検索します。
SQLite Managerのページに飛んで、Firefoxに追加します。
(SQLite ManagerはFirefoxのアドオンです)
「Add to Firefox」をクリックして追加してください。
ダウンロードが終わるとこんな画面になるので、「再起動」をクリックする。
FireFoxを起動した状態で、メニューバーの「ツール」をクリック。SQLite Managerがあることを確認。起動させてみましょう。SQLite Managerをクリック!
SQLite Managerが立ち上がりましたね!
Litaをダウンロード
ぼくがいつも使ってるのはLitaです。SQLite Managerは使いやすいのにアドオンだからFirefoxを起動させないと使えない。めんどくさいというのが本音です。Firefoxを起動させないローカル環境で使えるSQLite Managerもありますが、結局自分のMacのサーバを動かすことになる。それにこっちはFireFoxのアドオンに比べて個人的には微妙な感じです。
LitaはAdobe Airで動いてます。アプリケーションとして軽く、スイスイ動いて快適!
手順解説
Litaをダウンロードしよう
こちらから→http://www.dehats.com/drupal/?q=node/58#install
「Install Now」のところをクリックしてインストールしてください。
これでSQLiteを扱う準備ができました。次はFMDBについて。
FMDBについて書かれてあるサイトまとめ
一番参考になるのはもちろんこのサイト様でしょう。
iOS で SQLite - FMDB の使い方 アカベコマイリ
FMDBについてこのサイトを見れば一通りわかります。FMDBについての概要解説はこのサイトに任せて、ぼくは次回から実践的にFMDBを使ってアプリを作っていきます。このサイト自体見やすいし、まとめかたもいい。しかもサンプルプロジェクトまでおいてくれている超親切な方です。会えるなら一度お会いしたいくらいのレベル(笑)。こんな風に親切にまとめてくださっているからこそ、Google検索でひっかかるんです。Googleは先生じゃないんですよ、実際に教えてくれているサイトの作者様が本当の先生なんだと声高に叫びたい! ...話がずれました
あと3つFMDBの記事を紹介します。
「一応、プログラム上からテーブルを作ったりも出来ますが、特に理由が無ければ事前にSQLite Mnagerなんかで事前に準備してしまった方が良いと思います。」とありますが、はじめからデータベースをつくっておく場合(テーブルも)と、プログラム上からつくる場合とがあり、適切に使い分けるのがよいでしょう。あらかじめ商品の情報などのデータがあり、アプリ起動中はこのデータベースを読み込んでほしい場合はつくっておくとよいでしょう。アプリを動かす上ではじめて必要になるデータベース、たとえばスケジュールやToDoなどはあらかじめつくりこんでおく必要はなく、それが必要になったときにプログラムにそう命令するのがいいです。しかし、テーブルの設計自体はあらかじめやっておく必要がありますよ。
使用例が少し書いてあります。これを見れば雰囲気はわかるのですが、
意外に初心者がつまづくのって、このサイト様より抜粋させていただきますと、
[db executeUpdate:@"INSERT INTO TEST (name) values (?)" , [NSString stringWithFormat:@"number %d", i]];
と
[db executeQuery:@"SELECT * FROM TEST"];
の比較で、executeUpdateとexecuteQueryのちがいを見逃していたりとか、そういうところだったりするんです。そういうのにも言及していけば、このブログには価値がでてくるのかなと思います。
FMDBってどんなのかなって感じでfmdb.mから必要箇所を抜粋してる。個人的にこれを見て感じてほしいのはパラメータの雰囲気。「?」の部分。valueをなにかinsertするときに、渡す値を?にしておき、そこには後ろの部分たちが順番に来ますよーってのを見てほしい。
SQLiteのおすすめ本紹介
SQLiteの本はこれがいいと思う。
SQLiteではSQL文をつかってデータベースを操作するんだけど、SQL文についても書かれてます。
これから連載していくFMDBなど、iPhoneでの実践的なSQLiteの使い方は書かれてはいませんが、
SQLiteってどんなものなの?と疑問に思い、書籍で手に入れたい人はこの本が良いのではないでしょうか。
次回:iPhoneデータベース入門(SQLite)Part.2 Xcode4.3.2でFMDBを使ったアプリをつくる
iPhoneデータベース入門記事一覧
iPhoneデータベース入門(SQLite)Part.1 FMDBでSQLiteを扱う準備をしよう
iPhoneデータベース入門(SQLite)Part.2 Xcode4.3.2でFMDBを使ったアプリをつくる
iPhoneデータベース入門(SQLite)Part.3 「検索日記」を実装するにあたっての考え方
iPhoneデータベース入門(SQLite)終わりの始まり FMDBを使った「検索日記」のソースコード解説
======================
当ブログ管理人のツイッターはこちら
◎フォローしてくださると泣いて喜びます!ツイッター上で当ブログの質問などにもできるだけお答えしますし、役に立つiPhoneアプリ開発情報もつぶやきます。個人的なご依頼(たとえば、プログラミングの家庭教師、Skypeレッスンをしてくれないか、iPhoneアプリ開発の勉強会ってやってるの、とかですね)でもかまいません。
■スカイプレッスンについて
開発をしているとその都度ぶつかる問題があると思いますが、検索で調べてもなかなかわからない、あるいは調べても非常に時間がかかる場合があると思います。開発者のみなさんもお忙しいと思いますので、私のレッスンを受けながら開発を進めていただけると、大幅にお時間を短縮できます。加えて、iPhoneアプリ開発の基礎、応用が身につき、今後の開発もスムーズに進められます。
お問い合わせはツイッター、またはhiyoshimarukoアットマークgmail.comまでお願いします。(アットマークを@にしてください)お待ちしております!