MySQL 4种导入数据的方法
1、mysql命令导入
使用mysql命令导入语法格式为:
mysql-u用户名-p密码<要导入的数据库数据(runoob.sql)
实例:
#mysql-uroot-p123456以上命令将将备份的整个数据库runoob.sql导入。
2、source命令导入
source命令导入数据库需要先登录到数库终端:
mysql>createdatabaseabc;#创建数据库 mysql>useabc;#使用已创建的数据库 mysql>setnamesutf8;#设置编码 mysql>source/home/abc/abc.sql#导入备份数据库3、使用LOADDATA导入数据
MySQL中提供了LOADDATAINFILE语句来插入数据。以下实例中将从当前目录中读取文件dump.txt,将该文件中的数据插入到当前数据库的mytbl表中。
mysql>LOADDATALOCALINFILE'dump.txt'INTOTABLEmytbl;如果指定LOCAL关键词,则表明从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取文件。
你能明确地在LOADDATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。
两个命令的FIELDS和LINES子句的语法是一样的。两个子句都是可选的,但是如果两个同时被指定,FIELDS子句必须出现在LINES子句之前。
如果用户指定一个FIELDS子句,它的子句(TERMINATEDBY、[OPTIONALLY]ENCLOSEDBY和ESCAPEDBY)也是可选的,不过,用户必须至少指定它们中的一个。
mysql>LOADDATALOCALINFILE'dump.txt'INTOTABLEmytbl ->FIELDSTERMINATEDBY':' ->LINESTERMINATEDBY'\r\n';LOADDATA默认情况下是按照数据文件中列的顺序插入数据的,如果数据文件中的列与插入表中的列不一致,则需要指定列的顺序。
如,在数据文件中的列顺序是a,b,c,但在插入表的列顺序为b,c,a,则数据导入语法如下:
mysql>LOADDATALOCALINFILE'dump.txt' ->INTOTABLEmytbl(b,c,a);4、使用mysqlimport导入数据
mysqlimport客户端提供了LOADDATAINFILEQL语句的一个命令行接口。mysqlimport的大多数选项直接对应LOADDATAINFILE子句。
从文件dump.txt中将数据导入到mytbl数据表中,可以使用以下命令:
$mysqlimport-uroot-p--localmytbldump.txt password*****mysqlimport命令可以指定选项来设置指定格式,命令语句格式如下:
$mysqlimport-uroot-p--local--fields-terminated-by=":"\ --lines-terminated-by="\r\n"mytbldump.txt password*****mysqlimport语句中使用--columns选项来设置列的顺序:
$mysqlimport-uroot-p--local--columns=b,c,a\ mytbldump.txt password*****mysqlimport的常用选项介绍
选项 功能 -dor--delete 新数据导入数据表中之前删除数据数据表中的所有信息 -for--force 不管是否遇到错误,mysqlimport将强制继续插入数据 -ior--ignore mysqlimport跳过或者忽略那些有相同唯一关键字的行,导入文件中的数据将被忽略。 -lor-lock-tables 数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。 -ror-replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。 --fields-enclosed-by=char 指定文本文件中数据的记录时以什么括起的,很多情况下数据以双引号括起。默认的情况下数据是没有被字符括起的。 --fields-terminated-by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。默认的分隔符是跳格符(Tab) --lines-terminated-by=str 此选项指定文本文件中行与行之间数据的分隔字符串或者字符。默认的情况下mysqlimport以newline为行分隔符。您可以选择用一个字符串来替代一个单个的字符:一个新行或者一个回车。 以上就是MySQL导入数据的方法的详细内容,更多关于MySQL导入数据的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。