Så här ställer du in en standarddatabas för alla efterföljande frågor.
MySQL låter dig ställa in en standarddatabas som ska användas som kontext för eventuella efterföljande SQL-satser. Det kan finnas många databaser på servern och MySQL behöver veta vilken databas du vill att en eller flera SQL-satser ska köras mot. Att ställa in en standarddatabas är en bra början eftersom det gör att du slipper ange databasen i frågan.
Du kan ändra standard-DB så ofta du vill. Det är inte nödvändigtvis en "ställ och glöm". Beroende på hur många databaser du arbetar med kan du byta standarddatabas ganska ofta.
Du kan ställa in standarddatabasen antingen programmatiskt eller via det grafiska gränssnittet.
Använda MySQL Workbench GUI
Högerklicka på databasnamnet i SCHEMAS fliken (i den vänstra menyn):
Standarddatabasen kommer nu att listas i fetstil typsnitt:
Programmatiskt
USE
sats talar om för MySQL att använda en viss databas som standard när du kör efterföljande SQL-satser.
USE FruitShop;
Nu kommer alla efterföljande frågor att köras mot FruitShop DB. Så här:
USE FruitShop; SELECT * FROM Fruit;
CREATE DATABASE
Skript
USE
statement kan verkligen komma väl till pass i våra skript som skapar databaser. När vi väl har skapat vår databas kan vi ställa in den som standarddatabas genom att ange USE
uttalande mot det.
Om du gör detta säkerställer du att alla efterföljande SQL-satser kommer att använda vår nyskapade databas som den aktuella DB (om inte annat anges i skriptet). Detta är viktigt eftersom det talar om för MySQL vilken DB som ska skapa tabellerna mot:
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE table_1 (...); CREATE TABLE table_2 (...);
Ändra standarddatabasen
Det finns inget som hindrar dig att byta standarddatabas flera gånger i dina skript. Så om du hade två databaser skulle du kunna göra något så här:
USE FruitShop; SELECT * FROM Fruit; USE VegeShop; SELECT * FROM Vegetables;
Ovanstående fråga väljer alla poster från
Fruit
tabellen i
FruitShop
databas och alla poster från
Grönsaker
tabellen i
VegeShop
databas. Utan USE
sats, skulle MySQL inte veta vilken databas som ska frågas för varje sats.
Naturligtvis är detta ett förenklat exempel. Du kommer ofta på att du gör mer komplexa frågor mot dina databaser och den här tekniken kan verkligen hjälpa.
Kvalificerar DB-namnet i uttalandet
Oavsett om du ställer in en standarddatabas kan du också ange databasen inom påståendet.
För att göra detta, använd följande syntax:database.table.column
Här är ett exempel:
SELECT FruitName, VegeName FROM FruitShop.Fruit, VegeShop.Vegetables WHERE FruitShop.Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;
Åsidosätt standarddatabasen — Ange databasen i en fråga
Att ställa in en standarddatabas hindrar dig inte från att söka efter andra databaser. Även efter att du har ställt in en standarddatabas kan du fortfarande fråga efter andra databaser utan att behöva ställa in dem som standard. Du kan fortfarande ange vilken databas som ska användas i dina frågor. Faktum är att du kan använda flera databaser inom en enda fråga med den här metoden.
Så exemplet ovan kan också skrivas på följande sätt:
USE FruitShop; SELECT FruitName, VegeName FROM Fruit, VegeShop.Vegetables WHERE Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;