Datenbankstruktur per SQL-Befehl

Hallo,

gibt es einen SQL-Befehl, mit dem man die Struktur einer Datenbank abfragen kann?

Gruß

Thomas

Hallo Thomas,
na klar (auch wenn es i.d.R. mehr als ein einziger Befehl ist). Such doch einfach mal in der Doku deines DMBS nach dem Stichwort ‚System Tables‘ (die heissen nämlich bei allen DBs irgendwie anders).

gruss
bernhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

… oder sag uns um welche DB es dir geht, dann kann hier bestimmt jemand helfen.

Jens

Hi Thomas,

mit einem Befehl geht das sicher nicht, der wesentliche Befehl, aus Datenbanken etwas herauszuholen, heißt nunmal SELECT. Ein Select, und sei er noch so komplex, liefert eine einzige Tabelle, also ein Gebilde aus Zeilen, die gleiche Spalten haben. Damit lässt sich keine Struktur darstellen, jedenfalls nicht so, dass ein normaler Mensch damit etwas anfangen könnte.

Informationen über die Struktur sind nicht explizit abgelegt. Im System-Catalog findest Du Infos über Tabellen, Zusammenhänge zwischen den Tabellen liegen in den Foreign-Key-Klauseln. Daraus die Struktur herzuleiten ist aber nicht ganz einfach.

Fast alle DMBS haben eine Komponente, die sich Redesign, Capturing, Reverse Engineering oder ähnlich nennt und zu einer Datenbank ein graphisches Abbild der Struktur liefert.

Gruß Ralf

Hallo,

… oder sag uns um welche DB es dir geht, dann kann hier
bestimmt jemand helfen.

es geht um MySQL, allerdings in einem WEB-Projekt. Somit habe ich einzig und allein Zugriff auf meine eigene Datenbank. Das macht es etwas schwieriger. Die Idee mit den SYStables hatte ich auch, nur habe ich als reiner Datenbankanwender für diese Internetdatenbank eben keinen Zugriff auf etwas ausserhalb meiner DB.

Meine Idee war, per SQL-Befehl einen DB-Strukturdump zu machen, wenn sowas geht und diesen dann zu analysieren.

Gruß

Thomas

Hi Ralf,

das was Du mir da sagst, gefällt mir weniger. Alles DBMS etc. nutzt mir mal gar nichts. Es geht um eine MySQL-Datenbank in einem Webprojekt. Leider bin ich nun mal beim Provider einzig und allein Herr über meine eigene Datenbank. Ich kann also nicht so ohne weiteres SYSTables auslesen etc.
In PHPMyAdmin habe ich zwar vollständigen Zugriff auf meine Datenbanken, aber das ganze soll ja eigentlich vollautomatisch ablaufen.
Ein SQL-Befehl, der einen Export der Datenbank durchführt, so wie es unter PHPMyAdmin möglich ist, wäre hier einmal ein Ansatz.

Gruß

Thomas

Hallo.

Also mit MySQL 5 wären die Befehle „mysqlshow“ sowie „show“ mitsamt allen relevanten Parametern die richtigen Ansprechpartner. Allerdings sind das keine SQL-Befehle, sondern laufen über die Kommandozeile…

HTH
mfg M.L.