以下のことが気になる方は記事を読んでみてください!
そうでない方も是非!!!
- SQLiteって何?
- どうやって使うの?
- メリットは?
- デメリットは?
SQLiteって何?
博士!SQLliteって何?
データベースの1つで、最近注目のデータベースじゃ。
読み方はエスキューライトじゃ。
どんなデータベースなの?
OracleやPostgresやMySQLなど、
近年よくつかわれているデータベースにように
サーバーにデータベースを配置するのではなく、
アプリケーションに組み込んで利用するデータベースなのじゃ。
どうやって使うの?
必要なAPIをダウンロードして呼び出すだけじゃ。
どうやってデータが保存されるの?
データは単一のファイルに保存するようになっているのじゃ。プログラムからデータベースを操作する場合は単純にライブラリから呼び出すだけで操作ができるのじゃ。
どういう時に使うの?
記憶容量に余裕のない環境でも軽快に動作させることができるため、スマホのアプリ開発などでよく使われておるようじゃ。
ドローンや温度計、時計、医療機器など
近年、注目されている分野のものにも使われているのじゃ。
他にも色んな特徴があるから下にまとめておくぞ。
- セットアップ不要
- サーバー不要→ライブラリから呼び出すだけだから
- サポートしている型は、Null/Integer/Real/Text/BLOBのみ
- 無償のデータベース
- 多言語に対応
PHPやPythonなどでは標準サポートされている - CUI・GUIで操作可能
どうやって使うの?
博士~。
どんなデータベースかは分かったけど、
どうやって使うの?
まずはダウンロードするところからじゃ。
下のリンクから媒体をダウンロードするのじゃ。
まず、最初にやりたいことはデータベースの作成じゃ。上でも言ったようにSQLiteはファイルでデータを管理するから、そのファイルを作成するぞ。
さっきダウンロードしたディレクトリに移動して、以下のようにコマンドを打つのじゃ。
sqlite3 ファイル名.sqlite3
ポイントはファイルの拡張子じゃ。
sqlite3にしておくのじゃぞ。
次はテーブルを作るぞ。
CREATE TABLE テーブル名
(カラム名1 INTEGER, カラム名2 VARCHAR(数字));
数値と文字列のカラムが定義されたテーブルができたぞ。
今度はレコードを追加してみるぞ。
INSERT INTO テーブル名
(カラム名1, カラム名2) VALUES(値1, 値2);
今作ったデータをみてみよう。
SELECT カラム名 FROM テーブル名;
条件を指定してみるぞ。
SELECT カラム名 FROM テーブル名 WHERE 条件式;
今度は並び替えじゃ。
SELECT カラム名 FROM テーブル名 ORDER BY カラム名;
次は取り出すレコード数を指定してみるのじゃ。
SELECT カラム名 FROM テーブル名 LIMIT 取り出したいデータ数;
データを更新してみるかの。
UPDATE テーブル名 SET カラム名=値 WHERE節;
データを消してみるのじゃ。
DELETE FROM テーブル名 WHERE節;
消したから、ファイルからデータをインポートじゃ。
.import ファイル名 テーブル名;
テーブル名を変更しようかの。
ALTER TABLE 現在のテーブル名 RENAME TO 新テーブル名;
カラムを追加してみるかの。
ALTER TABLE テーブル名 ADD 追加カラム名 データ型;
やっぱり、もうこのデータはいらんからテーブルごと削除じゃ。
DROP TABLE テーブル名;
博士~。もうおなか一杯。
まだじゃ。
最近物忘れがひどくてのぉ。
使用しているデータベースはなんじゃったかの。
.database
作ったテーブルも忘れたわい。
.table
博士はSQLiteで知らないことないんじゃないの?
わしにも分からんことはある。
そんな時はこれじゃ。
.help
もう僕は疲れたよ。
わしもじゃ。終ろう。
.quit
- OracleやPostgresと書き方に大差はない
- ここではよく使うSQLばかりを説明したが、トリガーやビューなども使える
- 特に設定を最初にしなくてもデータベースを作成できる
メリット・デメリットは?
博士~。
最後に、SQLiteを使うメリットデメリットを教えて!
分かった。
下にまとめておくぞ。
たくさんあるから、よく読んで使うタイミングを考えておくのじゃぞ。
まずは、メリットじゃ。
- バックアップが簡単!(1ファイル1データベース)
- SQL92準拠だから、標準的なSQLはほぼ使える
- 設定が簡単!
- 無料(何よりうれしい)
- 多言語に対応している
次はデメリットじゃ。
- データの型が少ない
- 高負荷なシステムには向かない
- 書込がダブると書込エラーになる
- バージョン2と3でデータベースの互換性がない。
- パスワードが存在しない。
結論としては。。。
小規模な開発なら向いておる。
データベースを設定せずに作れるのは楽だが、
その分セキュリティ的にはほかのデータベースと比べて劣るかもしれないのぉ。
速度や構文は問題ないし、
結果的にはあり寄りのありじゃな。
世の中的にはIoTも進んでくるから、
今後はSQLiteの使用率はどんどん伸びるじゃろう。
勉強しておいて損のないデータベースじゃ。
どんどんコマンド打って、勉強してみる!
博士、ありがとう!
おわり。