Aby utworzyć bazę danych ze skryptu w MySQL:
- Otwórz kartę Zapytanie w MySQL Workbench
- Uruchom
CREATE DATABASE
lubCREATE SCHEMA
oświadczenie o utworzeniu bazy danych (przykład poniżej)
Spowoduje to utworzenie nowej bazy danych.
Skrypt może być tak prosty jak CREATE DATABASE myDatabase;
ale to stworzy pustą bazę danych. Nie tworzy żadnych tabel ani innych obiektów bazy danych. Aby je utworzyć, musisz dołączyć CREATE TABLE
i inne stwierdzenia w twoim skrypcie.
Przykładowe skrypty
Poniżej znajdują się przykłady skryptów, które tworzą bazę danych.
Utwórz pustą bazę danych
Poniższa instrukcja tworzy pustą bazę danych o nazwie „Muzyka”. Nie są tworzone żadne tabele.
UTWÓRZ BAZĘ DANYCH Muzyka;
Poniższa instrukcja robi dokładnie to samo (CREATE SCHEMA
jest synonimem CREATE DATABASE
). Możesz wybrać, którego wolisz używać.
UTWÓRZ SCHEMAT Muzyka;
Ale NIE, jeśli już istnieje…
Dodanie IF NOT EXISTS
utworzy bazę danych tylko wtedy, gdy jeszcze nie istnieje.
UTWÓRZ BAZĘ DANYCH, JEŚLI NIE ISTNIEJE Muzyka;
Lub UPUŚĆ, jeśli już istnieje…
Zaczynając od DROP DATABASE IF EXISTS;
usunie bazę danych, jeśli już istnieje. Następnie CREATE DATABASE
oświadczenie może iść dalej i utworzyć nową bazę danych zgodnie z opisem.
UPUŚĆ BAZĘ DANYCH, JEŚLI ISTNIEJE Muzyka; TWÓRZ BAZĘ DANYCH Muzyka;
Prosta baza danych z tabelą
Poniższy skrypt tworzy bazę danych (jeśli jeszcze nie istnieje), a następnie tworzy tabelę z dwiema kolumnami. Ustawia typy danych kolumn i ustawia kolumnę ActorId jako klucz podstawowy.
CREATE DATABASE Movies;USE Movies;CREATE TABLE Aktorzy (ActorId INT NOT NULL AUTO_INCREMENT, ActorName VARCHAR(255) NOT NULL, PRIMARY KEY (ActorId));
Baza danych z 3 tabelami
Poniższy skrypt został wygenerowany na podstawie diagramu przy użyciu MySQL Workbench i jest bardziej kompletny niż powyższy przykład.
Ten usuwa każdą istniejącą bazę danych o tej nazwie, a następnie tworzy bazę danych, tworzy tabele, kolumny i ich typy danych. Ustanawia również relację między tabelami przy użyciu ograniczeń klucza podstawowego i klucza obcego.
Ponadto na górze skryptu znajduje się kilka SET
oświadczenia, które wyłączają sprawdzanie unikatowego i obcego klucza. Są one następnie ponownie włączane na dole, po uruchomieniu skryptu.
Ta technika jest zwykle używana podczas wstawiania danych do tabel zawierających relacje. Bez tego możesz napotkać trywialne błędy, ponieważ wszystkie dane nie zostały jeszcze wstawione (na przykład, jeśli wypełniono pole klucza obcego przed wypełnieniem powiązanego pola klucza podstawowego).
-- Skrypt MySQL wygenerowany przez MySQL Workbench-- Poniedziałek 30 maja 11:25:32 2016-- Model:Nowa wersja modelu: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';-- ---------------- --------------------------------------- Schemat muzyczny-- ------- ---------------------------------------------- UPUŚĆ SCHEMAT, JEŚLI ISTNIEJE `Muzyka`;-- -------------------------------------------- ----------- Muzyka schematu-- ------------------------------------ ------------------UTWÓRZ SCHEMAT, JEŚLI NIE ISTNIEJE `Muzyka` DOMYŚLNY ZESTAW ZNAKÓW utf8;UŻYJ `Muzyka`;-- ------------ -------------------------------- Stół `Muzyka`.`Artyści `-- ---------------------------------------------------------- ------DROP TABLE, JEŻELI ISTNIEJE `Muzyka`.`Artyści`;UTWÓRZ TABELĘ, JEŚLI NIE ISTNIEJE `Muzyka`.`Artyści` ( `ArtistId` INT NOT NULL AUTO_INCREMENT, `ArtistName` VARCHAR(255) NOT NULL, KLUCZ PODSTAWOWY (`ArtistId`));-- ------------------------------------- ------------------ Tabela `Muzyka`.`Genres`-- ---------------------- -------------------------------UPUŚĆ TABELĘ, JEŚLI ISTNIEJE `Muzyka`.`Gatunki`;UTWÓRZ TABELĘ JEŚLI NIE ISTNIEJE `Muzyka `.`Genres` ( `GenreId` INT NOT NULL AUTO_INCREMENT, `Genre` VARCHAR(255) NOT NULL, PRIMARY KEY (`GenreId`));-- --------------- ---------------------------------------- Tabela `Muzyka`.`Albumy`-- -------------------------------------------------- ---DROP TABLE IF EXISTS `Music`.`Albums`;CREATE TABLE JEŚLI NIE ISTNIEJE `Music`.`Albums` ( `AlbumId` INT NOT NULL AUTO_INCREMENT, `AlbumName` VARCHAR(255) NOT NULL, `Date Release` DATETIME NIE NULL, `ArtistId` INT NIE NULL, `GenreId` INT NIE NULL, KLUCZ PODSTAWOWY (`AlbumId`), INDEKS `ArtistId_idx` (`ArtistId` ASC), INDEKS `GenreId_idx` (`GenreId` ASC), OGRANICZENIE `ArtistId` ` KLUCZ OBCY (`ArtistId`) ODNIESIENIA `Music`.`Artyści` (`ArtistId`) NA USUNIĘCIE RESTRICT PRZY AKTUALIZACJI RESTRICT, OGRANICZENIE `GenreId` KLUCZ OBCY (`GenreId` ) ODNIESIENIA `Muzyka`.`Genres` (`GenreId`) USUŃ RESTRICT PRZY AKTUALIZACJI RESTRICT);USTAW przykł[email protected]_SQL_MODE;USTAW przykł[email protected]_FOREIGN_KEY_CHECKS;USTAW przykł[email protected]_UNIQUE_CHECKS;