SQLite Tabelle mit Beispielen erstellen, ändern und löschen
⚡ Intelligente Zusammenfassung
SQLite Die Tabellenverwaltung basiert auf drei Datendefinitionsbefehlen: CREATE TABLE zum Definieren einer Tabelle, ALTER TABLE zum Umbenennen oder Hinzufügen und Ändern von Spalten und DROP TABLE zum vollständigen Entfernen aus der Datenbank.
In den folgenden Abschnitten wird gezeigt, wie man Tabellen erstellt, deren Struktur ändert und Tabellen per Drag & Drop einfügt. SQLite3 mit Beispielen, die die Befehle CREATE TABLE, ALTER TABLE und DROP TABLE behandeln.
SQLite Tabelle erstellen
Syntax
Nachfolgend finden Sie die Syntax der CREATE TABLE-Anweisung.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Um eine Tabelle zu erstellen, verwenden Sie die Abfrage „CREATE TABLE“ wie folgt:
CREATE TABLE guru99 ( Id Int, Name Varchar );
In den beiden Klammern nach dem Tabellennamen definieren Sie die Spalten der Tabelle, jede Spalte sollte folgende Eigenschaften haben:
- Ein Name, der Spaltenname, der unter den Spalten der Tabelle eindeutig sein sollte.
- Ein Datentyp – der Spaltendatentyp.
- Optionale Spaltenbeschränkungen, wie wir in den späteren Abschnitten dieses Tutorials erläutern werden.
SQLite CREATE TABLE IF NOT EXISTS
Wenn ein Skript mehr als einmal ausgeführt wird, schlägt eine einfache CREATE TABLE-Anweisung fehl, wenn die Tabelle bereits existiert, und stoppt mit einer Fehlermeldung. SQLite Dies wird mit der optionalen IF NOT EXISTS-Klausel gelöst, die die Tabelle nur dann erstellt, wenn sie fehlt, und nichts unternimmt, wenn sie bereits vorhanden ist.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Die obige Anweisung löst niemals den Fehler „Tabelle existiert bereits“ aus, weshalb sie bedenkenlos am Anfang eines Setup- oder Migrationsskripts stehen kann.
Das gleiche Prinzip funktioniert umgekehrt, wenn Sie eine Tabelle löschen. Durch Hinzufügen von IF EXISTS zu DROP TABLE wird ein Fehler vermieden, wenn die Tabelle bereits gelöscht ist:
DROP TABLE IF EXISTS guru99;
Beide Klauseln sind in automatisierten Skripten üblich, da sie es ermöglichen, dieselbe Datei wiederholt auszuführen, ohne dass zwischen den Ausführungen eine manuelle Bereinigung erforderlich ist.
Tabelle löschen
Um eine Tabelle zu löschen, verwenden Sie den Befehl „DROP TABLE“ gefolgt vom Tabellennamen wie folgt:
DROP TABLE guru99;
Tabelle ändern
Sie können den Befehl „ALTER TABLE“ verwenden, um eine Tabelle wie folgt umzubenennen:
ALTER TABLE guru99 RENAME TO guru100;
Um zu überprüfen, ob der Tabellenname geändert wurde, können Sie den Befehl „.tables“ verwenden, um die Liste der Tabellen anzuzeigen. Der Tabellenname sollte sich nun wie folgt geändert haben:
Wie Sie sehen können, wurde der Tabellenname „guru99“ nach dem Befehl „alter table“ in „guru100“ geändert.
SQLite Spalten hinzufügen – mit dem Befehl ALTER TABLE
Sie können auch den Befehl „ALTER TABLE“ verwenden, um Spalten hinzuzufügen:
ALTER TABLE guru100 ADD COLUMN Age INT;
Dadurch wird die Tabelle „guru100“ verändert und eine neue Spalte „Alter“ hinzugefügt.
Wenn keine Ausgabe angezeigt wird, bedeutet dies, dass die Anweisung erfolgreich ausgeführt wurde und die Spalte hinzugefügt wurde. Keine Ausgabe bedeutet, dass sich der Cursor hinter „sqlite>“ befindet, ohne dass anschließend Text folgt, wie hier gezeigt:
Um jedoch zu überprüfen, ob die Spalte hinzugefügt wurde, können wir den Befehl „.schema guru100“ verwenden. Dadurch erhalten Sie die Tabellendefinition, und Sie sollten die soeben hinzugefügte neue Spalte sehen:
SQLite ALTER TABLE: Spalte umbenennen und löschen
Neben dem Hinzufügen einer Spalte bieten moderne Versionen von SQLite Man kann auch einzelne Spalten umbenennen und andere entfernen. Die Möglichkeit, Spalten umzubenennen, besteht seit … SQLite 3.25, und es aktualisiert den Namen sowohl in der Tabellendefinition als auch in jedem Index, Trigger und jeder Ansicht, die auf die Spalte verweist.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Um eine Spalte zu entfernen, SQLite 3.35 und spätere Versionen unterstützen eine direkte DROP COLUMN-Klausel:
ALTER TABLE guru100 DROP COLUMN Age;
Eine Spalte kann nicht gelöscht werden, wenn sie Teil eines Primärschlüssels, einer eindeutigen Einschränkung oder eines Index ist. SQLite Bei Versionen ohne DROP COLUMN besteht die klassische Vorgehensweise darin, eine neue Tabelle mit den gewünschten Spalten zu erstellen, die Zeilen zu kopieren, die alte Tabelle zu löschen und schließlich die neue umzubenennen.
Wie kopiert man eine Tabelle in SQLite Mit CREATE TABLE AS SELECT
Manchmal benötigt man eine Kopie einer Tabelle, entweder als Sicherungskopie vor einer riskanten Änderung oder als Ausgangspunkt für eine neue Tabelle. SQLite Dies wird in einem Schritt mit CREATE TABLE AS SELECT erstellt, wodurch eine neue Tabelle erstellt wird, deren Spalten aus einer Abfrage stammen, und die mit den von dieser Abfrage zurückgegebenen Zeilen gefüllt wird.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Die neue Tabelle „guru100_backup“ übernimmt dieselben Spalten und alle Zeilen aus „guru100“. Um nur bestimmte Zeilen zu kopieren, fügen Sie der SELECT-Anweisung eine WHERE-Klausel hinzu:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Wichtig ist, dass CREATE TABLE AS SELECT zwar Spaltennamen, Datentypen und Daten kopiert, aber keine Primärschlüssel, andere Einschränkungen oder Indizes. Diese müssen Sie der neuen Tabelle selbst hinzufügen, wenn die Kopie dieselben Regeln wie das Original erfüllen soll.
SQLite Wert in eine Tabelle einfügen
Um Werte in eine Tabelle einzufügen, verwenden wir die Anweisung „INSERT INTO“ wie folgt:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Sie können die Spaltennamen nach dem Tabellennamen weglassen und ihn wie folgt schreiben:
INSERT INTO Tablename VALUES(value1, value2, ….);
In einem solchen Fall, in dem Sie die Spaltennamen aus den Tabellen weglassen, muss die Anzahl der eingefügten Werte genau der Anzahl der Spalten der Tabelle entsprechen. Dann wird jeder Wert in die entsprechende Spalte eingefügt. Zum Beispiel für die folgende Einfügeanweisung:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Das Ergebnis dieser Anweisung wird wie folgt sein:
- In die Spalte „id“ wird der Wert 1 eingefügt.
- Der Wert 'Mike' wird in die Spalte „Name“ eingefügt, und
- In die Spalte „Alter“ wird der Wert 25 eingefügt.
INSERT … DEFAULT VALUES-Anweisung
Sie können die Tabelle wie folgt gleichzeitig mit den Standardwerten für die Spalten füllen:
INSERT INTO Tablename DEFAULT VALUES;
Wenn eine Spalte weder NULL-Werte noch Standardwerte zulässt, erhalten Sie für diese Spalte die Fehlermeldung „NOT NULL-Einschränkung fehlgeschlagen“. Beispiel:






