小規模なシステムや、システムのテストをしたい時に使われることが多いSQLite。

この記事では、そんなSQLiteに焦点を当てて徹底的に解説します。

SQLiteの概要、同じような機能を持つMySQLとの違い。

ダウンロード方法や覚えておきたい使い方まで網羅しています。

  • SQLiteでシステムを作ってみたい人
  • SQLiteとMySQLの違いについて知りたい人
  • SQLiteの基本的な使い方を知りたい人
  • インストール方法が知りたい人

上記に該当する人にうってつけの情報をお届けします。

SQLiteとは


この項目では、SQLiteとは一体どんなものなのかについてご紹介します。

SQLiteはオープンソースの関係データベース管理システム(RDBMS)という役割を持っています。

手軽さが魅力で、たくさんのクエリ(データベース管理システムへの処理要求)にも対応可能です。

RDBMS(Relational Database Management System)とはカラムやレコード、外部キーなどが関わり合うデータベースのことを意味します。

SQLiteの他に有名なRDBMSには「Oracle」「MySQL」「Microsoft SQL Server」「PostgreSQL」などがあります。

それぞれのRDBMSについては、以下の記事でご紹介しています。

【Oracle】データベースの特徴と使い方を解説!ダウンロードやバージョン確認方法は?ライセンス価格やサポート料金も紹介

MySQLの使い方を初心者向けに徹底解説!ダウンロード方法やサーバーへの接続の仕方は?よく使うコマンドとオプションも確認

PostgreSQLの使い方や特徴を徹底解説!基本的なコマンドと操作方法・インストールの手順は?MySQLとの違いも紹介


読み方

SQLiteは「エスキューライト」「エスキューエライト」と読みます。


開発しているところ

SQLiteコンソーシアムがメインとなって開発しています。


プログラム


C言語です。C言語とバインドできる(関連づけられる)言語を使うことができます。

C++は対応していませんのでご注意ください。


よく使われる用途

SQLiteはパソコンやスマートフォンなどのアプリケーションに組み込まれています。

そのため、世界一使用されているデータベースエンジンと言われることも。


ライセンス

SQLiteのライセンスは「パブリックドメイン(著作権を放棄した著作物)」です。

著作権が存在しないため、ライセンスを心配する必要はありません。


SQLiteの歴史


2000年にリリースされたのが「SQLite1」です。

現在、SQLiteのライセンスはパブリックドメインですが、この時はGRLライセンスを採用していました(GDBMエンジンを使用していたため)。

当初から「Serverless」「Singlefile database」をコンセプトに作られていました。

翌年、「B-Treeストレージエンジン」をリリース。

SQLiteはパソコンや携帯電話、自動車などに搭載されるようになりました。

当時大手携帯会社として有名だった「モトローラ」からバイナリーデータのサポートを求められ、SQLite3の開発がスタートしました。

そして2004年、バイナリーデータのサポートを実現した「SQLite3」がリリースされるに至りました。


SQLiteの特徴


アプリに組み込むタイプ

RDBMSにはSQLiteの他にも、OracleMySQLなどがあります。

SQLiteは「アプリケーションに組み込むことで利用可能になるRDBMS」という特徴を持っています。

多くのRDBMSは自身で動作するサーバー型ソフトウェア。

その中でSQLiteは珍しい型を持っています。


軽くて速い

名前から察しがつくかもしれませんが、SQLiteは非常に軽いです。


パブリックドメイン

「SQLiteについて」の項目でもお伝えしましたが、SQLiteはパブリックドメインです。

企業が著作権を保持した状態のRDBMSばかりの中、著作権フリーなのはSQLiteの大きな特徴と言えるでしょう。

パブリックドメインなので、ソースコードを独自に改変したりできますし再配布も制限されることなく可能です。


データ型を指定しなくて良い


データ型(データのタイプ)を指定しなくても使用可能です。

1つのカラム内に色んなデータ型の値を入れられます。

ちなみに、他RDBMSの場合は1つのデータ型には同じデータ型しか入れられない、といった決まりがあったりします。


ライブラリとして使える

最大で600キロバイト程度の容量しかないSQLite。これはライブラリとして使用できることが理由です。

容量が軽いので使い始めるのに躊躇する必要はありません。全体の容量が少ないデバイス(携帯機器など)でも速い動作を実現できます。


データベースを準備しなくて良い

先に書いたとおり、SQLiteはライブラリとして使えます。

ですから導入の手間がとても少なくデータベースを準備する必要がありません。

データベースを作成したり設定したりが面倒くさいという人にぴったりです。


コードフットプリントが小さい

この特徴により、目盛りやディスクスペースなどを効率良く使用することができます。


環境ごとにデータ変換する手間を省ける

SQLiteはバイトオーダに依存していません

そのためSQLiteで作ったデータは、アプリケーションの動作環境に合わせてデータ変換しなくても良いという特徴があります。


SQLiteとMySQLの違い


SQLiteMySQLの違いについて解説します。


MySQLについて

まずはMySQLとはどんなものなのかを簡単にご説明します。

MySQLは世界中で多くの人が使用しているオープンソースのRDBMSです。

PHPJavaなどのプログラミング言語からアクセスすることも可能。

webサービスとの相性が良いのも特徴の1つです。

MySQLについては以下の記事でも詳しくご紹介しています。宜しければ併せてご参照ください。
MySQLの使い方を初心者向けに徹底解説!ダウンロード方法やサーバーへの接続の仕方は?よく使うコマンドとオプションも確認


記述のしやすさ

SQLiteは簡単にデータベースへアクセスすることが可能なため、記述するのがとても簡単です。

一方MySQLは、その都度パスワードを設定する必要があります(データベースへの接続を関数にしておくことでこの問題は解決できますが)。


軽さ

どちらも速く動作しますが、SQLiteのほうがより軽いです。

ただし、大規模データベースの場合はMySQLのほうがスピードが出るでしょう。


向いている規模

SQLiteは大規模データベースには向いていません。

一方、MySQLは数千万以上のレコードを扱う事例もあり、大規模データベースにも耐えられます。

GoogleやYahoo!、YouTubeなどのwebサービスでも使われています。


セキュリティ

SQLiteデータベースファイルが剥き出しの状態です。

セキュリティには不安があります。

データベースファイルを守るための対策を講じる必要があります。


ライセンス

SQLiteは「パブリックドメイン」。

MySQLは「GNU General Public License」です。


機能

SQLiteはシンプル機能となっており、MySQLはサポートしている関数でもSQLiteでは使えないものもあります。

以上、比較検討する人も多いSQLiteとMySQLの違いについて解説しました。

小規模データベースを考えているなら、SQLiteを使ってみると良いでしょう。

SQLiteのメリット


高速動作する

何度も述べていますが、SQLiteの軽快な動きは特筆すべきメリットです。


バックアップがラク

データを1つのファイルに格納できるので、バックアップするのが非常にラク

FTPでバックアップしたいファイルをダウンロードするもしくはサーバー上でコピーするだけというお手軽さです。


基本的なSQL文が使える

ビュートリガートランザクション処理も使えます。

ただし、check制約は使えませんのでご注意ください。


PHP5が使える


SQLite3」は標準でPHP5の使用が可能です。


無料で使える

コアソースコード著作権も主張していません。


SQLiteのデメリット


SQLite2」と「SQLite3」は別物

両者にはデータベースの互換性がありません。


パスワードがない

SQLiteにセキュリティ機能はついていません

これはファイル形式であるから当然のことと言えるでしょう。

SQLiteのデータファイルを守りたいなら自分でセキュリティ対策をする必要になります。


日本語情報が少ない

調べたいことがあった時に検索サービスで検索しても、日本語で記載された情報が少ないです。

そのため、知りたい情報を得るのに苦労することがあります。


SQLiteのダウンロード・インストール


この項目では、SQLiteのダウンロード・インストールの手順について解説します。

OSによってインストールの仕方は変わってきます。

ここでは「Windows10」にSQLiteをダウンロード・インストールする方法を述べています。

Linux」など別のOSを使用している人はSQLite公式サイトからOSに対応したインストーラーをダウンロードしてください。


1.公式サイトにアクセスします

SQLite(https://www.sqlite.org/)にアクセスし、「Download」ページに飛びます。


2.対応OSのインストーラーをダウンロードします

「Precompiled Binaries for Windows」と書かれたところにある、自身のOSに適したものの「zip」をクリックします。


3.解凍します

ダウンロードしたSQLiteには、3つの要素が入っています。

  • sqdiff.exe
  • sqlite3.exe
  • sqlite3_analyzer.exe

たったこれだけです。

ちなみに本体は「sqlite3.exe」となります。


4.ファイルを任意のディレクトリに設置します

解凍したファイルを自分の設置したいディレクトリに移動させましょう。


5.動作確認

ダウンロードしたファイルが破損していないかチェックします。

「sqlite3.exe」をダブルクリックで実行し動作確認をおこないましょう。


SQLiteの使い方①データベース・テーブル作成


この項目では、データベースとテーブルを作る方法についてご紹介します。


データベースを作成する

  1. .open ファイル名


データベースファイルが作成されたかのチェック

  1. .databases


テーブルを作成する

  1. create table テーブル名(列名1 データ型,列名2 データ型);

「create table」は大文字で入力しても大丈夫です。

最後のセミコロンは文章が終わったことを意味しています。

このセミコロンを打たない限り、SQLは続きの文章を求めてきます。


テーブルが作成されたかのチェック

  1. .table


SQLiteの使い方②コマンド入力のポイント


拡張子

.sqlite3」が慣例です。


命令の区切り

命令の区切りは「;」です。ただし、「.」で開始する命令については「;」で区切らなくても大丈夫です。


データ型はなくてもOK

データ型を指定することは可能ですが、指定しなくても良いです。


標準SQLに準拠

ほとんどのSQL文をサポートしています。


データベースを削除する場合

ファイルを削除する必要があります。


バックアップ

ファイルのバックアップをするにはファイルをコピーします。


データ型について

各データ型の意味について説明します。

  • null:値がない
  • text:文字列のことです。文字コードについてはデータベースの設定によって異なります。
  • blob:バイナリーデータのことです。
  • integer:8byteの整数のことです(マイナスを含まず)。
  • real:8byteの浮遊小数点数のことです。


SQLiteの使い方②基本的なコマンド入力方法


ヘルプの表示

  1. .help

設定情報の表示

  1. .show

バックアップする

  1. .output backup.dump

テーブルデータを出力したい場合

  1. .dump テーブル名

復元する

  1. .read backup.dump

バックアップを利用して復元します。

なお、同じテーブル名が存在するとエラーが発生します。

CSV取り込み・区切り文字の変更

  1. .separator ,

指定ファイルデータをテーブルに挿入

  1. .import file table

テーブル一覧の表示

  1. .tables

カラムの追加をする

  1. alter table テーブル名 add column 新しいカラムの名前;

バージョンを表示する

  1. select sqlite_version()

終了する

  1. .exit


まとめ


ここまでSQLiteについて様々な角度から解説してきましたが、いかがだったでしょうか。

SQLiteはとても軽くて便利なRDBMSです。

MySQLやOracleと同じカテゴリに位置するSQLiteですが、その手軽さは他の追随を許しません。

「ちょっとデータベースを作ってみたい」という人に向いているSQLite。

興味がある人はぜひ一度触ってみてください。


toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。

エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。