zoukankan      html  css  js  c++  java
  • mysql批量导入已经格式好的文本数据

     
    mysql批量导入已经格式好的文本数据
    语法:
    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
        [REPLACE | IGNORE]
        INTO TABLE tbl_name
        [CHARACTER SET charset_name]
        [FIELDS
            [TERMINATED BY 'string']
            [[OPTIONALLY] ENCLOSED BY 'char']
            [ESCAPED BY 'char']
        ]
        [LINES
            [STARTING BY 'string']
            [TERMINATED BY 'string']
        ]
        [IGNORE number LINES]
        [(col_name_or_user_var,...)]
        [SET col_name = expr,...]
     
    使用如下命令:
    LOAD DATA LOCAL INFILE 'C://stu.txt' INTO TABLE stu;
    因为这是一条SQL语句,你同样可以在你的JAVA程序序中用:
    st.execute(“LOAD DATA LOCAL INFILE 'C://stu.txt' INTO TABLE stu”);
    (st表示Statement的一个实例变量,假设数据库连接,st的初使化已经完成)
     
    创建stu表:
    create table stu_other(id int auto_increment primary key,stu_name varchar(50),age int);
     
    然后创建一个文本文件“stu.txt”,每行包含一个记录,放在C盘的根目录下。默认的字段分隔符是(tab),你可以更改,下面说明。并且以CREATE TABLE语句中列出的列次序给出。对于丢失的值(例如未知的性别,或仍然活着的动物的死亡日期),你可以使用NULL值。为了在你的文本文件中表示这些内容,使用/N(反斜线,字母N)。
     
    如stu.txt的内容如下:
    100001    FLB100001     100001
    100002    FLB100002     100002
    100003    FLB100003     100003
    100004    FLB100004     100004
    100005    FLB100005     100005
    100006    FLB100006     100006
    100007    FLB100007     100007
    100008    FLB100008     100008
    这里我用的是table分开。
     
    要想将文本文件“stu.txt”装载到stu表中,使用这个命令:
    mysql> LOAD DATA LOCAL INFILE 'c://stu.txt' INTO TABLE stu;
    这里没有指定字段分隔符,以及行的终止符,默认情况下是这样的:
    字段分隔符:
    FIELDS TERMINATED BY '/t' ENCLOSED BY '' ESCAPED BY '//'
    其中的'/t'就表示是字段分隔符为tab键,如果不想更改,那就把FIELDS TERMINATED BY '/t'中的'/t'改在你自己的分隔符。将执行命令改成这样:
    mysql> LOAD DATA LOCAL INFILE 'c:/stu.txt' INTO TABLE stu fields terminated by ‘ ‘;
    这里我用的是空格。
    行终止符:
    LINES TERMINATED BY '/n' STARTING BY ''
     
    请注意如果用Windows中的编辑器(使用/r/n做为行的结束符)创建文件,应使用:
     
    mysql> LOAD DATA LOCAL INFILE 'C://stu.txt' INTO TABLE stu
        -> LINES TERMINATED BY '/r/n';
    (在运行OS X的Apple机上,应使用行结束符'/r'。)
     
    如果你愿意,你能明确地在LOAD DATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。这对读入文件“stu.txt”的语句已经足够。
     
    另外,还可以使用SELECT ... INTO OUTFILE 将数据导入到外部文件中,如下:
    select * from stu_t into outfile "c://stu_t.txt";
    不过,没有按记录自动分行
    这样才能够换行:
    select * from stu_t into outfile "c://stu_t.txt" lines terminated by '/r/n';
     
    所有实例都是经过测试的,运行成功。
     
     

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 相关阅读:
    [C++再学习系列] 深入new/delete:Operator new的全局重载
    [C++再学习系列] 函数模板和类模板
    [C++再学习系列] 模板函数的自定义点
    [C++再学习系列] STL容器删除操作总结
    How to create a sizelimited filesystem
    CodeSmith 破解和注册
    LINQ to SQL学习的几个问题
    SQLSERVER2005 分区表
    google工具栏和搜狗拼音叠加问题
    C#中构成函数重载有哪些条件和特征?
  • 原文地址:https://www.cnblogs.com/skiwdhwhssh/p/10340636.html
Copyright © 2011-2022 走看看