Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

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)』 (2024/06/08 09:48 UTC 版)

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

SQLite(エスキューライト[2][3]、エスキューエライト[4][5]、なお、作者のHippはエスキューエルアイト(/ˌɛsˌkjuːˌɛlˈaɪt/[6][7][8])と発音している)は、パブリックドメインの軽量な関係データベース管理システム (RDBMS) である。

概要

サーバとしてではなくアプリケーションに組み込んで利用されるデータベースである[9]。 一般的なRDBMSと違い、APIは単純にライブラリを呼び出すだけであり、データの保存に単一のファイルのみを使用することが特徴である。バージョン3.3.8からは全文検索のFTS1モジュールがサポートされた。その後 FTS2 - FTS3 と強化を続けバージョン3.7.4からはFTS4モジュールがサポートされている。

特徴

解説

SQLiteは本体プログラムに対して、直接リンクしたライブラリもしくは共有ライブラリダイナミックリンクライブラリの形で利用できる、組み込み型データベースエンジンである。その特徴として、おおむね600kb前後のフットプリントでフルセットのSQLステートメントと型束縛のないデータセットを利用することができる。データベースストレージに対するアクセスも内蔵しており、ファイル及びインメモリストレージに対応している。ファイルを共有することで複数のアプリケーションがデータベースインスタンスを共有することも可能であり、サーバ・クライアントモデルではないアプリケーションローカルで使用するデータベースエンジンとしては合理的な設計となっている。

SQLiteのもう一つの特徴は、バイトオーダーに依存しない、アーキテクチャ非依存のストレージを採用していることである。このため、データベースインスタンスを格納したストレージとなったファイルは再利用性が高い。ストレージバージョンにさえ注意を払えば、アプリケーションからストレージを取り出し、別のOSやアーキテクチャで動作している別のアプリケーションにデータを変換することなく移すことができる。

ストレージまでネイティブコードで直接実行し、間になんらかのプロトコルやプロセス間通信を伴わないことにより、単一のトランザクション内におけるレイテンシをある程度削減することに成功している。一度トランザクションを開始するとストレージはロックされ、トランザクション中のセッションはキャッシュを有効利用して動作するため、高速にデータベースにアクセスすることができる。これは応答性が重要な、かつ多数のトランザクションが並行しないような規模のアプリケーションでは重要な要素となり、SQLiteをサーバとの中間にキャッシュとして採用する事例[要出典]や、アプリケーション組み込みデータベースエンジンとしての採用[要出典]を促す理由ともなっている。

標準で搭載しているデータセットの型は整数型 (INTEGER)、文字列型 (TEXT)、無制限スカラ型 (BLOB) の3種類である。

後述のCUIベースの管理ツールを標準で備える他、複数のGUIベース管理ソフトウエアが存在する。またストレージ仕様がアーキテクチャに依存しないため、管理ツールの直接実行が難しいシステム(組み込みソフトウエア開発等)においても、ストレージを取り出してWindowsマシン等でデータを確認したりSQLステートメントを実行することが可能である。

管理ツール

  • 「sqlite」または「sqlite3」というコマンドラインユーティリティーが付属しており、CUIでSQLiteのデータを操作できる。
  • 「Navicat for SQLite」はデータの編集やSQLクエリ、データモデリングのツールを備え、データ転送、インポート/エクスポート、データの同期、レポートなどの機能が提供されている。
  • DB Browser for SQLite Windows, Mac OS, Linux, FreeBSD に対応したGUI管理ツール。ライセンスは Mozilla Public License Version 2。

ODBC

SQLiteのODBCドライバサードパーティーから提供されている。SQLite 2とSQLite 3のバージョンがあり、SQLite 2向けには、さらにUTF-8対応版がある。

脚注

  1. ^ "SQLite Release 3.46.0 On 2024-05-23"; 閲覧日: 2024年5月23日; 出版日: 2024年5月23日.
  2. ^ SQLiteとは エスキューライト: - IT用語辞典バイナリ”. 2014年6月14日閲覧。
  3. ^ SQLite”. 2014年6月14日閲覧。
  4. ^ An Introduction to SQLite”. 2014年6月20日閲覧。
  5. ^ Ruby on Rails チュートリアル”. 2014年6月20日閲覧。
  6. ^ Why SQLite succeeded as a database with Richard Hipp, creator of SQLite (The Changelog #201)” (英語). Changelog. 2021年7月4日閲覧。
  7. ^ (日本語) An Introduction to SQLite, https://www.youtube.com/watch?v=f428dSRkTs4 2021年7月4日閲覧。 
  8. ^ Bell, Adam Gordon. “The Untold Story of SQLite” (英語). CoRecursive Podcast. 2021年7月4日閲覧。
  9. ^ Bill Lubanovic 著『入門Python3』、斉藤康毅 監訳 ・長尾高弘 訳、株式会社オライリー・ジャパン発行、オーム社 発売、2017年2月3日 初版 第6刷、246ページ

関連項目

書籍

外部リンク




固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「SQLite」の関連用語

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

   

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



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

   
PHPプロ!PHPプロ!
©COPYRIGHT ASIAL CORPORATION ALL RIGHTS RESERVED.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【SQLite】の記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 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の元に提供されております。

©2025 GRAS Group, Inc.RSS