Sqliteとは? わかりやすく解説

SQLite

読み方エスキューライト

SQLiteとは、PHP組み合わせて使用されているデータベース管理システムDBMS)のひとつで、組み込み専用特徴とするもののことである。同じくPHP合わせて用いられるMySQLPostgreSQLといったクライアントサーバー型DBMSとは異なりDBMS サーバー概念存在しない。SQLiteは、いわばサーバークライアントとが一体となっている。そのためデータベースの内容はすべてローカルファイルに保存される

SQLiteのメリットとしては、DBMS サーバーを必要としないために、DBMS用意されていないレンタルサーバーでもSQLiteによってデータベース用いたアプリケーション作成できるということ挙げられる。(PHP 5これから普及することに伴い、SQLiteをサポートするレンタルサーバー今後増えてくだろう見込まれる)。加えて扱い要領MySQLPostgreSQL変わらないために導入が簡単であるという利点もある。また、組み込み系のDBMSとしては数少ないトランザクション処理対応型であるDBMSであるという点も特徴的である。

その反面、SQLiteの短所としては、データあくまでもローカル保持されるために、複数Webサーバーからアクセスを受けることができないという点が挙げられる複数Webサーバー運用する場合、 SQLiteは適しているとは言えない。

データベースのほかの用語一覧
データベース:  PostgreSQL  SQL  SQL Server  SQLite  SQL Server 2005  Viper
トランザクション処理:  ACID特性

SQLite 関数 (PDO_SQLITE)

導入

PDO_SQLITE は、PHP から SQLite 2 や SQLite 3 データベースへのアクセスを可能にするための PHP Data Objects (PDO) インターフェース を実装したドライバです。
PHP 5.1 では、SQLite 拡張モジュールも SQLite 2 データベースに対するドライバを提供しています。 理論的には PDO_SQLITE ドライバの一部ではなく動作も同様なので、 平行してドキュメント化されています。PDO 用 SQLite 2 ドライバは主に レガシーな SQLite 2 データベースファイルをより高速でより効果的な SQLite 3 ドライバを使用するアプリケーションへ 簡単にインポートするために提供されています。 結果として、SQLite 2 ドライバは SQLite 3 ドライバよりも機能豊富ではありません。

目次

PDO_SQLITE DSN — SQLite データベースに接続する
PDO->sqliteCreateAggregate() — SQL 文で使用する集約ユーザ定義関数 (UDF) を登録する
PDO->sqliteCreateFunction() — SQL 文で使用するユーザ定義関数 (UDF) を登録する

SQLite 関数

php.ini の設定により動作が変化します。
表 291. SQLite設定オプション
名前デフォルト変更の可否変更履歴
sqlite.assoc_case0PHP_INI_ALLPHP 5.0.0 から利用可能です

PHP_INI_* 定数の詳細および定義については 付録 G. php.ini ディレクティブ を参照してください。
以下に設定ディレクティブに関する 簡単な説明を示します。
sqlite.assoc_case int
ハッシュのインデックスに大文字小文字混用(0)、 大文字(1)、小文字 (2)のど れを使用するかを指定します。
このオプションは、データベーススキーマ中での実際のフィールド名の ケースによらず、カラム名が常に大文字または小文字で返されるような 他のデータベースシステムとの互換性が必要な場合に特に有用です。
SQLiteライブラリは、カラム名をそのままのケース(これは、 スキーマで使用したケースに一致します)で返します。 sqlite.assoc_case0 を指定した場合、そのままのケースは保持されます。このオプションを 1 または 2 に設定した場合、 PHPはハッシュキーのケースをそれぞれ大文字または小文字のキーに変 換します。
このオプションを使用することで若干の性能劣化がありますが、 PHPスクリプトで自分で大文字/小文字変換を行うよりはかなり高速です。

目次

sqlite_array_query — 指定したデータベースに対してクエリを実行し、配列を返す
sqlite_busy_timeout — ビジータイムアウト時間を設定またはビジーハンドラを無効にする
sqlite_changes — 直近のSQLステートメントにより変更されたレコード数を返す
sqlite_close — オープンされたSQLiteデータベースを閉じる
sqlite_column — カレントの結果セットのレコードからカラムを1列取得する
sqlite_create_aggregate — SQLステートメントで使用する集約UDFを登録する
sqlite_create_function — SQLステートメントで使用するために"通常の"ユーザ定義関数を登録する
sqlite_current — 結果セットからカレントのレコードを配列として取得する
sqlite_error_string — エラーコードの説明を返す
sqlite_escape_string — クエリパラメータ用に文字列をエスケープする
sqlite_exec — 与えられたデータベースに対して結果を伴わないクエリを実行する
sqlite_factory — SQLite データベースをオープンし、SQLiteDatabse オブジェクトを返す
sqlite_fetch_all — 結果セットから全てのレコードを配列の配列として取得する
sqlite_fetch_array — 結果セットから次のレコードを配列として取得する
sqlite_fetch_column_types — 特定のテーブルからカラム型の配列を返す
sqlite_fetch_object — 結果セットから次のレコードをオブジェクトとして取得する
sqlite_fetch_single — 結果セットの最初のカラムを文字列として取得する
sqlite_fetch_stringsqlite_fetch_single() のエイリアス
sqlite_field_name — 特定のフィールドの名前を返す
sqlite_has_more — まだレコードがあるかないかを返す
sqlite_has_prev — 前のレコードがあるかどうかを返す
sqlite_key — カレントレコードのインデックスを返す
sqlite_last_error — データベースに関する直近のエラーコードを返す
sqlite_last_insert_rowid — 直近に挿入されたレコードのrowidを返す
sqlite_libencoding — リンクされているSQLiteライブラリのエンコーディングを返す
sqlite_libversion — リンクされているSQLiteライブラリのバージョンを返す
sqlite_next — 次のレコード番号へシークする
sqlite_num_fields — 結果セットのフィールド数を返す
sqlite_num_rows — 結果セットのレコード数を返す
sqlite_open — SQLiteデータベースをオープンする。データベースが存在しない場合は作 成する
sqlite_popen — SQLiteデータベースへの持続的ハンドルをオープンする。存在しない場合 には、データベースを作成する
sqlite_prev — 結果セットの前のレコード番号へシークする
sqlite_query — 指定したデータベースに対してクエリを実行し、結果ハンドル を返す
sqlite_rewind — 先頭レコード番号へシークする
sqlite_seek — 特定のレコード番号へシークする
sqlite_single_query — クエリを実行し、単一カラムもしくは先頭レコードの値に対する配列を返す
sqlite_udf_decode_binary — UDFにパラメータとして渡されたバイナリデータをデコードする
sqlite_udf_encode_binary — UDFから返す前にバイナリデータをエンコードする
sqlite_unbuffered_query — 事前取得していないクエリを実行し、全てのデータをバッファリングする
sqlite_valid — まだレコードが残っているかどうかを返す

SQLite

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/06/29 21:40 UTC 版)

SQLite
開発元 リチャード・ヒップ
初版 2000年8月17日 (25年前) (2000-08-17)
最新版 3.53.3[1]  - 2026年6月26日 (3日前) [±]
リポジトリ
プログラミング
言語
C
対応OS クロスプラットフォーム
種別 関係データベース管理システム
ライセンス パブリックドメイン
公式サイト sqlite.org
テンプレートを表示

SQLiteは、リチャード・ヒップ(通称: Hipp)により開発された、パブリックドメインの軽量なRDBMSである。クライアントサーバモデルと異なり、単一ライブラリファイルAPIを利用する。

概要

SQLiteは、「エスキューライト[2]/エスキューエライト[3]」と発音する。Hippは「エスキューエルアイト(/ˌɛsˌkjuːˌɛlˈaɪt/)[4][5][6]」と発音している。

SQLiteとは(公式HPより翻訳)[7]

SQLiteは、小型で高速、自己完結型、高信頼性、フル機能を備えたSQLデータベースエンジンを実装したC言語ライブラリです。SQLiteは世界で最も利用されているデータベースエンジンです。SQLiteはすべての携帯電話とほとんどのコンピュータに組み込まれており、人々が毎日使用する無数のアプリケーションにもバンドルされています。

SQLiteを組み込んだアプリケーションの一例

特徴

ストレージに互換性があれば、データベースファイルはWindowsLinux等で共用可能。一時的な利用ならば、インメモリデータベースを割り当てることも可能。ストレージまでプロセス間通信などを用いず、直接ネイティブコードで実行することで、トランザクション処理におけるレイテンシをある程度削減することに成功している(トランザクション処理時、ストレージはロックされ、セッションはキャッシュを有効利用して高速にデータアクセスする)。動的リンク静的リンクに対応しており、静的リンクで実行ファイルを生成しても700KB程度(3.50.x現在)のフットプリントで、充実したSQLステートメントと束縛のないデータ型を利用可能である。

  • データ型(3.50.x現在)
  • SQL92の機能の多くを実装。トランザクション、ビュー、トリガーのサポート
  • 全文検索モジュールのサポート(バージョン3.9.0からFTS5)
  • C言語で関数を追加可能

ウィキブックスも参照のこと。

開発と展開

SQLiteのコードは同じくHippが開発したFossilでホストされている。Fossilは、非リレーショナルデータベース形式のSQLiteをローカルキャッシュとして使用し、SQLiteのSQLを実装言語として使用する分散バージョン管理システムである。

SQLiteはパブリックドメインとして著作権を放棄する一方、「オープンコントリビューション」ではないため、誰でも開発に参加することはできない。公式ウェブサイトには「このプロジェクトは、貢献をパブリックドメインに捧げる宣誓供述書を提出していない人からのパッチは受け付けない」と記載するとともに、プロジェクト創設者らは、行動規範の代わりに聖ベネディクトの戒律に基づく倫理規定を採用している[10]

SQLiteの配布物には、 sqlite3 と呼ばれるスタンドアロンのコマンドライン シェルプログラムが付属している[11]。このプログラムを使用して、データベースの作成、テーブルの定義、行の挿入と変更、クエリの実行、SQLiteデータベースファイルの管理を行うことができる。また、SQLiteライブラリを使用するアプリケーションを作成するためのサンプルとしても役立つよう設計されている。

歴史

Hipp2000年春、アメリカ海軍との契約に基づき勤務していたジェネラル・ダイナミクス社に在籍中、SQLiteを設計した。彼はミサイル駆逐艦のダメージコントロールシステムに使用されるソフトウェアを設計しており、これは当初HP-UXInformixデータベースをバックエンドとして利用していた。SQLiteはTcl拡張機能として開発が始まった。

2000年8月、SQLiteのバージョン1.0がリリースされた。ストレージはgdbm(GNU Database Manager)をベースにしていた。

2001年9月、SQLite 2.0はgdbmをカスタムBツリー実装に置き換え、トランザクション機能を追加した。

2001年から2002年頃、最初期の大規模な開発と利用はモトローラの携帯電話であった。その後ノキアSymbianへの採用が決まって大口顧客になると、携帯電話メーカーからの支持も高まった[12]

2004年6月、AOLの資金提供を受けて[13]、SQLite 3.0では国際化、マニフェスト型付け、およびその他の主要な改良点を追加した(AOLは当時プロバイダへの加入を促すCD-ROMを配布しており、そのプログラムにSQLiteを組み込んでいた[14])。

2007年12月、Mozilla FoundationやSymbianと共同でSQLiteコンソーシアムを設立した[15]。同時期にAndroidの標準ライブラリに採用されたことや、同じくiPhoneでも採用されるなどしたことで、スマートフォンの爆発的な普及とともにSQLiteも広がった[16]

2011年、HippはSQLiteにNoSQLインターフェースを追加する計画を発表し、ドキュメント指向データベース向けに設計されたSQLの機能的スーパーセットであるUnQLも発表した[17]

テストと信頼性

SQLiteは、各リリースの前に自動回帰テストを実施しており、その一環として200万以上のテストが実施されている。SQLiteライブラリのソースコードは約156,000行あるが、すべてのテスト用コードを合わせると9,200万行になる。SQLiteのテストでは、ライブラリの機能性をテストするだけでなく、突然の停電による電源喪失やI/Oエラーなどの様々な例外的なシナリオをシミュレートしており、データベース更新中に電源を遮断してもデータに破損が無いことが証明できることを目指している[18]。2009年8月10日のSQLite 3.6.17リリース以降、SQLiteリリースはコードカバレッジの構成要素の一つであるブランチテストカバレッジが100%となっている。

SQLiteには、オリジナルのパブリックドメインTCLテスト、独自のC言語TH3テストスイート、SQLiteを他のSQLデータベースと比較するSQLロジックテスト、そして独自のファジングエンジンdbsqlfuzzの4つの異なるテストハーネスがある。公式サイトでは、こうした徹底的なテストを行うことによってミッションクリティカルな利用にも耐え得るとしている[19]。実際SQLiteはデータセットの長期保存に推奨される4つの形式の1つとしてアメリカ議会図書館が使用を承認している[20]

脚注

  1. SQLite Release 3.53.3 On 2026-06-26 (2026年6月26日). 2026年6月27日閲覧。
  2. SQLiteの意味・解説”. 2025年10月16日閲覧。
  3. An Introduction to SQLite”. 2014年6月20日閲覧。
  4. Why SQLite succeeded as a database with Richard Hipp, creator of SQLite (The Changelog #201) (英語). Changelog. 2021年7月4日閲覧。
  5. (日本語) An Introduction to SQLite 2021年7月4日閲覧。
  6. Bell, Adam Gordon. The Untold Story of SQLite (英語). CoRecursive Podcast. 2021年7月4日閲覧。
  7. What Is SQLite?”. SQLite Consortium. 2025年9月15日閲覧。
  8. (Linux)/home/$USER/.mozilla/firefox/等の個人設定フォルダ以下に拡張子.sqliteファイルがあればSQLiteを使用
  9. (Linux)/home/$USER/.thunderbird/等の個人設定フォルダ以下に拡張子.sqliteのファイルがあればSQLiteを使用
  10. Code Of Ethics”. sqlite.org. 2025年10月13日閲覧。
  11. Command Line Shell For SQLite”. sqlite.org. 2025年10月13日閲覧。
  12. Bell, Adam Gordon. The Untold Story of SQLite (英語). CoRecursive Podcast. 2025年11月5日閲覧。
  13. SQLite Version 3 Overview”. www.sqlite.org. 2025年11月5日閲覧。
  14. Bell, Adam Gordon. The Untold Story of SQLite (英語). CoRecursive Podcast. 2025年11月5日閲覧。
  15. SQLite Consortium Launches With Mozilla And Symbian As Charter Members”. www.sqlite.org. 2025年11月5日閲覧。
  16. Well-Known Users Of SQLite”. www.sqlite.org. 2025年11月5日閲覧。
  17. Interview: Richard Hipp on UnQL, a New Query Language for Document Databases (英語). InfoQ. 2025年11月5日閲覧。
  18. How SQLite Is Tested”. sqlite.org. 2025年10月13日閲覧。
  19. How SQLite Is Tested”. sqlite.org. 2025年10月13日閲覧。
  20. LoC Recommended Storage Format”. sqlite.org. 2025年11月5日閲覧。

書籍

外部リンク




固有名詞の分類


英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Sqlite」の関連用語

Sqliteのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Sqliteのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHPプロ!PHPプロ!
©COPYRIGHT ASIAL CORPORATION ALL RIGHTS RESERVED.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2026 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【SQLite】の記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2026 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのSQLite (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2026 GRAS Group, Inc.RSS