SQLite-概要
この章は、SQLiteとは何か、SQLとの違い、必要な理由、およびアプリケーションデータベースの処理方法を理解するのに役立ちます。
SQLiteは、自己完結型のサーバーレスのゼロ構成のトランザクションSQLデータベースエンジンを実装するソフトウェアライブラリです。SQLiteは、最も急速に成長しているデータベースエンジンの1つですが、人気の点では成長しており、そのサイズとは関係ありません。SQLiteのソースコードはパブリックドメインにあります。
SQLiteとは何ですか?
SQLiteは、自己完結型のサーバーレスのゼロ構成のトランザクションSQLデータベースエンジンを実装するインプロセスライブラリです。これはゼロ構成のデータベースです。つまり、他のデータベースと同様に、システムで構成する必要はありません。
SQLiteエンジンは、他のデータベースのようなスタンドアロンプロセスではありません。アプリケーションの要件に応じて、静的または動的にリンクできます。SQLiteはストレージファイルに直接アクセスします。
なぜSQLiteなのか?
SQLiteは、動作するために別個のサーバープロセスまたはシステムを必要としません(サーバーレス)。
SQLiteにはゼロ構成が付属しています。つまり、セットアップや管理は必要ありません。
完全なSQLiteデータベースは、単一のクロスプラットフォームディスクファイルに保存されます。
SQLiteは非常に小型で軽量で、完全に構成された400KiB未満、またはオプション機能を省略した250KiB未満です。
SQLiteは自己完結型です。つまり、外部依存関係はありません。
SQLiteトランザクションは完全にACIDに準拠しており、複数のプロセスまたはスレッドからの安全なアクセスを可能にします。
SQLiteは、SQL92(SQL2)標準にあるほとんどのクエリ言語機能をサポートしています。
SQLiteはANSI-Cで記述されており、シンプルで使いやすいAPIを提供します。
SQLiteは、UNIX(Linux、Mac OS-X、Android、iOS)およびWindows(Win32、WinCE、WinRT)で使用できます。
SQLite簡単な歴史
2000-D。Richard Hippは、プログラムの操作に管理を必要としないことを目的としてSQLiteを設計しました。
2000年-8月、SQLite1.0がGNUDatabaseManagerとともにリリースされました。
2011-Hippは、SQLite DBにUNQlインターフェイスを追加し、UNQLite(ドキュメント指向データベース)を開発することを発表しました。
SQLiteの制限
次の表にリストされているSQLiteのSQL92のサポートされていない機能はほとんどありません。
シニア番号 | 機能と説明 |
---|---|
1 | RIGHT OUTER JOIN LEFT OUTERJOINのみが実装されています。 |
2 | FULL OUTER JOIN LEFT OUTERJOINのみが実装されています。 |
3 | ALTER TABLE ALTERTABLEコマンドのRENAMETABLEおよびADDCOLUMNバリアントがサポートされています。DROP COLUMN、ALTER COLUMN、ADDCONSTRAINTはサポートされていません。 |
4 | Trigger support FOR EACH ROWトリガーはサポートされていますが、FOR EACHSTATEMENTトリガーはサポートされていません。 |
5 | VIEWs SQLiteのビューは読み取り専用です。ビューに対してDELETE、INSERT、またはUPDATEステートメントを実行することはできません。 |
6 | GRANT and 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 1つ以上のテーブルから特定のレコードを取得します |