Hier leest u hoe u een standaarddatabase instelt voor alle volgende zoekopdrachten.
Met MySQL kunt u een standaarddatabase instellen die moet worden gebruikt als context voor eventuele volgende SQL-instructies. Er kunnen veel databases op de server zijn en MySQL moet weten tegen welke database u wilt dat een of meer SQL-instructies worden uitgevoerd. Het instellen van een standaarddatabase is een goed begin, omdat u hierdoor de database niet hoeft op te geven in de zoekopdracht.
U kunt de standaard-DB zo vaak wijzigen als u wilt. Het is niet per se een "instellen en vergeten" ding. Afhankelijk van het aantal databases waarmee u werkt, kunt u de standaard DB vrij vaak wijzigen.
U kunt de standaarddatabase programmatisch of via de grafische interface instellen.
De MySQL Workbench GUI gebruiken
Klik met de rechtermuisknop op de databasenaam in de SCHEMA'S tabblad (in het linkermenu):
De standaarddatabase wordt nu weergegeven in een vet lettertype:
Programmatisch
De USE
instructie vertelt MySQL om een bepaalde database als standaard te gebruiken wanneer u volgende SQL-instructies uitvoert.
USE FruitShop;
Nu worden alle volgende zoekopdrachten uitgevoerd tegen de FruitShop DB. Zoals dit:
USE FruitShop; SELECT * FROM Fruit;
De CREATE DATABASE
Script
De USE
statement kan echt van pas komen in onze scripts die databases maken. Nadat we onze database hebben gemaakt, kunnen we deze instellen als de standaarddatabase door de USE
. op te geven verklaring ertegen.
Als u dit doet, zorgt u ervoor dat alle volgende SQL-instructies onze nieuw gemaakte database gebruiken als de huidige DB (tenzij anders aangegeven in het script). Dit is belangrijk omdat het MySQL vertelt tegen welke DB de tabellen moeten worden aangemaakt:
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE table_1 (...); CREATE TABLE table_2 (...);
De standaarddatabase wijzigen
Niets houdt u tegen om de standaarddatabase meerdere keren te wijzigen in uw scripts. Dus als je twee databases had, zou je zoiets als dit kunnen doen:
USE FruitShop; SELECT * FROM Fruit; USE VegeShop; SELECT * FROM Vegetables;
De bovenstaande zoekopdracht selecteert alle records uit de
Fruit
tafel in de
FruitShop
database en alle records van de
Groenten
tabel in de
VegeShop
databank. Zonder de USE
statement, zou MySQL niet weten welke database voor elk statement moet worden opgevraagd.
Dit is natuurlijk een vereenvoudigd voorbeeld. Vaak zul je merken dat je complexere query's doet op je databases en deze techniek kan echt helpen.
De DB-naam in de verklaring kwalificeren
Ongeacht of u een standaarddatabase instelt, u kunt de database ook binnen . specificeren de verklaring.
Gebruik hiervoor de volgende syntaxis:database.table.column
Hier is een voorbeeld:
SELECT FruitName, VegeName FROM FruitShop.Fruit, VegeShop.Vegetables WHERE FruitShop.Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;
Overschrijf de standaard database — Specificeer de database binnen een query
Het instellen van een standaarddatabase sluit niet uit dat u andere databases kunt opvragen. Zelfs nadat u een standaarddatabase hebt ingesteld, kunt u nog steeds query's uitvoeren op andere databases zonder dat u deze als standaard hoeft in te stellen. U kunt nog steeds specificeren welke database u wilt gebruiken binnen uw query's. Met deze methode kunt u in feite meerdere databases binnen één query gebruiken.
Het bovenstaande voorbeeld kan dus ook als volgt worden geschreven:
USE FruitShop; SELECT FruitName, VegeName FROM Fruit, VegeShop.Vegetables WHERE Fruit.SupplierId = VegeShop.Vegetables.SupplierId ;