SQLite Beschreiben einer Tabelle
SQLite ist eine serverlose Open-Source-SQL-Datenbank, die Daten in einer Textdatei auf jedem Gerät speichert. Es ist eine zuverlässige, schnelle, eigenständige SQL-Datenbank-Engine mit vollem Funktionsumfang in der C-Programmbibliothek.
Diese Software ist auf der ganzen Welt sehr beliebt. Es verfügt über integrierte Mobiltelefone, die meisten Computer und verschiedene Anwendungen weltweit.
SQLite ist mit mehreren verschiedenen Befehlen für seine Benutzer ausgestattet. Einer dieser Befehle ist der describe
-Befehl.
Dadurch kann der Benutzer eine detaillierte Struktur der Tabelle sehen.
SQLite Beschreiben einer Tabelle
SQLite ist ein Verwaltungssystem für relationale Datenbanken, das viele Befehle verwendet, die dem Benutzer zur Verfügung stehen. Diese Datenbanksoftware verwendet den Befehl .schema
, um eine Tabelle in der Datenbank zu beschreiben.
Hier ist der Befehl .schema
ein Befehlszeilenprogramm, mit dem wir eine detaillierte Struktur der erforderlichen Tabelle erhalten können. Das Beschreiben der Tabellen bedeutet im Wesentlichen, dass wir spezifische Details aller Spalten in der Tabelle drucken können, wie z. B. den Spaltennamen, den Datentyp der Spalte sowie die Größe der Spalte.
SQLite erlaubt die Beschreibung der Tabelle auf verschiedene Arten.
Beschreiben Sie eine Tabelle mit .schema
in SQLite
Die Syntax zum Beschreiben einer Tabelle lautet wie folgt:
.schema yourTableName
Hier ist yourTableName
der Tabellenname, dessen Beschreibung Sie benötigen, und .schema
ist der Befehl, den Sie verwenden müssen. Um alle Tabellen zu sehen, verwenden Sie den Befehl .tables
; Wenn Sie jedoch eine bestimmte Tabelle sehen müssen, verwenden Sie den Befehl .schema Tabellenname
.
Wenn das .schema
oder die Abfrage von sqlite_master
keine Ausgabe liefert, deutet dies auf einen nicht existierenden Tabellennamen hin.
Beschreiben Sie eine Tabelle mit PRAGMA
in SQLite
Wie bereits erwähnt, kann die Methode .schema
verwendet werden, um die Tabelle mit dem angegebenen Tabellennamen zu beschreiben. In diesem Befehl müssen wir jedoch zuerst die Tabelle erstellen.
Die nächste Methode, die wir verwenden können, ist die PRAGMA
-Methode. Die Syntax zur Verwendung dieses Befehls lautet wie folgt:
PRAGMA table_info(tablename)
Dieser Befehl ist derselbe wie der SQL-Befehl describe
. Es gibt eine einzelne Zeile aus jeder Spalte der Tabelle zurück, die Sie in der Spalte angegeben haben.
PRAGMA table_xinfo(tablename)
Dies ist eine andere Version der vorherigen Aussage. Der Unterschied besteht hier darin, dass die verborgene Spalte der virtuellen Tabelle zurückgegeben wird, die in der Anweisung angegeben ist.
.schema
kann in diesem Fall mehr Details der Tabellen anzeigen, einschließlich Tabelleneinschränkungen, als PRAGMA
.
Wenn Sie die Details aller Tabellen gut formatiert benötigen, verwenden Sie den folgenden Befehl.
.schema --indent
Beschreiben Sie eine Tabelle mit sqlite_master
in SQLite
Ein weiterer Befehl lautet:
sqlite_master tablename
Dies ist ein Befehl, der verwendet wird, um eine Tabelle zu beschreiben.
Die Schematabelle
Jede SQLite-Datenbank besteht aus einer einzelnen Schematabelle. Diese Tabelle enthält das Datenbankschema, das alles in den Tabellen darstellt, von Listen und Triggern bis hin zu Ansichten innerhalb der Datenbank.
Die Schematabelle sieht so aus:
CREATE TABLE sqlite_schema(
type text,
name text,
tbl_name text,
rootpage integer,
SQL text
);
SQLite erstellt die Schematabelle, wenn die Datenbank erstellt wird, und ändert ihren Inhalt weiter, während die SQLite-Benutzer Anweisungen zur Ausführung übermitteln.
Unter normalen Bedingungen ist eine Änderung nicht erforderlich. Wenn Benutzer es ändern, müssen sie das Risiko einer Datenbankbeschädigung tragen.
Das sqlite_schema
enthält eine einzelne Zeile für jede Tabelle, jeden Index, jede Ansicht und jeden Trigger in den Schemas, es sei denn, es gibt keinen Eintrag für die sqlite_schema
-Tabelle selbst. Das sqlite_schema
ist eine Referenz für die Schematabelle und hat einige alternative Namen wie sqlite_master
, sqlite_temp_schema
und sqlite_temp_master
.
Hier werden die letzten beiden Alternativen für die temporäre Datenbank verwendet. Sie sind jeder Datenbankverbindung zugeordnet.
Wenn wir über die Schematabelle sprechen, verwendet das Schema verschiedene Parameter wie Typ
, name
, tbl_name
, Stammseite
und SQL
.
“Typ” bedeutet eine Textzeichenfolge wie Ansicht, Index, Tabelle oder Trigger, da dies davon abhängt, welcher Objekttyp definiert ist. Wir können den Typ als sqlite_schema.type
darstellen. name
gibt den Spaltenspeichernamen des Objekts an.
Hier können wir auch Eindeutigkeits- und Primärschlüsseleinschränkungen zum Zeitpunkt der Tabellenerstellung angeben. Wir können jedoch die Primärschlüsseleinschränkung nicht mit der Tabelle rowid
verwenden, daher erlaubt sqlite_schema
keinen Primärschlüssel, aber der automatische Index von SQLite verwendet den Primärschlüssel.
tbl_name
wird verwendet, um den Tabellennamen oder den Ansichtsnamen zu speichern. Wir können tbl_name
als sqlite_schema_tbl_name
darstellen.
Die Stammseite
wird verwendet, um die Seitennummer der Wurzelbaumseite für die Tabelle und den Index zu speichern. Wir stellen es als sqlite_schema_rootpage
dar.
SQL bietet verschiedene Befehle. Das bedeutet, dass wir Trigger erstellen können, die gegen die Datenbank ausgeführt werden können.
Wir stellen SQL
als sqlite_schem.sql
dar. Der Text in der Spalte sqlite_schema.sql
ist eine Kopie des ursprünglich erstellten Textes der CREATE
-Anweisung; es normalisierte sich jedoch wie zuvor beschrieben und wurde durch Fortfahren von ALTER TABLE
-Anweisungen modifiziert.
Es ist NULL
für die internen Indizes; diese werden automatisch durch PRIMARY KEY
- oder UNIQUE
-Constraints erstellt.
Beispiel für das Beschreiben von Tabellen in SQLite
Erstellen Sie zuerst eine Tabelle mit der Anweisung create table
.
create table employee (id integer primary key, name text not null, dept text not null, salary text not null);
Geben Sie nun den Befehl ein:
PRAGMA table_info(employee);
Wie bereits erwähnt, beschreibt dieser Befehl die Tabelle.
.schema employee
Dies wird auch das gleiche tun:
SELECT SQL
FROM sqlite_master
WHERE tbl_name = 'employee';
Hier haben wir eine select
-Anweisung mit sql_master
verwendet, um den SQL
-Parameter des sqlite_master
-Befehls zu extrahieren.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub