旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

MySQL怎样导入格式化数据【MySQL教程】,mysql,导入数据

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:62评论:0


导读:在MySQL中怎样导入花样化数据?本篇文章就来给人人引见MySQL导入花样化数据的要领,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。在有些场景下,我们须要...
在MySQL中怎样导入花样化数据?本篇文章就来给人人引见MySQL导入花样化数据的要领,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

在有些场景下,我们须要把一批特定花样的数据导入到mysql数据库中,做法有许多,运用shell剧本、python都能够,本日来引见两个更便利的敕令,mysqlimportload data

mysqlimport

运用要领

mysqlimport [options] db_name textfile1 [textfile2 ...]
# db_name 对应数据库称号
# textfile 文件名,对应要插进去的数据库表名
# 比方:mysqlimport a8 campaign.txt 会把campaign.txt中的数据插进去到a8数据库中的campaign表

注重:campaign.txt文件必需在/usr/local/mysql/var/a8/目次下,即数据库地点目次

假如不在对应的目次下,会返回以下毛病:

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

经常使用选项

--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

运用要领

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)]

申明:

load data infile语句是将文本数据导入到数据表中。运用这个敕令之前,mysqld历程(效劳)必需已经在运转。运用前请确保有文件的读取权限

1、假如你指定关键词low_priority,那末MySQL将会比及没有其他人读这个表的时刻,才把插进去数据。能够运用以下的敕令:

mysql> load data low_priority infile "/home/root/data.sql" into table campaign;

2、假如指定local关键词,则表明从客户主机读文件。假如local没指定,文件必需位于效劳器上。

3、replace和ignore关键词掌握对现有的唯一键纪录的反复的处置惩罚。假如你指定replace,新即将替代有雷同的唯一键值的现有行。假如你指定ignore,跳过有唯一键的现有行的反复行的输入。假如你不指定任何一个选项,当找到反复键时,涌现一个毛病,而且文本文件的余下部份被疏忽。比方:

mysql> load data low_priority infile "/home/root/data.sql" replace into table campaign;

4、分开符

1)fields关键字指定了文件字段的支解花样,假如用到这个关键字,MySQL理会器愿望看到至少有下面的一个选项:

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 '"';

2)lines 关键字指定了每条纪录的分开符默以为'n'即为换行符
假如两个字段都指定了那fields必需在lines之前。假如不指定fields关键字缺省值和如许写是雷同的:fields terminated by'\t' enclosed by ’ '' ‘ escaped by'\\'
假如你不指定一个lines子句,缺省值和如许写是雷同的: lines terminated by'\n'
比方:

mysql> load data infile "/root/load.txt" replace into table test fields terminated by ',' lines terminated by '/n';

5、load data infile 能够按指定的列把文件导入到数据库中。 当我们要把数据的一部份内容导入的时刻,,须要到场一些栏目(列/字段/field)到MySQL数据库中,以顺应一些分外的须要。比方说,我们要从Access数据库升级到MySQL数据库的时刻
下面的例子显现了怎样向指定的栏目(field)中导入数据:

mysql> load data infile "/home/root/campaign.txt" into table campaign(id, name, creator);

6、当在效劳器主机上寻觅文件时,效劳器运用以下划定规矩:

● 假如给出一个相对路径名,效劳器运用该路径名。

● 假如给出一个有一个或多个前置部件的相对路径名,效劳器相对效劳器的数据目次搜刮文件。

● 假如给出一个没有前置部件的一个文件名,效劳器在当前数据库的数据库目次寻觅文件。

比方: /campaign.txt 是从效劳器的数据目次读取,而作为 campaign.txt 是从当前数据库的数据库目次下读取。

相干视频教程引荐:《MySQL教程》

以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!

以上就是MySQL怎样导入花样化数据的细致内容,更多请关注ki4网别的相干文章!

标签:mysql导入数据


欢迎 发表评论: