Wie kann ich die Struktur der Tabelle in SQLite als desc
war in Oracle?Wie kann man die Struktur einer Tabelle in SQLite sehen?
Antwort
die sqlite3
Dienstprogramm auf der Datenbank-Datei aufrufen und seinen speziellen Punktbefehle verwenden:
.tables
listet Tabellen.schema [tablename]
zeigt die CREATE-Anweisung (en) für eine Tabelle oder Tabellen
Es gibt viele andere nützliche integrierte Punktbefehle - siehe Dokumentation unter http://www.sqlite.org/sqlite.html, Abschnitt Spezielle Befehle für sqlite3.
Beispiel:
sqlite> entropy:~/Library/Mail>sqlite3 Envelope\ Index
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
addresses ews_folders subjects
alarms feeds threads
associations mailboxes todo_notes
attachments messages todos
calendars properties todos_deleted_log
events recipients todos_server_snapshot
sqlite> .schema alarms
CREATE TABLE alarms (ROWID INTEGER PRIMARY KEY AUTOINCREMENT, alarm_id,
todo INTEGER, flags INTEGER, offset_days INTEGER,
reminder_date INTEGER, time INTEGER, argument,
unrecognized_data BLOB);
CREATE INDEX alarm_id_index ON alarms(alarm_id);
CREATE INDEX alarm_todo_index ON alarms(todo);
Beachten Sie auch, dass SQLite das Schema und alle Informationen über Tabellen in der Datenbank speichert selbst, in einem magischen Tisch sqlite_master genannt, und es ist auch möglich, normale SQL-Abfragen, dass auszuführen Tabelle. Der obige Dokumentationslink zeigt beispielsweise, wie Sie das Verhalten der Befehle .schema
und .tables
mithilfe normaler SQL-Befehle ableiten können (siehe Abschnitt: Abfrage des Datenbankschemas).
Sie sollten in der Lage sein, das Schema zu sehen, indem Sie
.schema <table>
.schema Tablename
Wo Tablename ist der Name der Tabelle
Sie die Struktur erhalten, indem Sie den Befehl eingeben:
.schema <tableName>
PRAGMA table_info(table_name);
Dies wird für beide arbeiten: Befehl -line und bei Ausführung gegen eine verbundene Datenbank.
wow, du warst der einzige, der die einzige Lösung für die Frage lieferte, die wirklich funktioniert. +1! – SpaceDog
+1 für SQL, das in der Befehlszeile oder bei der Ausführung mit einer verbundenen Datenbank funktioniert. –
Führen Sie '.header on 'aus, bevor Sie den obigen Befehl ausführen. Sie können Spalten mit Daten anzeigen. –
Sie können das Firefox-Add-On namens SQLite Manager verwenden, um die Struktur der Datenbank übersichtlich anzuzeigen.
Ich habe einen SQLite-Tabellenschema-Parser in PHP implementiert.Sie können hier überprüfen: Ich habe eine SQLite-Tabelle Parser
https://github.com/maghead/sqlite-parser
Die Syntax implementiert folgt die SQLite table-Anweisung Syntax erstellen: http://www.sqlite.org/lang_createtable.html
der Link ist unterbrochen, existiert er noch? –
Sie sqlite_master
SELECT sql FROM sqlite_master WHERE name='foo';
abfragen können, die eine zurückkehren create table
SQL-Anweisung, zum Beispiel:
$ sqlite3 mydb.sqlite
sqlite> create table foo (id int primary key, name varchar(10));
sqlite> select sql from sqlite_master where name='foo';
CREATE TABLE foo (id int primary key, name varchar(10))
sqlite> .schema foo
CREATE TABLE foo (id int primary key, name varchar(10));
sqlite> pragma table_info(foo)
0|id|int|0||1
1|name|varchar(10)|0||0
+1 aber .... !!!! Warum zur Hölle hast du 'WHERE type = 'foo'' gesetzt, die nichts zurückgibt? Viele Leute denken vielleicht nicht darüber nach. –
Nur um zu erwähnen, dass es scheint, auch die SQL zu arbeiten: SELECT sql FROM sqlite_master WHERE tbl_name = 'foo'; – RDP
@LuisSiquot Es ist ein Tippfehler. Anstatt 'WHERE type = 'foo'' wollte ich' WHERE name = 'foo' sagen (wie im Beispiel). –
Wenn Sie PHP verwenden, können Sie es auf diese Weise erhalten:
<?php
$dbname = 'base.db';
$db = new SQLite3($dbname);
$sturturequery = $db->query("SELECT sql FROM sqlite_master WHERE name='foo'");
$table = $sturturequery->fetchArray();
echo '<pre>' . $table['sql'] . '</pre>';
$db->close();
?>
- 1. Welchen SQL-Befehl kann ich verwenden, um die Struktur einer Tabelle auf SQL Server zu sehen?
- 2. Überprüfen Sie die Struktur einer Datenbank? (SQLite in C++/Qt)
- 3. wie man Spalte in einer SQLite Tabelle in SWIFT
- 4. SQLite-Datenbank - kann keine Updates sehen
- 5. SQLite - Sortieren einer Tabelle
- 6. Doppelwerte in SQLite speichern: Wie kann man die Genauigkeit sicherstellen?
- 7. Wie kopiert man die Struktur einer Tabelle in eine andere mit Fremdschlüsseleinschränkungen in psql?
- 8. Kann nicht Mitglieder eine Struktur sehen, wie auf NULL festlegbare
- 9. In SQL Wie kann ich die Struktur einer Ergebnismenge beschreiben?
- 10. Wie verwendet man Fgets in einer Struktur?
- 11. Wie kann ich die Deklaration einer Struktur in C verstecken?
- 12. Sortieren einer gesamten SQLite-Tabelle
- 13. Wie kann man Ergebnisse aus einer SQLite-Tabelle abrufen und sie Variablen in Objective-C zuweisen?
- 14. Wie man in Tabelle (sqlite db) in iphone sdk einfügt
- 15. Wie kann man die Größe einer Tabelle begrenzen?
- 16. Wie man Bilder in die SQLite DB
- 17. Wie man Objekt und Struktur von einer vorhandenen Struktur ändert?
- 18. Wie kann ich die Lebensdauer einer Struktur auf die einer übergeordneten Struktur beschränken?
- 19. Wie kann ich die Adresse einer Struktur in C bekommen?
- 20. Wie ändert man die visuelle Struktur von django-tables2 Tabellen?
- 21. Wie kann ich die Liste der Spalten in einer Tabelle für eine SQLite-Datenbank abrufen?
- 22. Wie erhält man die Größe einer benutzerdefinierten Struktur? (Sizeof)
- 23. Wie initialisiert man einen Vektor in einer Struktur in C++
- 24. Sqlite3: Wie man Spalten in einer Tabelle neu anordnet?
- 25. Wie benennt man eine Tabelle in SQLite 3.0 um?
- 26. Wie füllt man die Tabelle in SQL Server compact/sqllite?
- 27. Wie man die gleiche Tabelle in sqlalchemy
- 28. Html Tabelle wie Struktur ohne Tabelle
- 29. Wie erstellt man eine Klassenerweiterung einer Struktur?
- 30. sqlite - wie man registrierte Benutzer eigene Sammlungen lassen kann?
ein häufiger Fehler ist hier diese Utility-Funktionen mit SQL-Anweisungen verwirrend .. erstere erfordert keinen ';' am Ende der Befehl, wo wie letzteres tut. – abbood
Zeigt mir nicht den Index für mich, obwohl ich einen Primärschlüssel auf zwei Spalten zusammen – pratnala
nicht für mich arbeiten, aber die Antwort von AnonGeek tut – kkurian