English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Importación de datos MySQL

En esta sección, te presentamos varios comandos simples de importación de datos de MySQL.

1Importación de comandos mysql

El formato de la sintaxis de la orden mysql para importar es:

mysql -Nombre de usuario u    -Contraseña p < < Datos de la base de datos a importar (w3codebox.sql)

Ejemplo:

# mysql -uroot -p123456 <3codebox.sql

Las siguientes órdenes importarán toda la base de datos respaldada3Importación de codebox.sql

2Importación de comandos source

Para importar una base de datos utilizando el comando source, primero debes ingresar al terminal de la base de datos:

mysql> create database abc; # Creación de la base de datos
mysql> use abc; # Uso de la base de datos ya creada 
mysql> set names utf8; # Configuración de la codificación
mysql> source /home/abc/abc.sql # Importación de base de datos de respaldo

3Importación de datos utilizando LOAD DATA

MySQL proporciona la orden LOAD DATA INFILE para insertar datos. En el siguiente ejemplo, se leerá el archivo dump.txt desde el directorio actual y se insertarán los datos del archivo en la tabla mytbl de la base de datos actual.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

 Si se especifica la palabra clave LOCAL, indica que se lee el archivo desde el host del cliente según la ruta. Si no se especifica, el archivo se lee en el servidor según la ruta.

Puedes especificar claramente el separador de valores de columnas y el marcador de final de línea en la orden LOAD DATA, pero el marcador predeterminado es el símbolo de posición y el carácter de nueva línea.

La sintaxis de las cláusulas FIELDS y LINES de las dos órdenes es la misma. Ambas cláusulas son opcionales, pero si se especifican ambas, la cláusula FIELDS debe aparecer antes que la cláusula LINES.

如果用户指定一个 FIELDS 子句,它的子句(TERMINATED BY、[OPTIONALLY] ENCLOSED BY 和 ESCAPED BY)也是可选的,不过,用户必须至少指定它们中的一个。

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
  -> FIELDS TERMINATED BY ':'
  -> LINES TERMINATED BY '\r\n';

LOAD DATA 默认情况下是按照数据文件中列的顺序插入数据的,如果数据文件中的列与插入表中的列不一致,则需要指定列的顺序。

例如,在数据文件中的列顺序是 a,b,c,但在插入表的列顺序为b,c,a,则数据导入语法如下:

mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
    -> INTO TABLE mytbl (b, c, a);

4、使用 mysqlimport 导入数据

mysqlimport 客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口。mysqlimport 的大多数选项直接对应 LOAD DATA INFILE 子句。

从文件 dump.txt 中将数据导入到 mytbl 数据表中,可以使用以下命令:

$ mysqlimport -u root -p --local mytbl dump.txt
password *****

mysqlimport 命令可以指定选项来设置指定格式,命令语句格式如下:

$ mysqlimport -u root -p --local --fields-terminated-by=":" \
   --lines-terminated-by="\r\n"  mytbl dump.txt
password *****

在 mysqlimport 语句中使用 --使用 columns 选项来设置列的顺序:

$ mysqlimport -u root -p --local --columns=b,c,a \
    mytbl dump.txt
password *****

mysqlimport 的常用选项介绍

选项功能
-d or --delete在新数据导入数据表之前删除数据表中的所有信息
-f or --force无论是否遇到错误,mysqlimport 将强制继续插入数据
-i or --ignoremysqlimport 跳过或忽略那些有相同唯一              行中的关键字,导入文件中的数据将被忽略。
-l o -lock-tablasEl tablero se bloquea antes de insertar los datos, lo que previene,                Cuando actualiza la base de datos, las consultas y actualizaciones de los usuarios se ven afectadas.
-r o -replaceEsta opción es opuesta a la opción -i; esta opción reemplaza                           Existen registros con la misma clave única en la tabla.
--fields-enclosed- by= charEspecificar qué encierra los registros de datos en el archivo de texto, en muchos casos                 Los datos se encierran en comillas dobles. Por defecto, los datos no están encerrados en caracteres.
--fields-terminated- by=charEspecificar el separador entre los valores de los datos, en archivos separados por puntos,                 El separador es el punto. Puede especificar el separador entre datos con esta opción.                 El separador por defecto es el tabulador (Tab). El separador puede ser especificado con esta opción.
--lines-terminated- by=strEsta opción especifica la cadena de separación entre datos en el archivo de texto                o caracteres. Por defecto, mysqlimport usa newline como separador de línea.                Puede elegir usar una cadena para reemplazar un solo carácter:                 Una nueva línea o un retorno de carro.

Opciones comunes del comando mysqlimport incluyen -v Mostrar versión (versión), -p Sugerir la entrada de contraseña (contraseña) y otros.