Sunteți pe pagina 1din 3

IMPORTAR INFORMACIÓN A MYSQL

Hay que tener en cuenta que si el gestor de bases de


datos tiene activada la opción --secure-file-priv,
el archivo .sql se debe guardar en una carpeta
específica, cuya ubicación se conoce con el comando
SHOW VARIABLES LIKE "secure_file_priv";.

mysql> SHOW VARIABLES LIKE "secure_file_priv";


+------------------+-----------------------------------------------
-+
| Variable_name | Value
|
+------------------+-----------------------------------------------
-+
| secure_file_priv | C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\
El| comando muestras que los archivos .sql se deben guardar en la carpeta
+------------------+-----------------------------------------------
Uploads
-+
para poder ser leídos por el gestor de bases de datos.
1 row in set, 1 warning (0.07 sec)
1. Introducir registros desde un
archivo .sql a una tabla de la base de
datos actual
El comando LOAD DATA INFILE "archivo.sql"
INTO TABLE table IGNORE n LINES; permite
agregar registros de un archivo .sql a una tabla
específica de la base de datos actual.

El archivo puede tener una cabecera (la cual se ignora).


Por defecto, cada registro debe ir en una línea y cada
campo debe estar separado por tabulación.

/* archivo data.sql */
id nombre apellido genero fecha_nacimiento
4 Pedro Diaz masculino 1985-07-13
5 Felipe Ruiz masculino 1996-02-18
6 Guido Bernal masculino 1991-12-23
7 Natalia Quiceno femenino 1998-01-01
8 Manuela Beltran femenino 2000-06-17
mysql> LOAD DATA INFILE "C:/ProgramData/MySQL/MySQL
Server 8.0/Uploads/data.sql" INTO TABLE personalData
IGNORE 1 LINES;
Query OK, 5 rows affected (0.20 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0

mysql> SELECT * FROM personalData;


+----+---------+----------+-----------+--------------
----+
| id | nombre | apellido | genero |
fecha_nacimiento |
+----+---------+----------+-----------+--------------
----+
| 1 | Alex | Gil | masculino | 1981-10-02
|
| 2 | Diana | Valencia | femenino | 1990-01-31
|
| 3 | Susana | Diaz | femenino | 1980-07-06
|
El| archivo data.sql agrega
4 | Pedro | Diazcinco registros nuevos a |la 1985-07-13
| masculino tabla personalData
|
dentro de la base de datos actual.
| 5 | Felipe | Ruiz | masculino | 1996-02-18
|
| 6 | Guido | Bernal
También es posible indicar| conmasculino | 1991-12-23
qué carácter terminan
|
los
| campos.
7 | Natalia Por| ejemplo,
Quiceno un tabla de EXCEL
| femenino se puede
| 1998-01-01
|
convertir
| 8 | Manuela a un archivo
| Beltran.csv | femenino | 2000-06-17
|
/*
| archivo
9 | Ana data.csv| */
Beltran | femenino | 1997-09-15
|
id,nombre,apellido,genero,fecha_nacimiento
+----+---------+----------+-----------+--------------
4,Pedro,Diaz,masculino,1985-07-13
----+
5,Felipe,Ruiz,masculino,1996-02-18
6,Guido,Bernal,masculino,1991-12-23
9 rows in set (0.00 sec)
7,Natalia,Quiceno,femenino,1998-01-01
8,Manuela,Beltran,femenino,2000-06-17
mysql> LOAD DATA INFILE "C:/ProgramData/MySQL/MySQL
Server 8.0/Uploads/data.csv" INTO TABLE personalData
FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n"
IGNORE 1 LINES;
Query OK, 5 rows affected (0.20 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0

mysql> SELECT * FROM personalData;


+----+---------+----------+-----------+--------------
----+
| id | nombre | apellido | genero |
fecha_nacimiento |
+----+---------+----------+-----------+--------------
----+
| 1 | Alex | Gil | masculino | 1981-10-02
|
| 2 | Diana | Valencia | femenino | 1990-01-31
|
| 3 | Susana | Diaz | femenino | 1980-07-06
El| archivo data.csv agrega cinco registros nuevos a la tabla personalData
| 4 de
dentro | laPedro | Diaz
base de datos actual. En|este
masculino | 1985-07-13
caso se especifica como termina
|
cada campo y cada
| 5 | Felipe | Ruiz línea. Windows usa
| masculino | un
\r\n para marcar salto de línea, en
1996-02-18
cambio
| Linux y Mac utilizan solo \n.
| 6 | Guido | Bernal | masculino | 1991-12-23
|
2.
| 7Introducir
| Natalia | Quiceno registros | femenino desde un
| 1998-01-01
|
archivo .sql a una base
| 8 | Manuela | Beltran | femenino | 2000-06-17
de datos
utilizando
| la terminal
| 9 | Ana | Beltran | femenino | 1997-09-15
En
| la terminal se ubica la carpeta donde está
+----+---------+----------+-----------+--------------
mysql.exe. Luego se utiliza el comando mysql -u
----+
usuario
9 rows in -p -D baseDatos
set (0.00 sec) < archivo.sql para
agregar registros a la base de datos especificada.

/* archivo data.sql */

INSERT INTO authors (name, nationality) VALUES ('Andres Caicedo',


'colombiano'), ('Thomas Mann', 'aleman'), ('Herman Melville',
'estadounidense');

INSERT INTO books (author_id, title) VALUES (6, 'Moby-Dick'), (4, 'El
Elegido'), (5, '¡Que viva la musica!');
/* terminal símbolo del sistema */

C:\Users\Andrés F. Ruiz>cd "C:\Program


Files\MySQL\MySQL Server 8.0\bin\"

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u


root -p -D libreria < "C:\ProgramData\MySQL\MySQL
Server 8.0\Uploads\data.sql"
Enter password: ************
El archivo data.sql contiene las instrucciones INSERT para agregar registros
a las tablas de una base de datos ya existente.

3. Agregar una nueva base de datos


desde un archivo .sql utilizando la
terminal
Si se tiene un archivo .sql con las instrucciones
necesarias para crear una base de datos con sus tablas
y registros asociados. Se puede agregar dicha base de
datos al gestor MySQL utilizando el símbolo del sistema.

En la terminal se ubica la carpeta dónde está


mysql.exe, después se usa el comando mysql -u
root -p < archivo.sql para insertar la base de
datos en el gestor.
/* archivo libreria.sql */

DROP DATABASE IF EXISTS libreria;


CREATE DATABASE libreria;
USE libreria;

CREATE TABLE authors (


author_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
nationality VARCHAR(15) DEFAULT 'NN',
PRIMARY KEY (author_id));
INSERT INTO authors (name, nationality) VALUES ('Juan Rulfo', 'mexicano'),
('Haruki Murakami', 'japones'), ('Isabel Allende', 'chilena');

CREATE TABLE books (


book_id INT NOT NULL AUTO_INCREMENT,
author_id INT NOT NULL,
title VARCHAR(100) NOT NULL,
PRIMARY KEY (book_id));
INSERT INTO books (author_id, title) VALUES (2, '1Q84'), (1, 'Pedro
/* terminal
Paramo'), símbolo
(3, 'Eva Luna'); del sistema */

C:\Users\Andrés F. Ruiz>cd "C:\Program


Files\MySQL\MySQL Server 8.0\bin\"

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u


root -p < "C:\ProgramData\MySQL\MySQL Server
8.0\Uploads\libre ria.sql"
Enter password: ************
El archivo libreria.sql contiene todas las instrucciones para crear la base de
datos con las tablas y sus registros. En la terminal se ubica la carpeta donde
está mysql.exe y se ejecuta el comando para agregar el archivo a al gestor de
bases de datos. Ahora ya se puede usar la base de datos desde MySQL.

EXPORTAR DATOS DESDE MYSQL


Utilizando el símbolo del sistema es posible exportar la
estructura y registros de una base de datos a un archivo
de texto. Esto sirve para realizar respaldos (backups).

Primero se debe ubicar la terminal en la carpeta donde


está mysql.exe. El comando mysqldump -u usuario
-p database > archivo.txt exporta la estructura y
los registros de la base de datos. En cambio, mysqldump
-u usuario -p -d database > archivo.txt solo
exporta la estructura de la base de datos (sin los
registros).

/* terminal símbolo del sistema */


C:\Users\Andrés F. Ruiz>cd "C:\Program
Files\MySQL\MySQL Server 8.0\bin\"

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqldump


-u root -p ventas >
"C:\Users\anferubu\Desktop\BDventas.txt"
Con este comando
Enter se exporta
password: la estructura y los registros de la base de datos
************
ventas al archivo BDventas.txt.

/* terminal símbolo del sistema */


C:\Users\Andrés F. Ruiz>cd "C:\Program
Files\MySQL\MySQL Server 8.0\bin\"

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqldump


-u root -p -d ventas >
"C:\Users\anferubu\Desktop\ventas.sql"
Con este password:
Enter comando se exporta únicamente la estructura de la base de datos
************
ventas al archivo ventas.sql. La estructura de la base de datos se puede
versionar, pero los datos (registros) solo se respaldan.

S-ar putea să vă placă și