Sqlite
- 4. 目次
• とりあえずサンプルを触ってみよう
• アプリ内にデータを保存する方法あれこれ
• SQLiteってなんだろう?
– RDBMSとは
– SQLとは
• iOSでSQLiteを使うための手順
• 私はこんな風に工夫してます
• 気をつけておくべきポイント
- 6. アプリ内にデータを保存する方法あれこれ
• NSUserDefaults
– お手軽
– 多数・大容量のファイルを扱うには遅い
– 設定などちょっとした値の保存に便利
• SQLite
– ちょっと手間
– 速い
– SQLをそのまま使えるので、SQLがわかる人は習得が早い
• わからない人は覚えることが増える…
• CoreData
– 内部でSQLiteを使っているらしい
– Objectをそのまま保存できるとか
– 速いらしい
– iCloudとの連携がしやすいらしい
– なんだか難しいので使ってません
• iCloud以外はSQLiteのみで十分対応可能
• 自分でファイルを作って保存
– うまくやれば多分一番速い
– 複雑なデータの保存は非常に面倒
– 画像や動画の場合は、SQLiteにはパスだけ保存とか
- 10. SQL??
• RDBMSにおいてデータの操作や定義をする
ための言語
• とりあえず4つ覚えましょう
– 挿入:INSERT
INTO
[表名]
VALUES
([値1],
[値2])
– 更新:UPDATE
[表名]
SET
[列名2]=[値2],
[列名3]=[値3]
WHERE
[列名1]=[値1]
– 削除:DELETE
FROM
[表名]
WHERE
[列名1]=[値1]
– 検索:SELECT
*
FROM
[表名]
WHERE
[列名1]=[値1]
• アプリならこの4つだけでも大抵なんとかなり
ます
– サンプルもこの4つのみを使ってます
- 15. 気をつけておくべきポイント
• アップデートのときは要注意
– データベースファイルを入れ替えても、古いデータベースは残ったま
ま!
– 構造を変えたときは、その変更を反映させる必要がある
• 古いデータベースを消して上書きする
– それまでのデータが消えてしまう
– 簡単
– 開発中の変更はとりあえずこっちで
• SQLでデータベースの構造を書き換える
– ALTER
TABLEなどをiOS上で実行
– めんどくさい
– 他にどうしようもないならやるしかない
– 辞書データだけ変えたい場合
• 辞書データ用のデータベースとユーザーデータ用のデータベースの2つを
別々に持っていると便利
• 辞書データのみアップデート時に上書き
• 2つのデータベースを連結(ATTACH)して使えばOK