sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit databázi ze skriptu v MySQL

Chcete-li vytvořit databázi ze skriptu v MySQL:

  1. Otevřete kartu Query v MySQL Workbench
  2. Spusťte CREATE DATABASE nebo CREATE SCHEMA příkaz k vytvoření databáze (příklad níže)

Tím se vytvoří nová databáze.

Skript může být tak jednoduchý jako CREATE DATABASE myDatabase; ale tím se vytvoří prázdná databáze. Nevytvoří žádné tabulky ani jiné databázové objekty. Chcete-li je vytvořit, musíte zahrnout CREATE TABLE a další příkazy ve vašem skriptu.

Ukázkové skripty

Níže jsou uvedeny příklady skriptů, které vytvářejí databázi.

Vytvořit prázdnou databázi

Následující příkaz vytvoří prázdnou databázi s názvem „Music“. Nejsou vytvořeny žádné tabulky.

CREATE DATABASE Music;

Následující příkaz dělá přesně to samé (CREATE SCHEMA je synonymem pro CREATE DATABASE ). Můžete si vybrat, kterou chcete používat.

CREATE SCHEMA Music;

Ale NE, pokud již existuje…

Přidání IF NOT EXISTS vytvoří databázi, pouze pokud ještě neexistuje.

VYTVOŘIT DATABÁZI, POKUD NEEXISTUJE Hudba;

Nebo jej ODLOŽTE, pokud již existuje…

Počínaje DROP DATABASE IF EXISTS; zruší databázi, pokud již existuje. Poté CREATE DATABASE příkaz může pokračovat a vytvořit novou databázi podle specifikace.

PŘEDEJTE DATABÁZI, POKUD EXISTUJE Hudba;VYTVOŘTE DATABÁZI Hudba;

Jednoduchá databáze s tabulkou

Následující skript vytvoří databázi (pokud ještě neexistuje) a poté vytvoří tabulku se dvěma sloupci. Nastaví datové typy sloupců a nastaví sloupec ActorId jako primární klíč.

CREATE DATABASE Movies;USE Movies;CREATE TABLE Herci (ActorId INT NOT NULL AUTO_INCREMENT, ActorName VARCHAR(255) NOT NULL, PRIMARY KEY (ActorId));

Databáze se 3 tabulkami

Následující skript byl vygenerován z diagramu pomocí MySQL Workbench a je úplnější než výše uvedený příklad.

Tento zruší všechny existující databáze s tímto názvem, poté vytvoří databázi, vytvoří tabulky, sloupce a jejich datové typy. Také nastavuje vztah mezi tabulkami pomocí omezení primárního klíče a cizího klíče.

V horní části skriptu je také spousta SET příkazy, které zakazují kontroly jedinečných a cizích klíčů. Ty se poté znovu povolí v dolní části po spuštění skriptu.

Tato technika se obvykle používá při vkládání dat do tabulek s relacemi. Bez toho byste mohli narazit na triviální chyby jednoduše proto, že ještě nebyla vložena všechna data (například pokud vyplníte pole cizího klíče dříve, než bude vyplněno související pole primárního klíče).

-- MySQL Script vygenerovaný MySQL Workbenchem-- Po 30. května 11:25:32 2016-- Model:Nová verze modelu:1.0-- MySQL Workbench Forward EngineeringSET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @[email protected]@KONTROLA_ZAHRANIČNÍHO_KEY, FOREIGN_KEY_CHECKS=0;SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';-- ---------------- --------------------------------------- Schema Music-- ------- ---------------------------------------------- SCHÉMA ZAKÁŽTE, POKUD EXISTUJE "Hudba";-- -------------------------------------------- ----------- Schema Music-- ----------------------------------- ------------------VYTVOŘIT SCHÉMA, POKUD NEEXISTUJE VÝCHOZÍ NASTAVENÍ ZNAKŮ „Hudba“ utf8;POUŽÍVEJTE „Hudba“;-- ------------ ------------------------------------------- Stolní `Hudba`.`Umělci `-- ----------------------------------------------- ------DROP TABLE IF EXISTS `Music`.`Artists`;CREATE TABLE IF NEEXISTS `Music`.`Artists` ( `ArtistId` INT NOT NULL AUTO_INCREMENT, `ArtistName` VARCHAR(255) NOT NULL, PRIMÁRNÍ KLÍČ (`ArtistId`));-- ------------------------------------- ------------------ Tabulka "Hudba". "Žánry"-- ---------------------- -------------------------------PUSTIT TABULKU, POKUD EXISTUJE `Hudba`.`Žánry`;VYTVOŘIT TABULKU, POKUD NEEXISTUJE `Hudba `.`Žánry` ( `GenreId` INT NOT NULL AUTO_INCREMENT, `Žánr` VARCHAR(255) NOT NULL, PRIMÁRNÍ KLÍČ (`GenreId`));-- ---------------- ---------------------------------------- Tabulka `Hudba`.`Alba`-- -------------------------------------------------- ---DROP TABLE IF EXISTS `Music`.`Album`;CREATE TABLE IF NEEXISTS `Music`.`Albums` ( `AlbumId` INT NOT NULL AUTO_INCREMENT, `AlbumName` VARCHAR(255)Reased DATE`Date NOT NULL NOT NULL, `ArtistId` INT NOT NULL, `GenreId` INT NOT NULL, PRIMÁRNÍ KLÍČ (`AlbumId`), INDEX `ArtistId_idx` (`ArtistId` ASC), INDEX `GenreId_idx` (`GenreId`Arist`Arist`Id` ` CIZÍ KLÍČ (`ArtistId`) REFERENCE `Music`.`Artists` (`ArtistId`) PŘI OMEZENÍ SMAZÁNÍ PŘI OMEZENÍ AKTUALIZACE, OMEZENÍ `GenreId` CIZÍ KLÍČ (`GenreId` ) REFERENCE `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; 
  1. CROSS JOIN vs INNER JOIN v SQL

  2. Funkce řetězce MariaDB (úplný seznam)

  3. Jak mohu obejít MySQL Errcode 13 pomocí SELECT INTO OUTFILE?

  4. Použijte textový výstup z funkce jako nový dotaz