Dodawanie bazy danych do MySQL z pliku przez terminal

Fajne, bo wczoraj miałem z tym problem i tak przypuszczałem, że jakoś da się to zrobić, ale nie bardzo wiedziałem jak.

    Dzisiaj dowiedziałem się jak automatycznie dodawać do mojej bazy danych masowo tabele (encje, relacje), kolumny (atrybuty) i wiersze (krotki, rekordy).

    Otóż polega to na kilku krokach:


  1. Firstly, musi być przygotowany odpowiednio plik. 
  2. Secondly, trzeba przejść w terminalu do folderu gdzie jest plik.
  3. Thirdly, należy odpalić MySQLa i przejść do bazy w jakiej chcemy dodać tabele z pliku.
  4. Forthly, wpisać komendę, która dodaje plik.


AD. 1. Przygotowanie pliku


  • Plik ma być w formacie *.sql.
  • W pliku mają być wpisane komendy SQL.
  • komentarz kończy się i zaczyna znakiem "/"
  • Treść przykładowego pliku wygląda tak:

/*******************************************************************************
   Chinook Database - Version 1.4
   Script: Chinook_MySql.sql
   Description: Creates and populates the Chinook database.
   DB Server: MySql
   Author: Luis Rocha
   License: http://www.codeplex.com/ChinookDatabase/license
********************************************************************************/

/*******************************************************************************
   Drop database if it exists
********************************************************************************/
DROP DATABASE IF EXISTS `Chinook`;


/*******************************************************************************
   Create database
********************************************************************************/
CREATE DATABASE `Chinook`;


USE `Chinook`;


/*******************************************************************************
   Create Tables
********************************************************************************/
CREATE TABLE `Album`
(
    `AlbumId` INT NOT NULL,
    `Title` NVARCHAR(160) NOT NULL,
    `ArtistId` INT NOT NULL,
    CONSTRAINT `PK_Album` PRIMARY KEY  (`AlbumId`)
);

CREATE TABLE `Artist`
(
    `ArtistId` INT NOT NULL,
    `Name` NVARCHAR(120),
    CONSTRAINT `PK_Artist` PRIMARY KEY  (`ArtistId`)
);


/*******************************************************************************

   Create Primary Key Unique Indexes

********************************************************************************/


/*******************************************************************************

   Create Foreign Keys

********************************************************************************/

ALTER TABLE `Album` ADD CONSTRAINT `FK_AlbumArtistId`

    FOREIGN KEY (`ArtistId`) REFERENCES `Artist` (`ArtistId`) ON DELETE NO ACTION ON UPDATE NO ACTION;

CREATE INDEX `IFK_AlbumArtistId` ON `Album` (`ArtistId`);
ALTER TABLE `Customer` ADD CONSTRAINT `FK_CustomerSupportRepId`
    FOREIGN KEY (`SupportRepId`) REFERENCES `Employee` (`EmployeeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
CREATE INDEX `IFK_CustomerSupportRepId` ON `Customer` (`SupportRepId`);
ALTER TABLE `Employee` ADD CONSTRAINT `FK_EmployeeReportsTo`
    FOREIGN KEY (`ReportsTo`) REFERENCES `Employee` (`EmployeeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;


/*******************************************************************************

   Populate Tables

********************************************************************************/

INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (1, N'Rock');

INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (2, N'Jazz');

INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (3, N'Metal');

INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (4, N'Alternative & Punk');

INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (5, N'Rock And Roll');

INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (6, N'Blues');

INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (7, N'Latin');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (8, N'Reggae');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (9, N'Pop');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (10, N'Soundtrack');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (11, N'Bossa Nova');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (12, N'Easy Listening');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (13, N'Heavy Metal');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (14, N'R&B/Soul');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (15, N'Electronica/Dance');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (16, N'World');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (17, N'Hip Hop/Rap');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (18, N'Science Fiction');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (19, N'TV Shows');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (20, N'Sci Fi & Fantasy');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (21, N'Drama');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (22, N'Comedy');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (23, N'Alternative');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (24, N'Classical');
INSERT INTO `Genre` (`GenreId`, `Name`) VALUES (25, N'Opera');
INSERT INTO `MediaType` (`MediaTypeId`, `Name`) VALUES (1, N'MPEG audio file');
INSERT INTO `MediaType` (`MediaTypeId`, `Name`) VALUES (2, N'Protected AAC audio file');
INSERT INTO `MediaType` (`MediaTypeId`, `Name`) VALUES (3, N'Protected MPEG-4 video file');
INSERT INTO `MediaType` (`MediaTypeId`, `Name`) VALUES (4, N'Purchased AAC audio file');
INSERT INTO `MediaType` (`MediaTypeId`, `Name`) VALUES (5, N'AAC audio file');
INSERT INTO `Artist` (`ArtistId`, `Name`) VALUES (1, N'AC/DC');
INSERT INTO `Artist` (`ArtistId`, `Name`) VALUES (2, N'Accept');
INSERT INTO `Artist` (`ArtistId`, `Name`) VALUES (3, N'Aerosmith');
INSERT INTO `Artist` (`ArtistId`, `Name`) VALUES (4, N'Alanis Morissette');


AD. 2. Przejście w terminalu do folderu z plikiem


    Najszybciej to zrobić, klikając ppm na folder w którym jest plik -> Otwórz w terminalu.



AD. 3. Odpalenie MySQLa


    Do tego jest komenda: mysql -u root -p. Po wpisaniu hasła, wpisujemy: create database [nazwa bazy]a następnie use [nazwa bazy].


AD. 4. Komenda dodająca plik...

    ... to \. [nazwa pliku] i wszystko :)


AD. PS Jeśli chcemy stworzyć bazę danych...

    ... to pomoże komenda:

mysql –u[user name] –p[password] [database name] > [file.sql]

plik będzie w miejscu, w którym się znajdujemy.



    To tyle ode mnie na dziś, zapraszam Cię do dzielenia się swoimi wrażeniami z tego posta, lub np. swoim dzisiejszym odkryciem  np. w komentarzu :)

Komentarze

Popularne posty z tego bloga

IntelliJ: zmiana rozmiaru czcionki scrollem

ThunderBird: jak zrobić professional stopkę