At oprette en database i MySQL er omtrent så let, som det bliver. Én linje er alt, der skal til. Faktisk tager det mig normalt længere tid at tænke på et navn til databasen, end det gør at oprette den!
Selvom du helt sikkert kan oprette dine databaser via MySQL Workbench GUI, vil du sandsynligvis finde det hurtigere at oprette dem programmatisk ved hjælp af CREATE DATABASE
erklæring.
CREATE DATABASE
Erklæring
Du kan oprette en ny database ved at bruge CREATE DATABASE
udmelding. Denne erklæring er en del af SQL, som er et specialsprog til forespørgsler og programmering af databaser.
Syntaksen er CREATE DATABASE db_name
hvor db_name
er navnet på den database, du vil oprette.
For eksempel at oprette en database kaldet FruitShop
skriv følgende på fanen Forespørgsel og kør forespørgslen:
CREATE DATABASE FruitShop;
Det er alt, der skal til. SCHEMAS fanen i venstre menu skulle nu vise din database:
Hvis du ikke kan se din database, skal du klikke på det lille opdateringsikon ved siden af SCHEMAS overskrift.
Du kan også bruge følgende kommando til at vise en liste over databaser på serveren:
SHOW DATABASES;
Men selvfølgelig har du nu en tom database. Du skal tilføje tabeller og indsætte data, før du har en fuldt fungerende database. Det kommer vi snart til.
CREATE SCHEMA
Erklæring
Du kan også bruge CREATE SCHEMA
udmelding. Dette bruger den samme syntaks, så ovenstående sætning kunne omskrives til denne:
CREATE SCHEMA FruitShop;
Brug af IF NOT EXISTS
Du kan bruge IF NOT EXISTS
for at forhindre, at der opstår en fejl, hvis databasen allerede eksisterer. Her er et eksempel:
CREATE DATABASE IF NOT EXISTS FruitShop;
Brug af DROP DATABASE IF EXISTS
Ved at bruge ovenstående IF NOT EXISTS
er fantastisk, så længe du ikke har til hensigt at erstatte databasen (og alle dens data) med en frisk ny. Men nogle gange vil du måske slette den gamle database og starte forfra. Det er her DROP DATABASE
kommer godt med.
Du kan bruge DROP DATABASE
at slette alle tabeller i databasen og slette databasen, før du kører CREATE DATABASE
udmelding. Du kan kombinere det med IF EXISTS
for at angive, at sætningen kun skal udføres, hvis databasen eksisterer i øjeblikket. Dette vil forhindre, at der opstår en fejl, hvis du forsøger at slette en database, der faktisk ikke eksisterer.
Så her er, hvordan det kunne se ud:
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop;
Om semikolon
Ovenstående eksempel bruger semikolon (;
) for at markere slutningen af hvert udsagn. MySQL-kommandoer består normalt af en SQL-sætning efterfulgt af et semikolon. Der er nogle undtagelser, men de fleste kommandoer følger denne konvention. Hvis du opdager, at en kommando, du skriver, ikke kører, skal du kontrollere, at du har inkluderet semikolon efter hver sætning.
Databasedesign
Før du opretter din database, skal du tænke over dens design. Du skal tænke over, hvilke tabeller og andre objekter den vil indeholde, samt de data, der vil blive gemt i databasen.
I virkeligheden, når du opretter en database, opretter du ikke bare en tom database og så tænker på, hvilke tabeller der skal ind i den senere. Du ville normalt skrive et script, der opretter databasen og alle dens tabeller og andre objekter på én gang.
Heldigvis er det ret ligetil at gøre dette. Det er simpelthen et spørgsmål om at kombinere SQL-sætninger, den ene efter den anden, for hvert objekt, du vil oprette.
Vi vil herefter se på oprettelse af tabeller, men indtil videre er her et hurtigt eksempel:
DROP DATABASE IF EXISTS FruitShop; CREATE DATABASE FruitShop; USE FruitShop; CREATE TABLE Fruit (FruitName VARCHAR(20), DateEntered DATETIME);
Dette er et simpelt eksempel, der opretter en database og en tabel i denne database. Du kan skrive et langt script, der skaber en database og mange tabeller samt andre databaseobjekter.
Du kan også skrive et andet script, der udfylder tabellerne med de nødvendige indledende data. Du kan endda kombinere begge scripts til ét, hvis du ønsker det.
Navnekonventioner
Det er en god idé at holde en konsekvent navnekonvention. Du kan kalde databasen FruitShop
(hovedbogstav), FRUITSHOP
(store bogstaver), fruitshop
(små bogstaver), fruit_shop
(med et understregningstegn) osv.
Nogle mennesker kan også lide at præfikse deres databaseobjekter. For eksempel præfikser tabeller med tbl_
eller tbl_
og lagrede procedurer med sp
eller sp_
. Så en tabel kunne kaldes tblCustomers
eller tbl_customers
osv.
Du bør også tænke på flertalsformer. Ringer du til en tabel, der indeholder alle kunderegistre customer
eller customers
. Hvis du vælger customers
, så skal du også kalde en tabel, der indeholder alle produkter products
og ikke product
.
Uanset hvad du vælger, bør du prøve at opretholde den samme konvention i hele din database.
Etablering af en navnekonvention vil hjælpe enormt, når du begynder at skrive forespørgsler mod din database. Du behøver ikke at huske, om du har navngivet en bestemt tabel med en understregning, overskriftsbogstav osv.