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
2000 -- D. Richard Hipp entwarf SQLite, damit Programme ohne Administration betrieben werden können.
2000 -- Im August wurde SQLite 1.0 als GNU Database Manager veröffentlicht.
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:
| Merkmal | Beschreibung |
|---|---|
| RIGHT OUTER JOIN | Nur LEFT OUTER JOIN ist implementiert. |
| FULL OUTER JOIN | Nur LEFT OUTER JOIN ist implementiert. |
| ALTER TABLE | Unterstützt die Befehlsvarianten RENAME TABLE und ALTER TABLE ADD COLUMN, aber nicht DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT. |
| Trigger-Unterstützung | Unterstützt FOR EACH ROW-Trigger, aber nicht FOR EACH STATEMENT-Trigger. |
| VIEWs | In SQLite sind Views schreibgeschützt. Sie können keine DELETE-, INSERT- oder UPDATE-Anweisungen auf Views ausführen. |
| GRANT und REVOKE | Die 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
| Befehl | Beschreibung |
|---|---|
| CREATE | Erstellt 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. |
| DROP | Löscht eine gesamte Tabelle, eine Sicht auf eine Tabelle oder andere Objekte in der Datenbank. |
DML - Datenmanipulationssprache
| Befehl | Beschreibung |
|---|---|
| INSERT | Erstellt einen Datensatz. |
| UPDATE | Ändert Datensätze. |
| DELETE | Löscht Datensätze. |
DQL - Datenabfragesprache
| Befehl | Beschreibung |
|---|---|
| SELECT | Ruft bestimmte Datensätze aus einer oder mehreren Tabellen ab. |