SQLite Beschreiben einer Tabelle

Bilal Shahid 21 Juni 2023
  1. SQLite Beschreiben einer Tabelle
  2. Die Schematabelle
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.

Bilal Shahid avatar Bilal Shahid avatar

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

Verwandter Artikel - SQLite Table