sql >> Database teknologi >  >> RDS >> Mysql

Sådan opretter du en database fra et script i MySQL

Sådan oprettes en database fra et script i MySQL:

  1. Åbn en forespørgsel-fane i MySQL Workbench
  2. Kør en CREATE DATABASE eller CREATE SCHEMA sætning for at oprette databasen (eksempel nedenfor)

Dette vil oprette en ny database.

Scriptet kan være så simpelt som CREATE DATABASE myDatabase; men dette vil skabe en tom database. Det vil ikke oprette nogen tabeller eller andre databaseobjekter. For at oprette dem skal du inkludere CREATE TABLE og andre udsagn i dit manuskript.

Eksempel på scripts

Nedenfor er eksempler på scripts, der opretter en database.

Opret en tom database

Følgende sætning opretter en tom database kaldet "Musik". Der oprettes ingen tabeller.

OPRET DATABASE Musik;

Den følgende sætning gør nøjagtig det samme (CREATE SCHEMA er et synonym for CREATE DATABASE ). Du kan vælge, hvilken du foretrækker at bruge.

CREATE SCHEMA Music;

Men IKKE hvis det allerede eksisterer...

Tilføjelse af IF NOT EXISTS vil kun oprette databasen, hvis den ikke allerede eksisterer.

OPRET DATABASE, HVIS IKKE FINDER Musik;

Eller SLIP det, hvis det allerede findes...

Startende med DROP DATABASE IF EXISTS; vil slette databasen, hvis den allerede eksisterer. Derefter CREATE DATABASE sætning kan gå videre og oprette den nye database som specificeret.

DROP DATABASE, HVIS ER FINDER musik; OPRET DATABASE musik;

Simpel database med en tabel

Følgende script opretter en database (hvis den ikke allerede eksisterer), og opretter derefter en tabel med to kolonner. Det angiver kolonnernes datatyper og indstiller ActorId-kolonnen som den primære nøgle.

OPRET DATABASE Film;BRUG film;CREATE TABLE Skuespillere (ActorId INT NOT NULL AUTO_INCREMENT, ActorName VARCHAR(255) NOT NULL, PRIMARY KEY (ActorId));

Database med 3 tabeller

Følgende script blev genereret ud fra et diagram ved hjælp af MySQL Workbench og er mere komplet end eksemplet ovenfor.

Denne dropper enhver eksisterende database med dette navn, opretter derefter databasen, opretter tabellerne, kolonnerne og deres datatyper. Det opretter også en relation mellem tabellerne ved hjælp af primærnøgle- og fremmednøglebegrænsninger.

Øverst i scriptet er der også en masse SET erklæringer, der deaktiverer kontrol af unikke og fremmede nøgler. Disse genaktiveres derefter igen i bunden, efter at scriptet er kørt.

Denne teknik bruges typisk til indsættelse af data i tabeller med relationer. Uden at gøre dette kan du løbe ind i trivielle fejl, simpelthen fordi alle data ikke er blevet indsat endnu (f.eks. hvis du udfylder et fremmednøglefelt, før det tilknyttede primære nøglefelt er blevet udfyldt).

-- MySQL Script genereret af MySQL Workbench-- Man 30. maj 11:25:32 2016-- Model:Ny modelversion: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';------------------ --------------------------------------- Skemamusik-- ------- ----------------------------------------------DROP SKEMA HVIS FINDER `Musik`;-- -------------------------------------------- ----------- Skemamusik-- ----------------------------------- ------------------OPRET SKEMA, HVIS IKKE FINDER `Musik` STANDARDKARAKTERSÆT utf8;BRUG `Musik`;-- ------------ ------------------------------------------ Bord `Musik`.`Kunstnere `-- ----------------------------------------------- ------DROP TABLE IF EXISTS `Music`.`Artists`;CREATE TABLE IF NOT EXISTS `Music`.`Artists` ( `ArtistId` INT NOT NULL AUTO_INCREMENT, `ArtistName` VARCHAR(255) NOT NULL, PRIMÆR NØGLE (`ArtistId`));-- -------------------------------------------- ------------------ Bord `Musik`. `Genrer`-- ---------------------------- -------------------------------SLIP TABEL HVIS FINDER `Musik`.`Genrer`;OPRET TABEL, HVIS IKKE FINDER `Musik `.`Genres` ( `GenreId` INT NOT NULL AUTO_INCREMENT, `Genre` VARCHAR(255) NOT NULL, PRIMARY KEY (`GenreId`));-- --------------- ---------------------------------------- Tabel `Musik`.`Albums`-- -------------------------------------------------- ---DROP TABEL HVIS EKSISTERER `Musik`.`Album`;OPRET TABEL, HVIS IKKE FINDER `Musik`.`Albums` ( `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 `` Kunstner), I CONSTRAINT ` FOREIGN KEY (`ArtistId`) REFERENCER `Music`.`Artists` (`ArtistId`) PÅ SLET BEGRÆNSNING VED UPDATE RESTRICT, BEGRÆNSNING `GenreId` UDENLANDSKE NØGLE (`GenreId` ) REFERENCER `Musik`.`Genrer` (`GenreId`) ON SLET RESTRICT ON UPDATE RESTRICT);SET [email protected]_SQL_MODE;SET [email protected]_FOREIGN_KEY_CHECKS;SET example@sqldat_CHECK_SUNIQUE;
                
  1. Lagring af XML-data i SQL Server

  2. Docker:Kombiner flere billeder

  3. VBA-basisklasse og afledt objekt-2

  4. Adgang nægtet for brugeren 'root'@'localhost' med PHPMyAdmin