sqlite
SQLiteでテーブルにデータを追加する際、あれば更新なければ追加ということがしたかったので 1.あるかどうかのチェックをSELECT文 2-1.あればUPDATE文 2-2.なければINSERT文 という形で実装していたのですが、なければSELECT→INSERT、あればDELETE→INSERTと…
DBテーブルからのUITableViewに表示する際に、データ数が多い場合に全部読み取るとメモリ消費も大きくなりますし、データに対して処理をする場合は時間もたくさんかかってしまいます。そのため、一度に読む量を区切り順番にページ送りして表示するようにペー…
iPhoneアプリをリリース後に、機能追加でテーブルの構造を変更する必要が生じました。sqlite3のDBファイルは、初回のアプリインストール時に作成されて、アプリをバージョンアップした際でも上書きされません。 ※アンインストールすると、DBファイルも消えま…
今回は、制約です。だんだん、iPhoneから遠ざかってる気がしてきましたがw 制約とはテーブルという器に、入れる値にルールをつける機能です。この列にはこんな値しか許さないというルールをつけることができます。 今回は次の4点を紹介しておきます。 NOT N…
テーブルにインデックスをつけましょう。 インデックスとは、本で言うところの目次です。特定の情報を探すときに、本のページを全部読むより、目次だけを読む方が早く読めますよね。それと同じでテーブルにデータを入れた時に、インデックスを作成することで…
SQLite3の過去の記載に間違いがちらほら、気づいたところは直しました。まだ間違いがあるかもしれませんので、サンプルソースを確認していただいた方が確実です。また、テーブルの構造を変更しましたのでご注意ください。 サンプルは、Testボタンのみw ボタ…
今回はDBのエラー処理を実装していきます。エラー処理を放置していましたので作りこんで行きます。 基本方針として、メソッド毎に戻り値を見てエラー処理をするのは面倒なので、try catchを使ってエラーをさばいていくことにします。 try catchを使えば、try…
今回は、追加と更新についてです。SQLではINSERT文とUPDATE文を使います。 INSERT文の例 INSERT文では、どのテーブルにどんな値を追加したいかを記述します。列の個数と列の順番にあわせて値を記述します。 INSERT INTO テーブル名 VALUES (値, 値, 値, 値…)…
今回は、削除についてです。SQLではDELETE文を使います。 DELETE文の例 DELETE文では、どのテーブルを削除したいかを記述します。また、削除するときにこんなデータだけ削除するという、条件をつけることもできます。 DELETE FROM TABLE名 WHERE 条件例えば…
SQLite3の3回目、基本的なデータ操作について書きます。 1回目で書いた通り、データの操作はSQLで行います。SQLのDML文(データ操作言語)には、4つの種類があります。 SELECT(選択) INSERT(追加) UPDATE(更新) DELETE(削除) 名は体を表す。見たまんまです。 …
前回、twitterDB.sqliteというDBファイルを作成するところまでやりました。今回は、プログラムからテーブルを使える状態にする準備部分の実装をやります。 まず、前回作った「twitterDB.sqlite」を、xcodeプロジェクトに追加してください。 それと、#import …
なぜいまさら、SQLiteなのか。それはCore Dataに挫折したからです。私がOracleとかSQL Serverに慣れ親しんでいるからというのもあるのですが、Core Data使いにくい。DB(データベース)を使ったことがない人はSQLが障壁になるのかもしれませんが、より複雑な…