MySQL数据导入导出的示例分析

62次阅读
没有评论

共计 1744 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要介绍 MySQL 数据导入导出的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1).mysql import 的语法介绍:
mysqlimport 位于 mysql/bin 目录中,是 mysql 的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可供选择。这个工具把一个文本文件(text file)导入到你指定的和表中。比方说我们要从文件 Customers.txt 中把数据导入到数据库 Meet_A_Geek 中的表 Custermers 中:
import Meet_A_Geek Customers.txt
注意:这里 Customers.txt 是我们要导入数据的文本文件,而 Meet_A_Geek 是我们要操作的数据库,数据库中的表名是 Customers,这里文本文件的数据格式必须与 Customers 表中的记录格式一致,否则 mysqlimport 命令将会出错。
其中表的名字是导入文件的第一个句号(.)前面文件字符串,另外一个例子:
mysqlimport Meet_A_Geek Cus.to.mers.txt
那么我们将把文件中的内容导入到数据库 Meet_A_Geek 中的 Cus 表中。
上面的例子中,都只用到两个参数,并没有用到更多的选项,下面介绍 mysqlimport 的选项

2).mysqlimport 的常用选项介绍:
  选项   功能
-d or –delete  新数据导入数据表中之前删除数据数据表中的所有信息
-f or –force  不管是否遇到错误,mysqlimport 将强制继续插入数据
-i or –ignore mysqlimport 跳过或者忽略那些有相同唯一
  关键字的行,导入文件中的数据将被忽略。
-l or -lock-tables  数据被插入之前锁住表,这样就防止了,
  你在更新数据库时,用户的查询和更新受到影响。
-r or -replace  这个选项与-i 选项的作用相反;此选项将替代
  表中有相同唯一关键字的记录。
–fields-enclosed- by= char
  指定文本文件中数据的记录时以什么括起的,很多情况下
  数据以双引号括起。默认的情况下数据是没有被字符括起的。
–fields-terminated- by=char
  指定各个数据的值之间的分隔符,在句号分隔的文件中,
  分隔符是句号。您可以用此选项指定数据之间的分隔符。
  默认的分隔符是跳格符(Tab)
–lines-terminated- by=str
  此选项指定文本文件中行与行之间数据的分隔字符串
  或者字符。默认的情况下 mysqlimport 以 newline 为行分隔符。
  您可以选择用一个字符串来替代一个单个的字符:
  一个新行或者一个回车。
mysqlimport 命令常用的选项还有 -v 显示版本(version),-p 提示输入密码(password)等。

3). 例子:导入一个以逗号为分隔符的文件
文件中行的记录格式是这样的:
1 , ORD89876 , 1 Dozen Roses , 19991226
我们的任务是要把这个文件里面的数据导入到数据库 Meet_A_Geek 中的表格 Orders 中,
我们使用这个命令:
bin/mysqlimport –prl –fields-enclosed-by= –fields-terminated-by=, Meet_A_Geek Orders.txt
这个命令可能看起来很不爽,不过当你熟悉了之后,这是非常简单的。第一部分,bin/mysqlimport , 告诉操作系统你要运行的命令是 mysql/bin 目录下的 mysqlimport,选项 p 是要求输入密码,这样就要求你在改动数据库之前输入密码,操作起来会更安全。我们用了 r 选项是因为我们想要把表中的唯一关键字与文件记录中有重复唯一关键字的记录替换成文件中的数据。我们表单中的数据不是最新的,需要用文件中的数据去更新,因而就用 r 这个选项,替代数据库中已经有的记录。l 选项的作用是在我们插入数据的时候锁住表,这样就阻止了用户在我们更新表的时候对表进行查询或者更改的操作。

以上是“MySQL 数据导入导出的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计1744字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)