Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Standarddatenbank

So legen Sie eine Standarddatenbank für alle nachfolgenden Abfragen fest.

Mit MySQL können Sie eine Standarddatenbank festlegen, die als Kontext für alle nachfolgenden SQL-Anweisungen verwendet wird. Es können viele Datenbanken auf dem Server vorhanden sein und MySQL muss wissen, für welche Datenbank SQL-Anweisungen ausgeführt werden sollen. Das Festlegen einer Standarddatenbank ist ein guter Anfang, da Sie die Datenbank nicht in der Abfrage angeben müssen.

Sie können den Standard-DB beliebig oft ändern. Es ist nicht unbedingt eine "set and forget"-Sache. Abhängig davon, mit wie vielen Datenbanken Sie arbeiten, könnten Sie die Standard-DB ziemlich häufig wechseln.

Sie können die Standarddatenbank entweder programmgesteuert oder über die grafische Oberfläche festlegen.

Verwendung der MySQL Workbench-GUI

Klicken Sie mit der rechten Maustaste auf den Datenbanknamen in den SCHEMAS Registerkarte (im linken Menü):

Die Standarddatenbank wird jetzt fett aufgeführt Schriftart:

Programmgesteuert

Die USE -Anweisung weist MySQL an, eine bestimmte Datenbank als Standard zu verwenden, wenn Sie nachfolgende SQL-Anweisungen ausführen.

USE FruitShop;

Jetzt werden alle nachfolgenden Abfragen gegen den FruitShop ausgeführt DB. So:

USE FruitShop;
SELECT * FROM Fruit;

Die CREATE DATABASE Skript

Die USE -Anweisung kann sich in unseren Skripten, die Datenbanken erstellen, als sehr nützlich erweisen. Sobald wir unsere Datenbank erstellt haben, können wir sie als Standarddatenbank festlegen, indem wir USE angeben Aussage dagegen.

Dadurch wird sichergestellt, dass alle nachfolgenden SQL-Anweisungen unsere neu erstellte Datenbank als aktuelle Datenbank verwenden (sofern im Skript nicht anders angegeben). Dies ist wichtig, weil es MySQL mitteilt, für welche DB die Tabellen erstellt werden sollen:

DROP DATABASE IF EXISTS FruitShop;
CREATE DATABASE FruitShop;
USE FruitShop;
CREATE TABLE table_1 (...);
CREATE TABLE table_2 (...);

Wechseln der Standarddatenbank

Nichts hindert Sie daran, die Standarddatenbank in Ihren Skripten mehrmals zu wechseln. Wenn Sie also zwei Datenbanken hätten, könnten Sie etwa so vorgehen:

USE FruitShop;
SELECT * FROM Fruit;

USE VegeShop;
SELECT * FROM Vegetables;

Die obige Abfrage wählt alle Datensätze aus Fruit aus Tabelle im FruitShop Datenbank und alle Datensätze aus dem Gemüse Tisch im VegeShop Datenbank. Ohne USE -Anweisung, wüsste MySQL nicht, welche Datenbank für jede Anweisung abgefragt werden soll.

Dies ist natürlich ein vereinfachtes Beispiel. Oft werden Sie feststellen, dass Sie komplexere Abfragen für Ihre Datenbanken durchführen, und diese Technik kann wirklich hilfreich sein.

Den DB-Namen in der Anweisung qualifizieren

Unabhängig davon, ob Sie eine Standarddatenbank festlegen, können Sie auch die Datenbank innerhalb angeben die Aussage.

Verwenden Sie dazu die folgende Syntax:database.table.column

Hier ist ein Beispiel:

SELECT FruitName, VegeName FROM FruitShop.Fruit, VegeShop.Vegetables
WHERE FruitShop.Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;

Standard-DB überschreiben – Geben Sie die Datenbank in einer Abfrage an

Das Festlegen einer Standarddatenbank hindert Sie nicht daran, andere Datenbanken abzufragen. Auch nachdem Sie eine Standarddatenbank festgelegt haben, können Sie immer noch andere Datenbanken abfragen, ohne sie als Standard festlegen zu müssen. Sie können weiterhin angeben, welche Datenbank in Ihren Abfragen verwendet werden soll. Tatsächlich können Sie mit dieser Methode mehrere Datenbanken in einer einzigen Abfrage verwenden.

Das obige Beispiel könnte also auch so geschrieben werden:

USE FruitShop;
SELECT FruitName, VegeName FROM Fruit, VegeShop.Vegetables
WHERE Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;