Een database maken op basis van een script in MySQL:
- Open een Query-tabblad in MySQL Workbench
- Voer een
CREATE DATABASE
. uit ofCREATE SCHEMA
statement om de database te maken (voorbeeld hieronder)
Hiermee wordt een nieuwe database gemaakt.
Het script kan zo simpel zijn als CREATE DATABASE myDatabase;
maar dit zal een lege database creëren. Er worden geen tabellen of andere database-objecten gemaakt. Om deze te maken, moet u CREATE TABLE
. opnemen en andere uitspraken in je script.
Voorbeeldscripts
Hieronder staan voorbeelden van scripts die een database maken.
Maak een lege database
De volgende instructie creëert een lege database met de naam "Music". Er worden geen tabellen gemaakt.
MAAK DATABASE Muziek;
De volgende instructie doet precies hetzelfde (CREATE SCHEMA
is een synoniem voor CREATE DATABASE
). U kunt kiezen welke u het liefst gebruikt.
SCHEMA Muziek MAKEN;
Maar NIET als het al bestaat...
Toevoegen IF NOT EXISTS
maakt de database alleen aan als deze nog niet bestaat.
MAAK DATABASE ALS NIET BESTAAT Muziek;
Of DROP het als het al bestaat...
Beginnend met DROP DATABASE IF EXISTS;
zal de database laten vallen als deze al bestaat. Dan de CREATE DATABASE
statement kan doorgaan en de nieuwe database aanmaken zoals gespecificeerd.
DATABASE LATEN ALS ER BESTAAT Muziek; DATABASE MAKEN Muziek;
Eenvoudige database met een tabel
Het volgende script maakt een database aan (als deze nog niet bestaat) en maakt vervolgens een tabel met twee kolommen. Het stelt de gegevenstypen van de kolommen in en stelt de kolom ActorId in als de primaire sleutel.
CREATE DATABASE Movies;USE Movies;CREATE TABLE Actors ( ActorId INT NOT NULL AUTO_INCREMENT, ActorName VARCHAR(255) NOT NULL, PRIMARY KEY (ActorId));
Database met 3 tabellen
Het volgende script is gegenereerd op basis van een diagram met MySQL Workbench en is completer dan het bovenstaande voorbeeld.
Deze verwijdert elke bestaande database met deze naam, maakt vervolgens de database aan, maakt de tabellen, kolommen en hun gegevenstypen aan. Het stelt ook een relatie op tussen de tabellen met behulp van primaire sleutel en externe sleutelbeperkingen.
Bovenaan het script staat ook een heleboel SET
instructies die de controle van unieke en refererende sleutels uitschakelen. Deze worden dan weer onderaan weer ingeschakeld, nadat het script is uitgevoerd.
Deze techniek wordt meestal gebruikt voor het invoegen van gegevens in tabellen met relaties. Als u dit niet doet, kunt u op triviale fouten stuiten, simpelweg omdat nog niet alle gegevens zijn ingevoegd (bijvoorbeeld als u een veld met een refererende sleutel invult voordat het bijbehorende primaire-sleutelveld is ingevuld).
-- MySQL-script gegenereerd door MySQL Workbench-- ma 30 mei 11:25:32 2016-- Model:Nieuw modelversie:1.0-- MySQL Workbench Forward EngineeringSET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @[email protected]@FOEIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';-- --------------- --------------------------------------- Schema Muziek-- ------- ----------------------------------------------LAATSCHEMA INDIEN BESTAAT `Muziek`;-- -------------------------------------------- ----------- Schema Muziek-- ----------------------------------- ------------------SCHEMA MAKEN INDIEN NIET BESTAAT `Muziek` STANDAARD KARAKTER SET utf8;GEBRUIK `Muziek`;-- ------------ ------------------------------------------- Tafel `Muziek`.`Artiesten `-- ----------------------------------------------- ------LAAG TAFEL INDIEN `Muziek`.`Artiesten`;CREER TAFEL ALS NIET BESTAAT `Muziek`.`Artiesten` ( `Artiest-ID` INT NOT NULL AUTO_INCREMENT, `ArtiestNaam` VARCHAR(255) NIET NULL, PRIMAIRE SLEUTEL (`ArtistId`));-- ------------------------------------- ------------------ Tafel `Muziek`.`Genres`-- ---------------------- -------------------------------LAAG TAFEL INDIEN BESTAAT `Muziek`.`Genres`; MAAK TABEL INDIEN NIET BESTAAT `Muziek `.`Genres` (`GenreId` INT NOT NULL AUTO_INCREMENT, `Genre` VARCHAR(255) NOT NULL, PRIMARY KEY (`GenreId`));-- --------------- ---------------------------------------- Tafel `Muziek`.`Albums`-- -------------------------------------------------- ---LAAT TABEL INDIEN `Muziek`.`Albums` bestaat; CREATE TABLE ALS NIET BESTAAT `Muziek`.`Albums` ( `AlbumId` INT NOT NULL AUTO_INCREMENT, `AlbumName` VARCHAR(255) NOT NULL, `DateReleased` DATETIME NOT NULL, `ArtistId` INT NOT NULL, `GenreId` INT NOT NULL, PRIMARY KEY (`AlbumId`), INDEX `ArtistId_idx` (`ArtistId` ASC), INDEX `GenreId_idx` (`GenreId` ASC), CONSTRAINT `ArtistId ` FOREIGN KEY (`ArtistId`) REFERENTIES `Music`.`Artists` (`ArtistId`) OP VERWIJDEREN BEPERKEN OP UPDATE BEPERKEN, BEPERKING `GenreId` BUITENLANDSE SLEUTEL (`GenreId` ) REFERENTIES `Muziek`.`Genres` (`GenreId`) ON DELETE RESTRICT ON UPDATE RESTRICT);SET [email protected]_SQL_MODE;SET [email protected]_FORIGN_KEY_CHECKS;SET [email protected]_UNIQUE_CHECKS;