English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite 紹介

この章は、SQLiteとは何か、SQLとは何が異なるか、なぜ必要か、アプリケーションデータベースをどのように処理するかを理解するのに役立ちます。

SQLiteは自包含でサーバーなし、設定なし、トランザクション型SQLデータベースエンジンを実現するソフトウェアライブラリです。SQLiteは最も急速に成長しているデータベースエンジンの1つであり、人気の増加は規模に関係ありません。SQLiteのソースコードは公共領域にあります。

SQLiteとは何ですか?

SQLiteはプロセス内ライブラリであり、自包含でサーバーなし、設定なしのトランザクション型SQLデータベースエンジンを実現します。これは設定なしのデータベースであり、他のデータベースと同様に、システムに設定する必要はありません。

SQLiteエンジンは他のデータベースとは独立したプロセスではありません。必要に応じて静的または動的リンクでアプリケーションに接続できます。SQLiteは直接そのストレージファイルにアクセスします。

なぜSQLiteを選んだのか?

  • SQLiteは独立したサーバープロセスやシステムなしで実行できます(サーバーなし)。

  • SQLiteはゼロ設定で、設定や管理が必要ないことを意味します。

  • 完全なSQLiteデータベースは単一のプラットフォーム間のディスクファイルに格納されています。

  • SQLiteは非常に小さくて軽量で、完全に構成されたメモリは小于400KiB、省略可能なオプション機能はそれより小さい250KiB。

  • SQLiteは独立しており、外部依存関係がないことを意味します。

  • SQLiteのトランザクションはACID完全に一致しており、複数のプロセスやスレッドからの安全なアクセスを許可します。

  • SQLiteはSQLをサポートしています。92(SQL2)標準の多くのクエリ言語機能をサポートしています。

  • SQLiteはANSI-Cで書かれており、シンプルで使いやすいAPIを提供しています。

  • SQLiteはUNIX(Linux、Mac OS-X、Android、iOS)およびWindows(Win32,WinCE、WinRT)上で利用可能です。

SQLiteの歴史

  • 2000年-D.リチャード・ヒップ(R. Richard Hipp)がSQLiteをデザインした目的は、管理プログラムなしでプログラムを実行できるようにすることでした。

  • 2000年-8月、SQLite 1.0はGNUデータベースマネージャーとともにリリースされました。

  • 2011年-HippがSQLite DBにUNQlインターフェースを追加し、UNQLite(ドキュメント指向のデータベース)を開発することを発表しました。

SQLiteの限界

以下の表に、SQLiteでサポートしていないいくつかのSQLを示します。92特性

番号機能と説明
1

RIGHT OUTER JOIN

LEFT OUTER JOINのみを実装しています。

2

FULL OUTER JOIN

LEFT OUTER JOINのみを実装しています。

3

ALTER TABLE

ALTER TABLEコマンドのRENAME TABLEおよびADD COLUMNバリアントをサポートしていますが、DROP COLUMN、ALTER COLUMN、ADD CONSTRAINTをサポートしていません。

4

トリガーサポート

FOR EACH ROWトリガーをサポートしていますが、FOR EACH STATEMENTトリガーをサポートしていません。

5

VIEWs

SQLiteのVIEWは読み取り専用です。ビュー上でDELETE、INSERT、またはUPDATE文を実行できないことがあります。

6

GRANTとREVOKE

適用できるアクセス権限は基本的なオペレーティングシステムの通常のファイルアクセス権限のみです。

SQLiteコマンド

関係データベースと対話する標準のSQLiteコマンドはSQLに似ています。これらのコマンドはCREATE、SELECT、INSERT、UPDATE、DELETE、DROPであり、操作の性質に応じていくつかのカテゴリに分類できます。-

DDL-データ定義言語

番号コマンドと説明
1

CREATE

データベースに新しいテーブル、テーブルビュー、または他のオブジェクトを作成

2

ALTER

現在のデータベースオブジェクト、例えばテーブルを修正

3

DROP

テーブル全体、データベースのテーブルビュー、または他のオブジェクトを削除

DML-データ処理言語

番号コマンドと説明
1

INSERT

新しいレコードの作成

2

UPDATE

レコードの修正

3

DELETE

レコードの削除

DQL-データクエリ言語

番号コマンドと説明
1

SELECT

一つのまたは複数のテーブルから特定のレコードを検索