Her er, hvordan du indstiller en standarddatabase for alle efterfølgende forespørgsler.
MySQL giver dig mulighed for at indstille en standarddatabase, der skal bruges som kontekst for eventuelle efterfølgende SQL-sætninger. Der kan være mange databaser på serveren, og MySQL skal vide, hvilken database du vil have en eller flere SQL-sætninger til at blive kørt imod. At indstille en standarddatabase er en god start, da det sparer dig for at skulle angive databasen i forespørgslen.
Du kan ændre standard-DB så ofte du vil. Det er ikke nødvendigvis en "sæt og glem" ting. Afhængigt af hvor mange databaser du arbejder med, kan du skifte standard-DB ret ofte.
Du kan indstille standarddatabasen enten programmatisk eller via den grafiske grænseflade.
Brug af MySQL Workbench GUI
Højreklik på databasenavnet i SCHEMAS faneblad (i venstre menu):
Standarddatabasen vil nu blive vist med fed skrift skrifttype:
Programmatisk
USE
sætning fortæller MySQL at bruge en bestemt database som standard, når du kører efterfølgende SQL-sætninger.
USE FruitShop;
Nu vil alle efterfølgende forespørgsler blive kørt mod FruitShop DB. Sådan:
USE FruitShop; SELECT * FROM Fruit;
CREATE DATABASE
Script
USE
statement kan virkelig komme til nytte i vores scripts, der skaber databaser. Når vi har oprettet vores database, kan vi indstille den som standarddatabasen ved at angive USE
udtalelse imod det.
Dette vil sikre, at alle efterfølgende SQL-sætninger vil bruge vores nyoprettede database som den aktuelle DB (medmindre andet er angivet i scriptet). Dette er vigtigt, fordi det fortæller MySQL, hvilken DB tabellerne skal oprettes mod:
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE table_1 (...); CREATE TABLE table_2 (...);
Skift af standarddatabasen
Der er intet, der forhindrer dig i at skifte standarddatabasen flere gange i dine scripts. Så hvis du havde to databaser, kunne du gøre noget som dette:
USE FruitShop; SELECT * FROM Fruit; USE VegeShop; SELECT * FROM Vegetables;
Ovenstående forespørgsel vælger alle poster fra
Fruit
tabellen i
FruitShop
database og alle poster fra
Grøntsager
tabel i
VegeShop
database. Uden USE
sætning, ville MySQL ikke vide, hvilken database der skulle forespørges på for hver sætning.
Dette er selvfølgelig et forenklet eksempel. Ofte vil du finde dig selv i at lave mere komplekse forespørgsler mod dine databaser, og denne teknik kan virkelig hjælpe.
Kvalificering af DB-navnet i erklæringen
Uanset om du indstiller en standarddatabase, kan du også angive databasen indenfor erklæringen.
For at gøre dette skal du bruge følgende syntaks:database.table.column
Her er et eksempel:
SELECT FruitName, VegeName FROM FruitShop.Fruit, VegeShop.Vegetables WHERE FruitShop.Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;
Tilsidesæt standard-DB — Angiv databasen i en forespørgsel
Indstilling af en standarddatabase forhindrer dig ikke i at forespørge i andre databaser. Selv efter at du har angivet en standarddatabase, kan du stadig forespørge i andre databaser uden at skulle angive dem som standard. Du kan stadig angive, hvilken database der skal bruges i dine forespørgsler. Faktisk kan du bruge flere databaser inden for en enkelt forespørgsel ved hjælp af denne metode.
Så ovenstående eksempel kunne også skrives som følger:
USE FruitShop; SELECT FruitName, VegeName FROM Fruit, VegeShop.Vegetables WHERE Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;