美文网首页
Mysql与csv文件的导入导出

Mysql与csv文件的导入导出

作者: 躺在稻田里的小白菜 | 来源:发表于2018-04-26 18:52 被阅读0次

    一.文件导入到数据库中

    MySQL 提供了load data infile语句来将文件中的数据插入到数据库中,这里的文件可以是csv也可是其他格式。

    mysql> load data local infile '..../test.csv' into table mytable   fields terminated by  ','  lines terminated by '\n';
    
    • 如果指定LOCAL关键词,则表明从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取文件。
    • 可以使用 fields明确地在语句中指出列的分隔符(默认定位符),使用 lines指出行分隔符(默认是换行符)。
    • 两个命令的fields和 lines子句的语法是一样的。两个子句都是可选的,但是如果两个同时被指定,fields 子句必须出现在lines子句之前。
    • 如果用户指定一个 fields 子句,它的子句 (terminated by、enclosed by 和 escaped by) 也是可选的,不过,用户必须至少指定它们中的一个。terminated by描述字段的分隔符(默认'\t'),enclosed by描述的是字段的括起字符,escaped by描述的转义字符(默认'\ ') 。
    • 文件test.csv中的列的数目,必须与要导入的表mytable的列数目一直。默认是按文件中列的存储顺序插入表中,如果要指定顺序,则可以在表名后面注明mytable(col1,col2,……)
    值得注意的问题:
    1. Mysql中的目录分隔符是 ' / ',而不是 ' \ '。
    2. csv文件是以英文逗号 ' , '作为列分隔符,换行符' \n '作为行分隔符。
    3. Mysql在5.7版本以后,由于安全问题,必须从指定文件夹secure_file_priv导入数据,所有我们要把文件拷贝到指定文件夹中。那么如何查找这个指定文件夹呢?这里使用
    mysql> show variables like '%secure%';
    
    image.png

    找到文件夹后,将文件拷贝进去,再导入即可。

    二.从数据库中导出到文件

    从数据库中导出到文件比较简单,要注意的是只能导出到mysql的secure_file_priv文件夹。

    mysql> select  * from mytable into outfile '..../test.csv ' fields terminated by ',' lines terminated by '\n';
    

    这个命令可以分成两部分,前半部分是sql语句,select from where从数据库中筛选出要导出的数据;第二部分是存入文件。

    相关文章

      网友评论

          本文标题:Mysql与csv文件的导入导出

          本文链接:https://www.haomeiwen.com/subject/moaplftx.html