mysql 导入txt文件 详解

mysql  今天做了一个功能, 功能大致是这样:  
   将txt客户手机号导入到mysql中,然后去重复,去重之后查询 手机号不在主库中的手机号。
  注意:window下 txt文件是  有换行和回车符的  /r/n所以要去除掉。  linux下就不需要了  直接在linux下导入没有换行回车符。

先将数据导入到mysql表中 。
1.在 mysql 安装目录的bin目录下 按住 shift ,点击在此处运行命令,
2.然后输入 用户名 root 回车 ,输入密码 进入到mysql,

3.show  databases; 查看所有的数据库  ,
4.引用数据库 use XXX;
   5.  show tables;
   6, 将txt文件插入   load data infile "d:\users.txt" ignore  into table mobilesms_his_test_ss(MOBILE);
         *:txt文件 是这样
         *:ignore  这个是去重 ,大家可以测试下 。 mobile 要建立唯一索引  ,建立唯一索引不会的建议大家去搜下
             好吧,我截图给大家看
     7.插入的数据这时候是在window下进行的,所以要去除空格和换行符 /r/n
UPDATE mobilesms_his_test
    SET MOBILE = REPLACE (REPLACE (MOBILE, CHAR(10), ''),CHAR (13),'');


      8.数据更新之后  然后 筛选数据  这里有两种方式  一种是 not exists  ,还有就是 not in ,顺便把两种方法给大家看看,当然结果是一样的,但是not exists效率却相对较高。
              not exists用法 

 SELECT
        count(MOBILE) 
    FROM
        mobilesms_his_test ty
    WHERE
        NOT EXISTS (
            SELECT
                ts_rel.MOBILE
            FROM
                mobilesms_bak ts_rel
            WHERE
                ts_rel.MOBILE = ty.MOBILE
        );

               not in 用法  

SELECT
    count(MOBILE),
    MOBILE
    FROM
    mobilesms_his_test
    WHERE
    MOBILE NOT IN (
        SELECT
            MOBILE
        FROM
            mobilesms_bak
    );

 扩展:数据插入之后想清楚数据,TRUNCATE TABLE mobilesms_his_test_ss;
  总结:这样结果就出来了,当然遇到什么问题大家可以留言 ,互相讨论,互相进步。

你可能感兴趣的:(java基础,数据库操作)