• 表的导入导出


    一、表的导出

    有时需要将MySQL数据库中的数据导出到外部存储文件中。MySQL可以导出SQL文件,XML文件,HTML文件。这些导出的文件也可以导入到mysql数据库中

    1、使用select...into  outfile filename 导出文本文件,NULL数据导出的结果时 N

    select ..into outfile filename
    --optinons 选项
    filelds terminated by 'value'                  # 设置字段间的分隔符,默认是制表符	
    fields [optionally] enclosed by 'value'    # 设置字段的包围字符,用了optionally则只包围char和varchar。如使用双引号将导出的数据包围
    fields escaped by 'value'                      # 设置转移字符,默认 
    lines starting by 'value'                       # 设置每行数据的开头字符,默认无
    line terminated by 'valye'                    # 设置每行数据的结束字符,默认
      

    2、导出报错:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

          该错误是不允许导出数据。show variables like '%secure%' 查看值为NULL。不允许导出数据。修改配置文件my.cnf。添加secure_file_priv = "/" 。代表可以导出到任意目录。

          如果指定路径,则只允许在指定的路径下导出数据。。在写导出sql时没有指定绝对路径,会导出到data目录中的 ‘dbname’ 的文件夹下

    select * from student into outfile '/home/backup/student.txt';

    3、使用mysqldump命令导出文本文件

    该工具不仅可以导出insert update等语句,还可以导出文件文件。mysqldump导出一个包含表结构的filename.sql文件和一个包含表数据的filename.txt文件,语法格式如下:

    mysqldump -T path -u root -p dbname [tables] options
    --options选项
    --fields-terminated-by=value   # 设置分隔符
    --filelds-enclosed-by=value     # 设置字段的包围符
    --fields-optionally-enclosed-by=value  # 设置单个字段分隔符,只用于char varchar字段
    --fields-escaped-by=value      # 设置转移字符
    --line-terminated-by=value     # 设置每行数据的结尾符

    例如:mysqldump -T /home/unload/ -u root -p txt student

    4、使用mysql导出文本文件

     如果mysql时单独的数据库服务器,用户在一个客户端上操作,想直接将导出的数据结果存放到客户端上。就可以通过mysql -e命令来操作

    mysql -u root -p -e "select * from oldboy.student" > /home/unload/student.txt
    mysql -u root -p --html -e "select * from oldboy.student" > /home/unload/student.html  # 导入到html文件  --xml导入到xml文件

    二、表的导入

    mysql允许将数据导出为外部文件,也允许将外部文件导入到数据库。mysql提供了一些导入数据的工具。有load data语句,source命令,mysql命令。

    1、使用load data infile方式导入文件,语法如下

    load data infile filename.txt into table tabname [ignore numberlines]
    [ignore numberlines] 表示可以忽略文件开始处的行数
    --optinons 选项
    filelds terminated by 'value'                  # 设置字段间的分隔符,默认是制表符	
    fields [optionally] enclosed by 'value'    # 设置字段的包围字符,用了optionally则只包围char和varchar。如使用双引号将导出的数据包围
    fields escaped by 'value'                      # 设置转移字符,默认 
    lines starting by 'value'                       # 设置每行数据的开头字符,默认无
    line terminated by 'valye'                    # 设置每行数据的结束字符,默认
      

    例如:load data infile /home/unload/student.txt into table student;

    2、使用mysqlimport命令导入文本文件,语法如下.。导入时文件名作为表名,但是表必须事先存在

    mysqlimport -u root -p dbname filename.txt options
    --options选项
    --fields-terminated-by=value   # 设置分隔符
    --filelds-enclosed-by=value     # 设置字段的包围符
    --fields-optionally-enclosed-by=value  # 设置单个字段分隔符,只用于char varchar字段
    --fields-escaped-by=value      # 设置转移字符
    --line-terminated-by=value     # 设置每行数据的结尾符
    --ignore-lines=n #忽略前n行
  • 相关阅读:
    Oracle传统基本体系结构初步介绍(4) 老猫
    oracle 嵌套表 老猫
    Oracle传统基本体系结构初步介绍(2) 老猫
    Oracle传统基本体系结构初步介绍(3) 老猫
    Oracle分析函数参考手册三 老猫
    Oracle传统基本体系结构初步介绍(1) 老猫
    Oracle临时表用法的经验心得 老猫
    博客美化&typora写博客攻略(博客园版) WHU
    探索式测试随笔 wing
    接口测试随笔 wing
  • 原文地址:https://www.cnblogs.com/jkin/p/10150831.html
Copyright © 2020-2023  润新知