Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como criar um banco de dados a partir de um script no MySQL


Para criar um banco de dados a partir de um script no MySQL:
  1. Abra uma guia de consulta no MySQL Workbench
  2. Execute um CREATE DATABASE ou CREATE SCHEMA instrução para criar o banco de dados (exemplo abaixo)

Isso criará um novo banco de dados.



O script pode ser tão simples quanto CREATE DATABASE myDatabase; mas isso criará um banco de dados em branco. Ele não criará nenhuma tabela ou outros objetos de banco de dados. Para criá-los, você precisa incluir CREATE TABLE e outras declarações em seu script.

Scripts de amostra


Veja abaixo exemplos de scripts que criam um banco de dados.

Criar um banco de dados em branco


A instrução a seguir cria um banco de dados em branco chamado “Music”. Nenhuma tabela é criada.
CREATE DATABASE Music;

A instrução a seguir faz exatamente a mesma coisa (CREATE SCHEMA é sinônimo de CREATE DATABASE ). Você pode escolher qual prefere usar.
CREATE SCHEMA Music;

Mas NÃO se já existir…


Adicionando IF NOT EXISTS só criará o banco de dados se ele ainda não existir.
CREATE DATABASE IF NOT EXISTS Music;

Ou RETIRE se já existir…


Começando com DROP DATABASE IF EXISTS; irá descartar o banco de dados se ele já existir. Em seguida, o CREATE DATABASE pode prosseguir e criar o novo banco de dados conforme especificado.
DROP DATABASE IF EXISTS Music;
CREATE DATABASE Music;

Banco de dados simples com uma tabela


O script a seguir cria um banco de dados (se ainda não existir) e cria uma tabela com duas colunas. Ele define os tipos de dados das colunas e define a coluna ActorId como a chave primária.
CREATE DATABASE Movies;
USE Movies ;

CREATE TABLE Actors (
 ActorId INT NOT NULL AUTO_INCREMENT,
 ActorName VARCHAR(255) NOT NULL,
 PRIMARY KEY (ActorId));

Banco de dados com 3 tabelas


O script a seguir foi gerado a partir de um diagrama usando o MySQL Workbench e é mais completo que o exemplo acima.

Este descarta qualquer banco de dados existente com esse nome e, em seguida, cria o banco de dados, cria as tabelas, colunas e seus tipos de dados. Ele também configura um relacionamento entre as tabelas usando restrições de chave primária e chave estrangeira.

Além disso, na parte superior do script, há um monte de SET instruções que desabilitam verificações de chave exclusiva e estrangeira. Eles são reativados novamente na parte inferior, após a execução do script.

Essa técnica geralmente é usada ao inserir dados em tabelas com relacionamentos. Sem fazer isso, você pode se deparar com erros triviais simplesmente porque todos os dados ainda não foram inseridos (por exemplo, se preencher um campo de chave estrangeira antes que o campo de chave primária associado tenha sido preenchido).
-- MySQL Script generated by MySQL Workbench
-- Mon May 30 11:25:32 2016
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering

SET @[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';

-- -----------------------------------------------------
-- Schema Music
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `Music` ;

-- -----------------------------------------------------
-- Schema Music
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Music` DEFAULT CHARACTER SET utf8 ;
USE `Music` ;

-- -----------------------------------------------------
-- Table `Music`.`Artists`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Music`.`Artists` ;

CREATE TABLE IF NOT EXISTS `Music`.`Artists` (
 `ArtistId` INT NOT NULL AUTO_INCREMENT,
 `ArtistName` VARCHAR(255) NOT NULL,
 PRIMARY KEY (`ArtistId`));


-- -----------------------------------------------------
-- Table `Music`.`Genres`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Music`.`Genres` ;

CREATE TABLE IF NOT EXISTS `Music`.`Genres` (
 `GenreId` INT NOT NULL AUTO_INCREMENT,
 `Genre` VARCHAR(255) NOT NULL,
 PRIMARY KEY (`GenreId`));


-- -----------------------------------------------------
-- Table `Music`.`Albums`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Music`.`Albums` ;

CREATE TABLE IF NOT EXISTS `Music`.`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`)
 REFERENCES `Music`.`Artists` (`ArtistId`)
 ON DELETE RESTRICT
 ON UPDATE RESTRICT,
 CONSTRAINT `GenreId`
 FOREIGN KEY (`GenreId`)
 REFERENCES `Music`.`Genres` (`GenreId`)
 ON DELETE RESTRICT
 ON UPDATE RESTRICT);


SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;