sql >> Databasteknik >  >> RDS >> Mysql

MySQL standarddatabas

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 ;

  1. öka radnumret när värdet på fältet ändras i Oracle

  2. Att anropa lagrad funktion eller procedur kommer inte att infogas och kvarstår ändringar

  3. Oracle:PÅ DUBLIKAT UPPDATERING AV NYCKEL

  4. INTE IN vs INTE FINNS