English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En esta sección, te presentamos varios comandos simples de importación de datos de 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
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
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);
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 *****
选项 | 功能 |
---|---|
-d or --delete | 在新数据导入数据表之前删除数据表中的所有信息 |
-f or --force | 无论是否遇到错误,mysqlimport 将强制继续插入数据 |
-i or --ignore | mysqlimport 跳过或忽略那些有相同唯一 行中的关键字,导入文件中的数据将被忽略。 |
-l o -lock-tablas | El 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 -replace | Esta 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= char | Especificar 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=char | Especificar 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=str | Esta 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.