データベース管理システムとしては、MySQLやOracle、Microsoft SQL Serverなどがとても有名ですが、あえてSQLiteというデータベース管理システムを使用しているというエンジニアの方も多いようです。
駆け出しエンジニアの頃は、SQLiteとその他のデータベース管理システムの違いがよく分からず「あえてSQLite」という選択をすることは少ないかもしれないですが、改めてSQLiteの魅力を知ると「使ってみよう」という気持ちになるかもしれません。
そこで今回の記事では、SQLiteの概要について詳しくまとめつつ、SQLiteのメリット・デメリットやSQLiteのコマンドについてもご紹介していきましょう。
すでにSQLiteを使用されている方も「なぜ、あえてSQLiteを選ぶのか」を再認識することによって、よりSQLiteを有効活用することができるはずです。
- SQLiteの概要
- SQLiteの基本的な機能
- SQLiteを使用するメリット・デメリット
- SQLiteのコマンド
SQLiteとは
SQLiteは、パブリックドメイン(著作権フリー)なRDBMSです。RDBMSの代表的なものとしては、OracleやMicrosoft SQL Serverなどが挙げられますが、SQLiteはサーバではなくアプリケーションへ組み込むことによって利用を可能としているRDBMSとなります。
Liteという英単語が名前に付くことからも想像できるように、他のRDBMSと比べると非常に軽量で高速であるということが特徴。他にもSQLiteには様々な特徴がありますので、次に見ていきましょう。
SQLiteの特徴的な機能
こちらではSQLiteの特徴的な機能について詳しく見ていくこととしましょう。代表的な機能としては以下のものが挙げられます。
- パブリックドメイン
- ライブラリとして使用
- データ型の指定が不要
- バイトオーダに依存していない
上記の特徴については、もう少し説明を加える必要がありそうです。以下に見ていきましょう。
パブリックドメイン
先ほども述べたとおり、SQLiteはパブリックドメインであるということが有名です。著名なRDBMSの多くは、著作権を製作者や提供する企業が保持しているという点で、パブリックドメインという要素はSQLiteの特徴であると言えるでしょう。
SQLiteのソースコードは自由に改変することができ、自分以外に自由に再配布することができるため、気軽に導入することができます。
ライブラリとして使用
SQLiteはサーバではなくライブラリとして使用することができるようになっています。この点が「SQLiteは軽量」と言われる理由であり、わずか数百キロバイトの容量しか持たないという点が導入のしやすさの理由だと言えるでしょう。
もしSQLiteのフルセットを使用することとなったとしても、最大で600キロバイト程度ですが、ライブラリ型の組み込みデータベースエンジンであるため、柔軟に必要な機能を取り入れていくことも可能です。
データ型の指定が不要
SQLiteはデータ型を指定しなくても良いRDBMSです。現在では、データ型を指定することができるSQLiteですが、当初はデータ型のないRDBMSでした。
多くのRDBMSでは、テーブル定義の際にデータ型を指定することが多いはずです。しかしSQLiteではテーブル定義の際にデータ型の定義が必須ではなく、1つのカラムの中にさまざまなデータ型の値を格納することが可能となっているのです。
ただテーブルに格納されるデータが型を持たないのか、と言われるとそういうわけではありません。SQLiteを使用してデータを格納する際に一定の基準を用いて、格納されるデータにSQLiteがデータ型を与えるのです。
データ型についてピンと来ていない方もいらっしゃるかもしれません。データ型とは、どのようなタイプのデータなのかを表す概念となっています。
例えばSQLiteでは、INTEGER(符号付整数)やTEXT(文字)など、計5つのデータ型の定義がなされます。他のRDBMSでは「INTEGER型のカラムにはINTEDER型のデータしか格納できない」などの縛りがありますが、SQLiteの場合にはそのような縛りをあえてしなくてもいいという特徴があるのです。
バイトオーダに依存していない
SQLiteはバイトオーダに依存していないという特徴も持ち合わせています。バイトオーダとはバイトを順序立てする方法です。バイトオーダに依存しないことによって、SQLite上で作られたデータは様々な環境で動作しているアプリケーションへデータの変換なしで利用することができることになります。
他のOSなどへ簡単にデータを移すことができることを「可搬性が高い」という言い方で表しますが、SQLiteはまさに「可搬性が高い」ファイルを作成することに特化したRDBMSだと言えるでしょう。
データベースの用意が不要
SQLiteはデータベースの用意をする必要がありません。他のRDBMSを使用したことがある方は、データベースを作成したり、それに伴う設定作業をしたりする手間を面倒だと感じることもあるのではないでしょうか。
SQLiteはデータベースではなくライブラリの組み込みで使用することができるようになっているため、導入する手間が非常に少なく、簡単に組み込むことができるようになっているのです。
【関連記事】
▶︎MySQLとは?MySQLの基本から他のデータベースとの違いと優位性を解説!
SQLiteのコマンドの紹介
ここまでの内容で、「SQLiteを使ってみたい」と感じた方もいらっしゃるのではないでしょうか。そこでこちらの記事の最後にSQLiteのコマンドを少しだけご紹介していきましょう。導入が簡単なSQLiteなので、ぜひ以下のコマンドを試してみて、その手軽さを実感していただければ幸いです。
テーブル作成
CREATE TABLE cars(id, name, maker, color, size, price);
SQLiteでは上記のようなコマンドでテーブル作成が可能となっています。ご覧の通り、データ型の指定は必要ありません。非常に簡単にテーブル作成ができます。SQLiteでテーブル作成をする際に必要なものはテーブル名とカラムのみとなっています。
データの挿入
INSERT INTO cars VALUES(1, 'パッソ', ‘TOYOTA’, 'silver', 3.7, 1,400,000);
上記のようなコードで、先ほど作成したテーブルにレコードデータを挿入することが可能です。こちらは他のRDBMSと大きな違いはないですね。
データの選択
SELECT id, name FROM cars;
上記のコードで、指定したテーブルから各レコードのidとnameカラムを取得することができるようになります。書き方がシンプルで覚えやすいことがSQLiteの魅力だと言えるでしょう。
まとめ
今回の記事では、SQLiteの概要について詳しくまとめつつ、SQLiteのメリット・デメリットやSQLiteのコマンドについてもご紹介していきました。すでにSQLiteを使用されているという方も「なぜ、あえてSQLiteを選ぶのか」を再認識することによって、よりSQLiteを有効活用することができるはずです。
今回の記事でSQLiteに興味を持ったという方は、軽量かつお手軽なSQLiteをぜひ1度試しに使ってみてください。
【関連記事】
▶︎【Oracleだけじゃない】Microsoft SQL Serverの魅力
▶︎【0から学ぶ】SQLを知らない人が最初に知るべき情報まとめ
▶︎MySQLやPostgreSQLをお使いの方へおススメ!Amazon Aurora
ちなみにRDBMSとは、関係データベース管理システムのことです。関係データベース管理システムに代表されるものとしてはSQLiteの他にも、OracleやMicrosoft SQL Server、MySQLなどが存在しています。
その名称からもわかるように、リレーショナルなデータベースを管理することができるシステムで、レコードやカラム、プライマリーキー、外部キーなどが関係し合っているデータベースのことを言います。
現在において、多くのデータベースが関係データベースと呼ばれるものであり、それを管理するシステムとしてRDBMSが存在します。一方で近年は、NoSQLというRDBMS以外のデータベース管理システムも人気が出てきています。