Så här skapar du en databas från ett skript i MySQL:
- Öppna en Frågeflik i MySQL Workbench
- Kör en
CREATE DATABASE
ellerCREATE SCHEMA
uttalande för att skapa databasen (exempel nedan)
Detta kommer att skapa en ny databas.
Skriptet kan vara så enkelt som CREATE DATABASE myDatabase;
men detta kommer att skapa en tom databas. Det kommer inte att skapa några tabeller eller andra databasobjekt. För att skapa dem måste du inkludera CREATE TABLE
och andra påståenden i ditt manus.
Exempel på skript
Nedan finns exempel på skript som skapar en databas.
Skapa en tom databas
Följande uttalande skapar en tom databas som heter "Musik". Inga tabeller skapas.
SKAPA DATABAS Musik;
Följande sats gör exakt samma sak (CREATE SCHEMA
är en synonym till CREATE DATABASE
). Du kan välja vilken du föredrar att använda.
SKAPA SCHEMA musik;
Men INTE om det redan finns...
Lägger till IF NOT EXISTS
kommer bara att skapa databasen om den inte redan finns.
SKAPA DATABAS OM INTE FINNS Musik;
Eller SLAPP den om den redan finns...
Börjar med DROP DATABASE IF EXISTS;
kommer att ta bort databasen om den redan finns. Sedan CREATE DATABASE
kan gå vidare och skapa den nya databasen som specificerats.
SLIPPA DATABAS OM FINNS Musik; SKAPA DATABAS musik;
Enkel databas med en tabell
Följande skript skapar en databas (om den inte redan finns) och skapar sedan en tabell med två kolumner. Den ställer in kolumnernas datatyper och ställer in ActorId-kolumnen som primär nyckel.
SKAPA DATABAS Filmer;ANVÄND filmer;SKAPA TABELL Skådespelare (ActorId INT NOT NULL AUTO_INCREMENT, ActorName VARCHAR(255) NOT NULL, PRIMARY KEY (ActorId));
Databas med 3 tabeller
Följande skript genererades från ett diagram med MySQL Workbench och är mer komplett än exemplet ovan.
Den här släpper alla befintliga databaser med detta namn, skapar sedan databasen, skapar tabellerna, kolumnerna och deras datatyper. Den ställer också upp en relation mellan tabellerna med hjälp av primärnyckel och främmande nyckel.
Också högst upp i skriptet finns det ett gäng SET
uttalanden som inaktiverar kontroller av unika och främmande nyckel. Dessa återaktiveras sedan igen längst ned, efter att skriptet har körts.
Den här tekniken används vanligtvis för att infoga data i tabeller med relationer. Utan att göra detta kan du stöta på triviala fel bara för att all data inte har infogats ännu (till exempel om du fyller i ett främmande nyckelfält innan det associerade primärnyckelfältet har fyllts i).
-- MySQL-skript genererat av MySQL Workbench-- Mån 30 maj 11:25:32 2016-- Modell:Ny modellversion:1.0-- MySQL Workbench Forward EngineeringSET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';------------------ --------------------------------------- Schemamusik-- ------- ----------------------------------------------------SLAPP SCHEMA OM FINNS `Musik`;-- -------------------------------------------- ----------- Schemamusik-- ------------------------------------------ ------------------SKAPA SCHEMA OM INTE FINNS `Musik` STANDARDTECKNSETT utf8;ANVÄND `Musik`;-- ------------ ------------------------------------------ Bord `Musik`.`Artister `-- ------------------------------------------------------- ------SLAPP TABELL OM FINNS `Musik`.`Artister`;SKAPA TABELL OM INTE FINNS `Musik`.`Artister` ( `ArtistId` INT NOT NULL AUTO_INCREMENT, `ArtistName` VARCHAR(255) NOT NULL, PRIMÄRNYCKEL (`ArtistId`));-- -------------------------------------------- ------------------ Tabell `Musik`.`Genrer`-- ---------------------------- -------------------------------SLAPP TABELL OM FINNS `Musik`.`Genrer`;SKAPA TABELL OM INTE FINNS `Musik `.`Genres` ( `GenreId` INT NOT NULL AUTO_INCREMENT, `Genre` VARCHAR(255) NOT NULL, PRIMARY KEY (`GenreId`));-- --------------- ---------------------------------------- Tabell `Musik`.`Album`-- -------------------------------------------------- ---SLAPP TABELL OM FINNS `Musik`.`Album`;SKAPA TABELL OM INTE FINNS `Musik`.`Album` ( `AlbumId` INT NOT NULL AUTO_INCREMENT, `AlbumName` VARCHAR(255) NOT NULL, `DateTIMEReleased` NOT NULL, `ArtistId` INT NOT NULL, `GenreId` INT NOT NULL, PRIMARY KEY (`AlbumId`), INDEX `ArtistId_idx` (`ArtistId` ASC), INDEX `GenreId_idx` (`GenreId ``Artist), I CONSTRAINT ` FOREIGN KEY (`ArtistId`) REFERENSER `Music`.`Artists` (`ArtistId`) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT `GenreId` FOREIGN KEY (`GenreId` ) REFERENSER `Musik`.`Genres` (`GenreId`) PÅ DELETE RESTRICT ON UPDATE RESTRICT);SET [email protected]_SQL_MODE;SET [email protected]_FOREIGN_KEY_CHECKS;SET example@sqldat_CHECK_SUNIQUE;