Manchmal möchten Sie nur die Grundstruktur einer Tabelle sehen.
In SQLite gibt es mehrere Möglichkeiten, Informationen über eine bestimmte Tabelle abzurufen. Hier sind insbesondere vier Optionen:
- Der
PRAGMA table_info()
Erklärung - Der
PRAGMA table_xinfo()
-Anweisung (für virtuelle Tabellen) - Das
.schema
Befehl - Der
sqlite_master
Tabelle
Beispiele für jede Methode finden Sie unten.
PRAGMA table_info()
Die PRAGMA table_info()
-Anweisung gibt eine Zeile für jede Spalte in der benannten Tabelle zurück. Es ist so etwas wie ein SQLite-Äquivalent zu DESCRIBE
Anweisung in MySQL.
Syntax
Die Syntax lautet wie folgt:
PRAGMA schema.table_info(table-name);
Wobei table-name
ist der Name der Tabelle, über die Sie Informationen benötigen.
Das schema
Teil ist optional. Dies ist der Name einer angehängten Datenbank oder main
oder temp
für die Haupt- und die TEMP-Datenbank. Wenn Sie dies nicht angeben, wird die Hauptdatenbank verwendet.
Beispiel
Hier ist ein Beispiel für die Rückgabe von Informationen über eine Tabelle namens Haustiere .
PRAGMA table_info(Pets);
Ergebnis:
cid name type notnull dflt_value pk ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 1 PetName 0 0 2 TypeId 0 0
In diesem Fall wird nur die erste Spalte (PetId ) hat seinen Datentyp explizit definiert. Die anderen wurden erstellt, ohne dass ihre Typen explizit definiert wurden.
Wir können auch sehen, dass die PetId Spalte ist die Primärschlüsselspalte (es gibt eine 1 im pk Spalte).
PRAGMA table_xinfo()
Die PRAGMA table_xinfo()
-Anweisung ist genau dieselbe wie die PRAGMA table_info()
-Anweisung, außer dass sie auch versteckte Spalten in virtuellen Tabellen zurückgibt.
Wenn Sie die Struktur einer virtuellen Tabelle einschließlich aller versteckten Spalten sehen möchten, verwenden Sie diese.
Hier ist ein Beispiel, das dieselbe Tabelle aus dem vorherigen Beispiel verwendet.
PRAGMA table_xinfo(Pets);
Ergebnis:
cid name type notnull dflt_value pk hidden ---------- ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 0 1 PetName 0 0 0 2 TypeId 0 0 0
Möglicherweise müssen Sie zur Seite scrollen, um die zusätzliche Spalte zu sehen. In diesem Fall ist keine der Spalten ausgeblendet (und es ist keine virtuelle Tabelle), also sind alle Zeilen 0 für diese Spalte.
Hier ist noch einmal das Ergebnis, aber mit vertikaler Ausgabe (.mode line
), damit Sie nicht seitwärts scrollen müssen.
.mode line
PRAGMA table_xinfo(Pets);
Ergebnis:
cid = 0 name = PetId type = INTEGER notnull = 0 dflt_value = pk = 1 hidden = 0 cid = 1 name = PetName type = notnull = 0 dflt_value = pk = 0 hidden = 0 cid = 2 name = TypeId type = notnull = 0 dflt_value = pk = 0 hidden = 0
Der .schema-Befehl
Eine andere Möglichkeit, die Struktur einer Tabelle abzurufen, ist die Verwendung von .schema
Befehl. Dies ist eine von mehreren Methoden, die Sie verwenden können, um die SQL zurückzugeben, die zum Erstellen der Tabelle verwendet wurde.
Hier ist ein Beispiel, das dieselbe Tabelle aus dem vorherigen Beispiel verwendet.
.schema Pets
Ergebnis:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) );
Diese Methode ermöglicht es uns, mehr Informationen über die Tabelle anzuzeigen. In diesem Beispiel sehen wir, dass die TypeId Spalte ist eigentlich ein Fremdschlüssel, der auf eine Spalte in einer anderen Tabelle verweist.
Die sqlite_master-Tabelle
Sie können den sqlite_master
verwenden Tabelle auf dasselbe wie im vorherigen Beispiel.
Hier ist ein Beispiel mit derselben Tabelle.
SELECT sql
FROM sqlite_master
WHERE tbl_name = 'Pets';
Ergebnis:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) )