sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar en databas från ett skript i MySQL

Så här skapar du en databas från ett skript i MySQL:

  1. Öppna en Frågeflik i MySQL Workbench
  2. Kör en CREATE DATABASE eller CREATE 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;
                
  1. ACOS() Funktion i Oracle

  2. Skapa en Java-applikation i Oracle JDeveloper, del 2

  3. Automatiskt ökande 'id'-värde när du infogar i sqlite

  4. Kontrollera om sekvensen finns i Postgres (plpgsql)