How to import formatted data in MySQL? This article will introduce to you the method of importing formatted data into MySQL. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
In some scenarios, we need to import a batch of data in a specific format into the mysql database. There are many ways to do it. You can use shell scripts or python. Today we will introduce two more convenient commands, mysqlimport
and load data
mysqlimport
Usage method
mysqlimport [options] db_name textfile1 [textfile2 ...] # db_name 对应数据库名称 # textfile 文件名,对应要插入的数据库表名 # 比如:mysqlimport a8 campaign.txt 会把campaign.txt中的数据插入到a8数据库中的campaign表
Note: The campaign.txt file must be in the /usr/local/mysql/var/a8/
directory, which is the directory where the database is located.
If it is not in the corresponding directory, the following error will be returned:
mysqlimport -uroot -p123456 -hlocalhost -P3306 a8 campaign.txt /usr/local/mysql/bin/mysqlimport: Error: File '/usr/local/mysql/var/a8/campaign.txt' not found (Errcode: 2), when using table: campaign
Common options
--columns=id,name,creator... # 对应的数据表列名,定义被导入文件中的每一列对应的数据库表列名 --fields-terminated-by= # 文件字段以什么分隔,参数为字符串,默认为\t --fields-enclosed-by= # 数据域用什么符号扩起来,默认为空,一般可以是双引号、括号等 --fields-optionally-enclosed-by= # 数据域可以用什么符号括起来,因为为只有部分数据用这些符号括起来 --fields-escaped-by= # 转义字符,参数为字符,默认为\ --lines-terminated-by= # 数据行以什么结束,参数为字符串,windows默认为\r\n --user=user_name 或 -u user_name --password=[password] 或 -p[password] --host=host_name 或 -h hostname --port=port_num,或 -P port_num # 定义用户名、密码、mysql服务器地址和用于连接的TCP/IP端口号,默认为mysql默认端口3306 --ignore-lines=n # 忽视数据文件的前n行,因为很多数据文件前面有表头 --delete -D # 在把文件中的数据插入前删除表中原先的数据 --local -L # 指定从客户端电脑读入数据文件,否则从服务器电脑读取 --lock-tables -l # 处理文本文件前锁定所有表以便写入,确保所有表在服务器上保持同步 --protocol={TCP | SOCKET | PIPE | MEMORY} 使用的连接协议 --force -f #忽视错误。例如,如果某个文本文件的表不存在,继续处理其它文件,不使用--force,如果表不存在则mysqlimport退出 --compress -C # 压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩) --silent,-s # 沉默模式,只有出现错误时才输出 --socket=path,-S path # 当连接localhost时使用的套接字文件(为默认主机) --verbose,-v # 冗长模式。打印出程序操作的详细信息。 --version,-V # 显示版本信息并退出。
load data
Usage method
mysql> load data [low_priority] [local] infile 'file_name txt' [replace | ignore] into table tbl_name [fields] [terminated by '\t'] [OPTIONALLY] enclosed by ''] [escaped by '\' ]] [lines terminated by 'n'] [ignore number lines] [(id,name,creator)]
Instructions:
## The #load data infile statement imports text data into the data table. Before using this command, the mysqld process (service) must be running. Please make sure you have read permission on the file before using it1. If you specify the keyword low_priority, MySQL will wait until no one else reads the table before inserting data. You can use the following command:mysql> load data low_priority infile "/home/root/data.sql" into table campaign;
mysql> load data low_priority infile "/home/root/data.sql" replace into table campaign;
terminated by:分隔符,字段是以什么字符作为分隔符 enclosed by:字段括起字符,例:` "周丽","10","学习很好" ` 这样的一行,就需要这么写 ` ENCLOSED BY '"' ` escaped by:转义字符 lines terminated by:描述字段的分隔符,默认情况下是tab字符(\t) ignore number lines:用来忽略导入文件的开始的行。例如:number=1,则忽略导入文件的第一行数据。
mysql> load data infile "/home/root/data.sql" replace into table campaign fields terminated by',' enclosed by '"';
If both fields are specified The fields must come before lines. If you do not specify the fields keyword, the default value is the same as writing:
fields terminated by'\t' enclosed by ' '' ' escaped by'\\'If you do not specify a lines Clause, the default value is the same as this:
lines terminated by'\n'
For example:
mysql> load data infile "/root/load.txt" replace into table test fields terminated by ',' lines terminated by '/n';
The following example shows how to import data into a specified column (field):
mysql> load data infile "/home/root/campaign.txt" into table campaign(id, name, creator);
MySQL Tutorial"
The above is the entire content of this article, I hope it will be helpful to everyone's learning. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !The above is the detailed content of How to import formatted data into MySQL. For more information, please follow other related articles on the PHP Chinese website!