SQLite Einführung

Dieses Tutorial hilft Ihnen zu verstehen, was SQLite ist, die Unterschiede zwischen SQLite und SQL, warum Sie es benötigen und wie seine Anwendungen mit Datenbanken umgehen.

SQLite ist eine Softwarebibliothek, die eine eigenständige, serverlose, konfigurationsfreie, transaktionale SQL-Datenbank-Engine implementiert. SQLite ist, gemessen an der Beliebtheit, die am schnellsten wachsende Datenbank-Engine, unabhängig von ihrer Größe. Der SQLite-Quellcode unterliegt keinen urheberrechtlichen Beschränkungen.

Was ist SQLite?

SQLite ist eine In-Process-Bibliothek, die eine eigenständige, serverlose, konfigurationsfreie, transaktionale SQL-Datenbank-Engine implementiert. Es ist eine konfigurationsfreie Datenbank, was bedeutet, dass Sie sie im Gegensatz zu anderen Datenbanken nicht im System konfigurieren müssen.

Wie andere Datenbanken ist die SQLite-Engine kein eigenständiger Prozess; sie kann je nach Bedarf statisch oder dynamisch in eine Anwendung eingebunden werden. SQLite greift direkt auf seine Speicherdateien zu.

Warum SQLite verwenden?

  • Weder ein separater Serverprozess noch ein Betriebssystem ist erforderlich (serverlos).

  • SQLite erfordert keine Konfiguration, was bedeutet, dass weder Installation noch Administration erforderlich sind.

  • Eine vollständige SQLite-Datenbank wird in einer einzigen plattformübergreifenden Datenträgerdatei gespeichert.

  • SQLite ist sehr klein und leichtgewichtig; vollständig konfiguriert ist es weniger als 400 KiB groß und weniger als 250 KiB, wenn optionale Funktionen weggelassen werden.

  • SQLite ist in sich geschlossen, was bedeutet, dass es keine externen Abhängigkeiten erfordert.

  • SQLite-Transaktionen sind vollständig ACID-konform und ermöglichen sicheren Zugriff aus mehreren Prozessen oder Threads.

  • SQLite unterstützt die meisten Funktionen der Abfragesprache des SQL92-Standards (SQL2).

  • SQLite ist in ANSI-C geschrieben und bietet eine einfache und benutzerfreundliche API.

  • SQLite läuft auf UNIX (Linux, Mac OS-X, Android, iOS) und Windows (Win32, WinCE, WinRT).

Verlauf

  1. 2000 -- D. Richard Hipp entwarf SQLite, damit Programme ohne Administration betrieben werden können.

  2. 2000 -- Im August wurde SQLite 1.0 als GNU Database Manager veröffentlicht.

  3. 2011 -- Hipp kündigte die Hinzufügung der UNQl-Schnittstelle zur SQLite-DB an und entwickelte UNQLite (eine dokumentorientierte Datenbank).

SQLite-Einschränkungen

In SQLite sind die SQL92-Features, die nicht unterstützt werden, wie folgt:

MerkmalBeschreibung
RIGHT OUTER JOINNur LEFT OUTER JOIN ist implementiert.
FULL OUTER JOINNur LEFT OUTER JOIN ist implementiert.
ALTER TABLEUnterstützt die Befehlsvarianten RENAME TABLE und ALTER TABLE ADD COLUMN, aber nicht DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT.
Trigger-UnterstützungUnterstützt FOR EACH ROW-Trigger, aber nicht FOR EACH STATEMENT-Trigger.
VIEWsIn SQLite sind Views schreibgeschützt. Sie können keine DELETE-, INSERT- oder UPDATE-Anweisungen auf Views ausführen.
GRANT und REVOKEDie einzigen Zugriffsberechtigungen, die angewendet werden können, sind die normalen Dateizugriffsberechtigungen des zugrunde liegenden Betriebssystems.

SQLite-Befehle

Die standardmäßigen SQLite-Befehle für die Interaktion mit relationalen Datenbanken ähneln SQL. Die Befehle umfassen CREATE, SELECT, INSERT, UPDATE, DELETE und DROP. Aufgrund der Art ihrer Operationen können diese Befehle in die folgenden Kategorien eingeteilt werden:

DDL - Datendefinitionssprache

BefehlBeschreibung
CREATEErstellt eine neue Tabelle, eine Sicht auf eine Tabelle oder andere Objekte in der Datenbank.
ALTERÄndert ein vorhandenes Datenbankobjekt in der Datenbank, wie z. B. eine Tabelle.
DROPLöscht eine gesamte Tabelle, eine Sicht auf eine Tabelle oder andere Objekte in der Datenbank.

DML - Datenmanipulationssprache

BefehlBeschreibung
INSERTErstellt einen Datensatz.
UPDATEÄndert Datensätze.
DELETELöscht Datensätze.

DQL - Datenabfragesprache

BefehlBeschreibung
SELECTRuft bestimmte Datensätze aus einer oder mehreren Tabellen ab.
Andere Erweiterungen