Einstieg in SQLite3 – Grundlegende Befehle

SQLite ist eine C-Bibliothek, die eine SQL-Datenbank-Engine implementiert. Es handelt sich um ein relationales Datenbankmanagementsystem (oder RDBMS). Die meisten SQL-Datenbanken arbeiten mit dem Client/Server-Modell. Nehmen Sie als Beispiel MySQL. Um Daten in eine MySQL-Datenbank einzugeben und von ihr zu erhalten, müssen Sie eine Anfrage an den MySQL-Server senden, der Ihnen beim Empfang die entsprechende Antwort liefert. Im Gegensatz zu MySQL werden SQLite-Datenbanken direkt von der Festplatte aus bedient. Es müssen keine Anfragen an den Server erstellt werden.

SQLite370.svg (Custom)

Installation

Wir werden unsere Datenbank mit dem sqlite31 Command Line Interface(CLI) bedienen. Wir werden unter der Linux-Plattform arbeiten. sqlite3 CLI für MAC OS und Windows sind identisch, aber aus Gründen der Konsistenz wird empfohlen, Homestead Improved zu installieren – eine leichtgewichtige VM, die in 5 Minuten lauffähig ist und Ihren Computer von zusätzlicher, nicht benötigter Software sauber hält.

Um es auf Homestead Improved (oder einem anderen Debian-basierten Betriebssystem wie Ubuntu) zu installieren, führen Sie Folgendes aus:

sudo apt-get install sqlite3 libsqlite3-dev

Damit wird sqlite3 installiert. Um es auf anderen Plattformen zu installieren, folgen Sie deren offiziellen Anweisungen. Nachdem es installiert ist, können wir die Sitzung starten. Öffnen Sie das Terminal/Befehlszeile und geben Sie den Befehl sqlite3 ein. Sie müssen etwas in der Art sehen:

CLI sqlite3

Die zweite Zeile fordert Sie auf, .help für Anweisungen einzugeben. Es erscheint eine Eingabeaufforderung, in der Sie einen Befehl eingeben können. Geben Sie also einfach .help ein. Daraufhin erhalten Sie eine Liste der Meta-Befehle und deren Beschreibungen.

Meta-Befehle

Meta-Befehle werden verwendet, um das Ausgabeformat für Tabellen zu definieren, Datenbanken zu untersuchen und für andere administrative Operationen. Sie beginnen immer mit einem Punkt. Auch .help ist ein Meta-Befehl. Sie können die Liste durchgehen. Hier sind einige, die häufig nützlich sein werden:

Befehl Beschreibung
.show Zeigt aktuelle Einstellungen für verschiedene Parameter an
.databases Bietet Datenbanknamen und -dateien an
.quit Sqlite3-Programm beenden
.tables Aktuelle Tabellen anzeigen
.schema Schema der Tabelle anzeigen
.header Den Kopf der Ausgabetabelle anzeigen oder ausblenden
.Modus Modus für die Ausgabetabelle auswählen
.dump Datenbank im SQL-Textformat ausgeben

Standardbefehle

Lassen Sie uns die Standardbefehle in sqlite3 durchgehen. Meta-Befehle werden ausgegeben, um eine Datenbank zu untersuchen. Standard-SQL-Befehle werden ausgegeben, um auf einer Datenbank zu operieren. Standardbefehle lassen sich in drei Gruppen einteilen:

  • Data Definition Language: Sie stellt die Speicherstruktur und Methoden für den Zugriff auf Daten aus dem Datenbanksystem bereit.

    • CREATE
    • ALTER
    • DROP
  • Data Manipulation Language: Sie ermöglicht es Benutzern, Daten zu manipulieren (hinzufügen/ändern/löschen).

    • INSERT
    • UPDATE
    • DELETE
  • Data Query Language: Sie ermöglicht es, benötigte Daten aus der Datenbank abzurufen.

    • SELECT

Anmerkung: SQLite versteht viele weitere Standardbefehle, eine Liste davon können Sie hier nachlesen. Da es sich bei diesem Tutorial um eine Einführung auf Anfängerniveau handelt, werden wir nur die oben genannten Befehle behandeln.

SQLite-Datenbanken sind plattformübergreifende, portable Dateien. Sie können auf verschiedenen Speichermedien gespeichert und über verschiedene Computer hinweg übertragen werden.

Wir werden die Arbeit mit sqlite3 anhand unserer Comment Section-Datenbank lernen. Fast jede Website hat heute einen Kommentarbereich. Um einen Kommentar abzugeben, muss der Benutzer folgende Angaben machen:

  • Name
  • E-Mail
  • Website
  • Kommentar

Von diesen vier Angaben ist nur die URL der Website optional. Wir müssen auch eine Spalte definieren, die die Kommentare nummeriert. Nennen wir sie post_id.

Wir können die Datentypen der Spalten (Attribute) wie folgt definieren:

Attribut Datentyp erforderlich
post_id INTEGER
Name TEXT
E-Mail TEXT
Website_url TEXT
Kommentar TEXT

Sie können die Dokumentation für verschiedene Datentypen und Speicherklassen in SQLite3 einsehen.

SQLite3 verwendet Manifest Typing2. Die meisten anderen Datenbank-Engines, einschließlich MySQL, verwenden Static Typing.

Nun wollen wir eine Datenbank erstellen. Wenn Sie sich noch im Programm sqlite3 befinden, beenden Sie es durch Eingabe von .quit an der sqlite-Eingabeaufforderung. Geben Sie dann den Befehl:

sqlite3 comment_section.db

Damit wird eine Datenbankdatei comment_section.db im aktuellen Arbeitsverzeichnis angelegt.

Hinweis: Wenn dem Befehl kein Dateiname folgt, legt sqlite3 automatisch eine temporäre Datenbank an. Das ist das, was passiert, wenn wir den Einzelbefehl sqlite3 zum ersten Mal eingeben.

CREATE TABLE

Um die Kommentare zu speichern, müssen wir eine Tabelle definieren. Wir nennen sie . Um sie zu erstellen, geben Sie folgende Anweisung ein:

CREATE TABLE comments ( post_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL, website_url TEXT NULL, comment TEXT NOT NULL );

NOT NULL sorgt dafür, dass der jeweilige Wert in einem Datensatz nicht leer bleibt. PRIMARY KEY3 und AUTOINCREMENT4 arbeiten das Attribut post_id aus.

Um zu prüfen, ob eine Tabelle erstellt wurde, geben Sie den Meta-Befehl .tables aus. Es wird der Tabellenname angezeigt .

Tabelle erstellen

Hinweis: Um das Schema der Tabelle zu erhalten, geben Sie .schema comments

Nun, da die Tabelle erstellt wurde, müssen wir Daten eingeben.

INSERT ROWS

Angenommen, ein Benutzer hat einen Kommentar mit den Details eingegeben:

Name : Shivam MamgainEmail : [email protected] : shivammg.blogspot.comComment : Great tutorial for beginners. 

Um ihn einzufügen, verwenden wir den Befehl INSERT.

INSERT INTO comments ( name, email, website_url, comment )VALUES ( 'Shivam Mamgain', '[email protected]','shivammg.blogspot.com', 'Great tutorial for beginners.' );

Ich habe den Wert für post_id nicht angegeben, obwohl er als NOT NULL definiert ist. Die Sache ist die, dass es nicht benötigt wird, weil es ein AUTOINCREMENT Feld ist.

Geben Sie zum Üben einige weitere Zeilen in die Tabelle ein.

SELECT

Wir haben gelernt, Daten in die Tabelle einzufügen. Um Daten abzurufen, verwenden wir den SELECT-Befehl.

SELECT post_id, name, email, website_url, commentFROM comments;

Die obige Anweisung kann auch so geschrieben werden:

SELECT *FROM comments;

Damit werden alle Zeilen aus der Tabelle abgerufen. Die resultierende Tabelle könnte ohne Überschriften und richtige Trennung zwischen den Spalten unübersichtlich aussehen. Um dies zu vermeiden, müssen wir einige Parameter ändern.

Geben Sie .show

show

Um Spaltenattribute anzuzeigen, geben Sie .headers ON ein.
Um Zeilen im Spaltenstil anzuzeigen, geben Sie .mode column ein.
Geben Sie die SELECT-Anweisung erneut ein.

Spaltenanzeige

Hinweis: Wählen Sie eine für Sie passende Darstellungsart. Geben Sie .help ein und suchen Sie nach .mode. Es werden Ihnen die verschiedenen Werte angezeigt, die .mode haben kann.

UPDATE

Angenommen, die E-Mail für ‚Shivam Mamgain‘ wurde in ‚[email protected]‘ geändert. Wir müssen die Zeile aktualisieren. Geben Sie die folgende Anweisung aus:

UPDATE commentsSET email = '[email protected]'WHERE name = 'Shivam Mamgain';

Damit wird das E-Mail-Attribut für den Namen ‚Shivam Mamgain‘ in ‚[email protected]‘ geändert.

Hinweis: Das Attribut name ist nicht eindeutig, daher kann die obige Anweisung mehr als eine Zeile betreffen. Für jeden Namen = ‚Shivam Mamgain‘ wird die E-Mail auf ‚[email protected]‘ gesetzt. Um eine bestimmte Zeile zu aktualisieren, verwenden Sie das post_id-Attribut. Es ist als PRIMARY KEY definiert und wird immer eindeutig sein.

DELETE

Um Zeile(n) aus der Tabelle zu löschen, können wir die WHERE-Bedingung verwenden, genau wie bei UPDATE.

Angenommen, wir müssen eine Zeile mit post_id 9 löschen. Wir können den Befehl eingeben:

DELETE FROM commentsWHERE post_id = 9;

Wir müssen alle Kommentare löschen, die von ‚Bart Simpson‘ und ‚Homer Simpson‘ geschrieben wurden. Wir können die folgende Abfrage ausführen:

DELETE FROM commentsWHERE name = 'Bart Simpson' OR name = 'Homer Simpson';

ALTER

Neue Spalten können einer Tabelle mit ALTER hinzugefügt werden. Im Web benutzen die meisten Leute nicht unbedingt ihren richtigen Namen. Sie arbeiten meist unter einem Alias, einem Benutzernamen. Wir müssen eine Spalte username zu unserer Tabelle hinzufügen. Die folgende Abfrage erfüllt diese Aufgabe:

ALTER TABLE commentsADD COLUMN username TEXT;

Damit wird eine Spalte username in erstellt und ihr Datentyp auf TEXT gesetzt. Der Wert von username für bereits eingefügte Zeilen wird auf NULL gesetzt.

Der ALTER-Befehl wird auch zum Umbenennen von Tabellen verwendet. Ändern wir die Tabelle in Coms.

ALTER TABLE commentsRENAME TO Coms;

DROP

Eine Tabelle zu löschen bedeutet, die gesamte Tabelle zu löschen. Die Coms Tabelle kann mit der folgenden Abfrage gelöscht werden:

DROP TABLE Coms;

Fazit

SQLite3 bietet viele Vorteile gegenüber anderen relationalen Datenbanken. Einige seiner besonderen Eigenschaften können Sie hier nachlesen. Die meisten PHP-Frameworks und viele andere Web-Frameworks wie Django, Ruby on Rails und web2py haben SQLite3 als Standarddatenbank. Da es leichtgewichtig ist, wird es für die lokale Speicherung in Webbrowsern bevorzugt. Es wird auch als Client-Speicher für viele Betriebssysteme verwendet, einschließlich Android und Windows Phone 8. Es ist eine der am weitesten verbreiteten Datenbank-Engines.

In diesem Tutorial haben wir mit einem SQLite-Datenbanksystem interagiert. Es gibt GUI-Anwendungen, mit denen Sie das Gleiche tun können, ohne Befehle lernen zu müssen. Zwei solcher Anwendungen sind der DB Browser für SQLite und SQLiteStudio. Sie können SQL auch online bei SQL Fiddle üben.

Dieser Leitfaden hat die Grundlagen behandelt, um Ihnen den Einstieg in SQLite3 zu ermöglichen. Ich hoffe, es wird Sie dazu verleiten, weiter zu gehen. Sie können es leicht mit PHP integrieren, indem Sie die gängige PDO-Klasse verwenden.

  1. sqlite version 3
  2. Manifest Typing hebt viele Beschränkungen für den Typ des Wertes auf, der für ein bestimmtes Feld eingegeben werden kann. So können Sie jeden Wert eines beliebigen Datentyps in eine Spalte eingeben, unabhängig vom deklarierten Typ der Spalte (mit Ausnahme von INTEGER PRIMARY KEY). Sie sind nicht einmal verpflichtet, die maximale Größe für Datentypen anzugeben. Nachdem der Benutzer Daten eingegeben hat, ermittelt SQLite die Größe, die er auf der Festplatte benötigen würde. Einen tieferen Einblick erhalten Sie unter Datentypen in SQLite3.
  3. Ein PRIMARY KEY kann eine bestimmte Zeile eindeutig definieren. Ein solches Attribut muss immer als NOT NULL definiert werden.
  4. AUTOINCREMENT setzt das entsprechende Attribut des aktuell eingefügten Datensatzes automatisch auf eine Zahl, die eins plus dem Wert von AUTOINCREMENT ist (sofern nicht angegeben). AUTOINCREMENT definierte Attribute müssen unbedingt INTEGERS sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.