SQLiteは小規模なシステムやシステムのテスト用として用いられることの多いRDBMSです。本記事ではSQLiteについて、特徴やメリット、注意点、ほかのRDBMSとの違いを中心に解説します。また、インストール方法や使い方、代表的なコマンドも紹介するのでぜひ、今後のSQLite学習の参考にしてください。
- 1. SQLiteとは?
- 2. 対応言語
- 3. SQLiteの歴史
- 4. SQLiteの特徴
- 5. SQLiteとMySQLの違い
- 6. 主要データベースとの比較
- 7. SQLiteの向き・不向き
- 8. SQLiteを利用するメリット
- 9. SQLiteの注意点
- 10. SQLiteの将来性
- 11. SQLiteの使い方
- 11.1. SQLiteの記述ルール
- 11.2. SQLiteの基本的なコマンド
- 11.2.1. ▼ヘルプを表示する
- 11.2.2. ▼設定情報を表示する
- 11.2.3. ▼バージョンを表示する
- 11.2.4. ▼データベースを作成する
- 11.2.5. ▼データベースファイルが作成されたか調べる
- 11.2.6. ▼テーブルを作成する
- 11.2.7. ▼テーブルが作成されたか調べる
- 11.2.8. ▼バックアップを行う
- 11.2.9. ▼テーブルデータを出力する
- 11.2.10. ▼バックアップを利用して復元する
- 11.2.11. ▼CSV(テキストデータ)取り込み・変更
- 11.2.12. ▼指定ファイルをテーブルに挿入する
- 11.2.13. ▼テーブルを一覧で表示する
- 11.2.14. ▼カラムを追加する
- 11.2.15. ▼終了する
- 12. SQLiteのインストール方法
SQLiteとは?
SQLiteとは、オープンソースのRDBMS(リレーショナルデータベース管理システム)です。ファイル形式で、ほかのソフトウェアに組み込んで利用することを想定した軽量な造りになっているため、SQLiteをアプリケーションに組み込めばサーバ構築せずとも容易にDBMS機能を搭載できます。こういった手軽さや可用性の高さから現在も幅広く活用されています。呼び方は「エスキューライト」です。
SQLiteは一般的なRDBMSとは異なり、サーバ構築が不要です。そのため、小規模なシステムや検証用に利用されることが多いです。反対に大規模なシステムの場合や本番環境には不向きのなので別のRDBMSを利用しましょう。
≫まずは簡単30秒で無料お問い合わせから≪
対応言語
C言語に対応しています互換性のある。C言語と互換性のある言語を利用できます。C++は対応してないので注意が必要です。
SQLiteはどんな用途に使われることが多い?
SQLiteはPCやスマートフォンなどのアプリケーションに組み込まれることが多いです。そういった点から、世界で最も利用されているデータベースエンジンと称されることもあります。処理性能や扱うことのできるデータベースの規模は商用のものや本格的なものDBMSに及びませんが、その軽量さからスマートフォンなどのCPU容量の少ない環境でも高速動作が可能です。
SQLiteの歴史
後のSQLiteとなる「SQLite1」はドウェインリチャード・ヒップ氏によって開発され、2000年8月にリリースされました。現在のSQLiteのライセンスはパブリックドメインとなっていますが、リリース当初はGDBMエンジンを使用していたこともあってGRLライセンスでした。その翌年には「B-Treeストレージエンジン」が新たにリリースされるなど、SQLiteはPCや携帯電話から自動車まで、幅広く搭載されるようになりました。その過程で、携帯会社「モトローラ」からバイナリーデータのサポートに関する依頼を受け、SQLite3が開発され、2004年にリリースされました。現在ではSQLiteコンソーシアムが主体となって開発を行っています。
SQLiteの特徴
データベースの準備が不要でアプリに組み込める
多くのRDBMS、たとえばMySQLやOracle databaseなどはそれ自体が動作するサーバ型のソフトウェアですが、SQLiteはそういった一般的なRDBMSとは異なり、少し特殊なRDBMSです。SQLiteはRDBMSと紹介しましたが、明確には「アプリケーションに組み込んで利用するRDBMS」です。一般的なサーバ型のDBMSだと、セットアップや構成ファイルの設定などを行わなくてはなりませんが、SQLiteは軽量でファイル形式なので、サーバプロセスではなく、ライブラリとして使用でき、セットアップやメンテナンスが簡単に行えるので開発者にとっても非常に使いやすいものになっています。SQLiteは、その依存性の少なさから「自己完結型システム」と称されることもあります。
データベースにはプログラムからAPIを経由してアクセスできるほか、コマンドラインツールをりようして、OSのシェルから直接テーブルの作成やデータを取得といった、操作を行うこともできます。さまざまな環境に組み込んで使用できます。
マルチプラットフォームに対応
SQLiteは外部ライブラリに対する依存性が低いため、Windows、macOS、Linux、Android、iOSなど、大抵のプラットフォームに対応します。
軽くて速い
SQLiteはその名前のとおり、非常に軽量で簡易的なデータベースです。SQLiteの本体ファイルサイズは600KB程度で、他のデータベースと比べて軽量で、メモリの消費量も少ないため処理性能の低いデバイスに組み込むこともでき、サーバではなくライブラリとしても利用できます。
パブリックドメイン
SQLiteのライセンスは「パブリックドメイン」といって、著作権が放棄された著作物です。著作権が存在しないのでライセンスを気にする必要はありません。
データ型を指定する必要がない
通常のデータベースだとテーブルのカラムごとにデータ型を指定する必要がありますが、SQLiteでは必要ありません。もちろん、データ型を指定することもできますが、指定しなくても格納されたデータからデータ型を判別してくれます。また、単一のテーブルカラムに複数のデータ型を格納することも可能です。
ライブラリとして使える
SQLiteの容量は最大で600キロバイト程度と非常に軽量であるため、ライブラリとして使用できます。そのため、スマートフォンなどの容量が少ないデバイスでも高速な動作を実現できます。
バイトオーダーに依存しない
SQLiteは、バイトオーダーに依存しません。「バイトオーダー」とは、データを転送する際の、転送するデータの順番のことです。このバイトオーダーに依存しないのでSQLiteで作成したデータは、アプリケーションの動作環境に合わせてデータを変換する必要がありません。そのため、データ移動が容易に行えます。
SQLiteとMySQLの違い
MySQLとは、MySQL ABによって開発されたオープンソースのデータベース管理システムで、現在ではOracle社が運営しています。MySQLには複数のストレージエンジンが備わっており、扱いやすいという特徴があり、世界中で支持されるデータベース管理システムです。
【初心者向け】MySQLとは?SQLとの違いやメリット、使用方法をわかりやすく解説
記述のしやすさ
SQLiteはデータベースへのアクセスも簡単であるため、記述も手軽に行えます。その点、MySQLは都度パスワードを設定しなくてはなりません。(データベースへの接続を関数にしておけば解決できます。)
動作の軽さ
どちらも軽量で高速に動作しますが、SQLiteのほうがより軽量です。
規模
SQLiteは大規模なデータベースには向きません。MySQLは小規模なデータベースはもちろんのこと、数千万以上のレコードを扱うといった事例もあるなど、大規模なデータベースにも耐えられます。
セキュリティ
SQLiteにはセキュリティ機能は備わっていません。
機能性
SQLiteはシンプルで最低限の機能のみを備えており、MySQLで利用できる関数でもSQLiteでは使えないという場合もあります。
ライセンス
SQLiteのライセンスは「パブリックドメイン」であり、著作権が存在しないのでライセンスを気にする必要はありません。その点、MySQLには細かい規約が定められており、改変・再配布ではその規約に準拠しなくてはなりません。
また、商用利用でなければMySQLも無料で利用できますが、商用目的で利用する場合はライセンスを購入する必要があります。
主要データベースとの比較
SQLite | MySQL | Oracle database | PostgreSQL | SQL Server | |
サーバ/ クライアント | 区別なし | 区別あり | 区別あり | 区別あり | 区別あり |
大規模データベース対応 | ✖ | ○ | ○ | ○ | ○ |
サポート | なし | 有償サポートあり | あり | ・コミュニティユーザによるサポート ・サポートを提供する企業あり | あり |
価格 | 無償 | 無償 | 有償 | 無償 | 有償 |
SQLiteの向き・不向き
SQLitが向いている場合と向いていない場合を紹介します。
【向いている場合】
- 小規模システムのデータ管理
- 組み込み機器
【不向きな場合】
- 同時接続数が多いシステム
- 膨大なデータを処理する場合
以上のようにSQLiteには向き不向きがあるため目的に合っているのか検討したうえで利用しましょう。
SQLiteを利用するメリット
無料で利用できる
オープンソースのデータベースなので無料で利用できます。
規定がない
SQLiteのライセンスはパブリックドメインを採用しているため、ソースコードを自由に改変・再配布できます。
高速動作する
SQLiteの一番の特徴は動作が軽く高速であることです。
バックアップが簡単
データを単一ファイルに格納できるため、ほかのシステムにファイルをコピーするだけでバックアップが容易にできます。FTPでバックアップするファイルをダウンロード、またはサーバ上でコピーするだけでいいので非常に手軽です。また、メンテナンスの必要もありません。
基本的なSQL文が使用できる
SQL文による基本的なデータベース操作のほか、ビューやトリガー、トランザクション処理といった機能が利用できます。ただし、check制約は利用できません。
PHP5が利用できる
「SQLite3」は標準でPHP5の利用ができます。
SQLiteの注意点
セキュリティ機能がついていない
ファイル形式のSQLiteにセキュリティ機能は備わっていません。パスワード設定ないのでセキュリティ面で不安があります。データファイルを保護する場合には自身でセキュリティ対策をする必要があります。
日本語情報が少ない
日本語情報が少ないため、疑問点がある場合などに解決しにくいといったデメリットがあります。
同時接続数が少ない
ほかのRDBMSと比べて同時接続数が少ないという欠点があります。そのため、同時に多くのユーザがアクセスするWebアプリケーションには不向きといえます。
SQLiteの将来性
軽量で導入しやすく、さまざまな用途で利用されるSQLiteの将来性について考えていきましょう。SQLiteは、2000年に開発されてから現在まで定期的な改良が続けられています。直近だと、2023年3月22日に3.41.2がリリースされており、SQL構文のサポートが増えたりといった新機能の追加も行われています。
また、クラウドでの利用も進んでおり、AWSやAzureといったクラウドサービスでは、サーバレス環境での利用を含めて活用がされています。ほかにも、今の似ているIoT製品や組み込み機器やAI分野で利用されることもあります。膨大なデータを処理する必要があるビックデータには不向きですが、開発時のプロトタイプやデータ管理に用いられることがあります。そして、なんといっても手軽で扱いやすいSQLiteの強みが発揮される小規模システムを扱う企業も多いです。
このように、私たちの生活に欠かせないものや、今後より発展していく分野に用いられるSQLiteは今後も需要が続くと考えられ、時代に合わせてアップうデートを続けるSQLiteの将来性は高いといえるでしょう。
SQLiteの使い方
SQLiteの記述ルール
拡張子
拡張子は「.sqlite3」です。
コマンドの区切り
クエリの区切りには「;(セミコロン)」を使います。ただし、「.」で始まるクエリは「;」で区切る必要はありません。
データ型は不要
データ型の指定をすることは可能ですが、しなくても問題ありません。
データ型とその意味
null:値がない(という値がある)
text:文字列のことです。※文字コードは設定により異なる
blob:バイナリーデータ
integer:8byteの整数
real:8byteの浮遊小数点数
標準SQLに準拠
ほとんどのSQL文をサポートしています。
データベースを削除するには
データベースを削除するにはファイルを削除する必要があります。
ファイルをバックアップ
ファイルをバックアップするにはファイルをコピーします。
SQLiteの基本的なコマンド
▼ヘルプを表示する
.help
▼設定情報を表示する
.show
▼バージョンを表示する
select sqlite_version()
▼データベースを作成する
.open [ファイル名]
▼データベースファイルが作成されたか調べる
.databases
▼テーブルを作成する
create table [テーブル名]([カラム名A] データ型,[カラム名B] データ型);
▼テーブルが作成されたか調べる
.table
▼バックアップを行う
.output backup.dump
▼テーブルデータを出力する
.dump [テーブル名]
▼バックアップを利用して復元する
.read backup.dump
同名のテーブルが存在する場合はエラーが出ます。
▼CSV(テキストデータ)取り込み・変更
.separator ,
▼指定ファイルをテーブルに挿入する
.import file table
▼テーブルを一覧で表示する
.tables
▼カラムを追加する
alter table [テーブル名] add column [表示するカラム名];
▼終了する
.exit
SQLiteのインストール方法
ここからは、SQLiteのインストール方法を紹介します。OSによってインストールの手順は異なりますが、本記事では「Windows10」におけるインストール方法を述べています。ほかOSでインストールを行う場合は公式サイトを参考にOSに適したインストーラをダウンロードしてください。
公式サイトにアクセスする
公式サイトにアクセスし、「Download」をクリックします。
OSに対応するインストーラをダウンロードする
「Precompiled Binaries for Windows」という欄のうち、自身の利用するPCのスペックに適したものをクリックするとzip形式のファイルのダウンロードが始まります。
ファイルを解凍する
ダウンロードしたファイルには、次の3つのファイルが含まれています。
sqdiff.exe
sqlite3.exe
sqlite3_analyzer.exe
本体は「sqlite3.exe」です。
ファイルを任意のディレクトリに設置する
解凍したファイルを設置したいディレクトリに移動させます。
動作確認をする
ダウンロードしたファイルに問題がないかチェックします。「sqlite3.exe」を実行して動作確認を行いましょう。
- 2023.09.29
- Other
Author:鷺坂りな @TechMania編集部 投稿一覧
Otherカテゴリの最新記事
-
- 2024.12.02
【VBA入門】If文を使いこなそう!条件分岐の基礎から応用まで解説
-
- 2024.12.02
【VBA】Excelシートの最終行を取得する
-
- 2024.11.29
【VBA入門】Dictionaryオブジェクト(連想配列)の使い方を解説
-
- 2024.11.29
【VBA】エラー「型が一致しません」の原因・対処法を詳しく解説
-
- 2024.11.22
【VBA】Trim関数で空白文字を削除する
-
- 2024.11.22
【VBA入門】配列まとめ(宣言・初期化、反復処理、コピー、結合)