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:
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 :)
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:
- Firstly, musi być przygotowany odpowiednio plik.
- Secondly, trzeba przejść w terminalu do folderu gdzie jest plik.
- Thirdly, należy odpalić MySQLa i przejść do bazy w jakiej chcemy dodać tabele z pliku.
- 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
Prześlij komentarz