Alles, was Sie über das Auflisten von MySQL-Datenbanken wissen müssen

Eines der ersten Dinge, die Sie wissen möchten, wenn Sie sich bei einem neuen MySQL-Server anmelden, ist, welche Datenbanken verfügbar sind. Möglicherweise möchten Sie bei der Durchführung von Wartungsarbeiten eine Liste der Datenbanken. Oder Sie sind einfach nur neugierig oder versuchen, eine alte Datenbank zu finden, deren Namen Sie schon lange vergessen haben.

Eine leere Befehlszeile kann einschüchternd sein. Jeder dieser Fälle erfordert einen einfachen Befehl, und MySQL stellt ihn in Form von SHOW DATABASES zur Verfügung . Dieser Befehl ist sehr einfach zu verwenden, aber Sie werden ihn bald als praktisch finden, wenn Sie mit MySQL arbeiten.

In diesem Artikel erfahren Sie alles, was Sie über das Auflisten von MySQL-Datenbanken wissen müssen.

So verwenden Sie den Befehl SHOW DATABASES

Nachdem Sie sich bei Ihrem MySQL-Server angemeldet haben, geben Sie den Text SHOW DATABASES ein; in der Befehlszeile und drücken Sie die Eingabetaste auf Ihrer Tastatur – unten sehen Sie ein Beispiel.

MySQL gibt die Ergebnisse in einer Tabelle mit einer Spalte zurück: Database . Diese Spalte enthält den Namen jeder Datenbank und sortiert sie alphabetisch. Die Zusammenfassungszeile sagt Ihnen, wie viele Zeilen – dh Datenbanken – es gibt.

Sie sollten standardmäßig immer mindestens vier MySQL-Listendatenbanken sehen. Dies sind spezielle Systemdatenbanken, die MySQL selbst installiert:

  • mysql.
  • information_schema.
  • performance_schema.
  • sys.

Sie werden später sehen, wofür einer von ihnen – information_schema – verwendet wird.

Filtern der Ergebnisse von SHOW DATABASES

Sie können dieselbe LIKE- Bedingung verwenden, die Sie in einer WHERE- Klausel einer SELECT- Anweisung verwenden. LIKE benötigt ein einzelnes Argument, ein Muster, nach dem abgeglichen werden soll. Das Muster kann zwei Sonderzeichen enthalten: % (Prozent) und _ (Unterstrich). Diese entsprechen jeder Zeichenfolge bzw. jedem einzelnen Zeichen.

Um beispielsweise alle Datenbanken mit dem Buchstaben a im Namen aufzulisten:

 SHOW DATABASES LIKE '%a%';

So verwenden Sie kompliziertere Bedingungen

Wenn Sie eine kompliziertere Bedingung als den grundlegenden Mustervergleich von LIKE verwenden müssen, können Sie immer noch die bekannte WHERE-Klausel verwenden. Der Trick, den Sie anwenden müssen, besteht darin, auf die Spalte zu verweisen, die Datenbanknamen darstellt. Wie Sie in der obigen Ausgabe sehen können, handelt es sich einfach um Database . Da MySQL dies als reserviertes Schlüsselwort betrachtet, müssen Sie es mit Backticks maskieren.

 SHOW DATABASES WHERE LENGTH(`Database`) > 6;

Die Ergebnisse enthalten jetzt nur noch Tabellen mit Namen, die länger als sechs Zeichen sind:

Verwandte: Anfängerleitfaden zum Schreiben von MySQL-Datenbankschemas

Filtern von Datenbanken nach anderen Metadaten

MySQL unterstützt einige andere datenbankbezogene Felder, die jedoch nicht über SHOW_DATABASES verfügbar sind . Für diese müssen Sie die schemata- Tabelle aus der information_schema- Datenbank verwenden. So sieht der Aufbau dieser speziellen Systemtabelle aus:

Abgesehen von SCHEMA_NAME , das genau der Datenbankspalte von SHOW DATABASES entspricht, gibt es nur zwei nützliche Felder: DEFAULT_CHARACTER_SET_NAME und DEFAULT_COLLATION_NAME . Die anderen Felder haben immer den gleichen Wert, sind also beim Filtern sinnlos.

Die Felder DEFAULT_CHARACTER_SET_NAME und DEFAULT_COLLATION_NAME definieren, welche Zeichen die Datenbank unterstützt und wie sie sortiert werden. Sie haben vielleicht noch nie darüber nachgedacht, aber sie sind wichtig, wenn Sie mit Nicht-ASCII-Text zu tun haben.

Es ist wichtig, den Unterschied zwischen ASCII und Unicode zu kennen ! Wenn Sie mehrere Datenbanken aus unterschiedlichen Quellen installiert haben, ist es wahrscheinlicher, dass Sie einen Wertebereich haben.

Unter Wiederverwendung des vorherigen Beispiels können Sie nach den Spalten aus dieser Tabelle wie nach jedem anderen filtern:

 SELECT schema_name FROM information_schema.schemata WHERE DEFAULT_CHARACTER_SET_NAME='utf8';

Sie können jede andere Tabellenoperation für die Schematabelle ausführen, z. B. Gruppieren:

 SELECT DEFAULT_CHARACTER_SET_NAME, COUNT(*) FROM information_schema.schemata GROUP BY DEFAULT_CHARACTER_SET_NAME;

Verwandte: Alles, was Sie über die SQL GROUP BY-Anweisung wissen müssen

Verwenden eines einfachen Befehls in MySQL zum Auflisten von Datenbanken

Dieser Befehl ist wahrscheinlich der einfachste, den MySQL zu bieten hat. Aber das hält es nicht davon ab, sehr nützlich zu sein. Wenn Sie jemals auf eine MySQL-Befehlszeile starren, denken Sie daran, eine Lücke zu ziehen, SHOW DATABASES ist eine gute Möglichkeit, bei Null anzufangen.

Sobald Sie eine Datenbank eingerichtet haben und wissen, mit welcher Sie arbeiten, ist es an der Zeit, mehr über Schemas und die beste Organisation Ihrer Daten zu erfahren.