SQLiteについて
- SQLiteはリレーショナルデータベース。
- ビュー、トリガー、トランザクションなどの機能を備える。
- .Net,Java,PHP,Rubyなど幅広く対応
- 手軽であることが最大の利点
- データベースサーバーは不要。
- 大規模データには向かない。
- ユーザーごとのアクセス権限の概念がない。
- データ型のチェックを行わない。
- バージョン2とバージョン3に互換性はない。
- 小規模データベース向き。
- SQL文の最後に必ずセミコロンをつけること。
- スペルを間違ってもエラーにならない。
- バージョン2のデータ型は数値型と文字列型の2種類しかない。
- 1つのデータベースに1つのファイル。
- データ管理はコマンドプロンプトで行われる。
- サードパーティによるGUIツールもある。
- オートナンバー、外部結合、UNIONもサポート。交差結合も。
SQLiteについて2
- INTEGERフィールドに文字列を格納することが可能。
- 幾種類かの関数も容易されている。
- 演算子もある。
- UTF8とUTF16のエンコードに対応
- レコードを大量に削除しても、ファイルサイズが小さくはならない。
- ファイルサイズを小さくするにはVACUUMコマンドを実行する必要がある。
- VACUUMを自動化することができる。
- コメント。/* test */ -- Test
- LIMITが使用可能
- サブクエリーが使用可能。
- サブクエリーを使ったInsert,Updateが可能。
- インデックスはレコードの多く、参照が中心であるテーブルに指定すると良い。
- レコードが少なかったり、追加、削除の多いテーブルでインデックスを指定すると逆に遅くなる。
- トリガーも利用できる。変更履歴テーブルを作る時に便利。
- 複数のデータベース用に、ATTACHコマンドがある。DETACHで切り離し。
- 主キー CREATE TBALE hoge (a INTEGER PRIMARY KEY,b varchar(20));
- 外部キーの機能がある。デフォルトでは使用しない。
- ユニーク制約をかけられる。
- NOT NULL制約をかけられる。
- DEFAULT制約をかけられる。
- CHECH制約をかけられる。入力チェック。
- テンポラリテーブルを作成可能。(一時的なテーブル)
- テーブル名の変更が可能。
- フィールドの追加が可能。
- インデックスを作成できる。巨大データの参照速度を上げる。
- ロック機能がある。
- セーブポイント。ロールバックでどこまで、取り消すか調整できる。開放も可能。
- csvファイルをインポートするコマンドがある。
- 制約違反が発生した時の挙動を指定できる。
SQLiteでできないこと
- ALTER TABLEコマンドは使えないが、フィールド追加コマンドは使用可能。
- 右外部結合と完全外部結合はできない。(交差結合は可能)
- ビューへの書き込みもできない。
- GRANTおよびREVOKEコマンド
- 複数のユーザーがデータベースにアクセスして更新することはできない。(参照は可能)
命令
- ◇DISTINCT
- 重複を取り除いてデータを取得
- ◇HAVING
- グルーピング集計の絞りこみにはWHEREではなくHAVINGを使う。
- ◇Replace Into
- データの置き換え
- ◇EXPLAIN
- SELECT文と合わせて使う。出力データの使用されているインデックスを確認できる。
- ◇COPY
- CSVや、他のデータベースをインポートできる。
- ◇ON CONFLICT
- 制約違反が発生した時の挙動を指定できる。
- ◇VACUUM
- 不要領域を開放。DBファイルサイズも小さくなる。
SQLiteの独自コマンド
- 出力画面のフィールド幅を調整できる。
- ヘッダーを表示する
- NULL表記の変更
- ◇.show
- 現在設定値を表示。
- ◇.mode
- テーブルの表示方法を設定
- ◇.echo ON|OFF
- 実行したコマンドが、結果に表示されます。
- ◇.tables
- テーブル一覧を表示。
- ◇.indices
- インデックス一覧を表示
- ◇schema
- スキーマを表示
- ◇.database
- データベースとファイル名を表示
- ◇PRAGMAコマンド
- 様々な情報を取得できる。
SQLiteのダウンロードとインストール
- http://www.sqlite.org/からダウンロード
- zipファイルをダウンロードする。
- zipファイルを解凍してexeファイルに。
- exeファイルをコマンドプロンプトで実行。
- 以上で終わり。
コマンドプロンプトでの基本操作
◇SQLite起動、テーブル作成、データ入力、dbファイル確認。//dbファイル名を指定して、sqlite3.exeを実行する。 C:\Documents and Settings\Administrator>C:\Project\sqlite\sqlite3.exe C:\Project\sqlite\test.db 「;」コマンドを入力。 sqlite> create table neko(a,b); sqlite> insert into neko(a,b) values(1,'timo'); sqlite> select * from neko; //閉じる。 sqlite> exit;「C:\Project\sqlite」フォルダに「test.db」が作成されていることを確認する。
ODBCドライバ
- WEBサイトからダウンロード。
- exeファイルを実行してインストール
- あとは管理ツールからのODBCに設定可能。
- 文字化けするのが弱点。
Firefoxのアドイン | SQLite Manager
- Firefoxを起動
- WEBサイトよりアドオンを追加。「+ Firefoxへ追加」ボタンを押すのみ。
- 右上のメニューを選択→カスタマイズを選択→SQLite Managerをメニューに登録する。
- もう一度メニューを開くと、SQLite Managerのアイコンがあるのでクリックして起動するだけ。
旧Firefoxのバージョンの場合。
使い方はアドインをインストール後、「ツール」⇒「SQLite Manager」を選択するだけ。
Android SDKでdbファイルを取得する手順
◇手順- Androidエミュレータを起動
- Eclipeの右上にあるDDMSパースペクティブをクリック。
- 通常は左側にある「Devices」ビューで、対象デバイスを選択。
- 通常は右側にある「ファイルエクスプローラー」ビューにファイル一覧が表示されることを確認。
- 対象のプロジェクトファイルを開く。
- databasesフォルダの中にあるファイルがdbファイル。
- dbファイルを選択して、Eclipse右上にあるフロッピーディスクアイコンをクリックするとdbファイルをダウンロードできる。
xxx