Chinaunix首页 | 论坛 | 博客
  • 博客访问: 123971
  • 博文数量: 83
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 585
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-13 10:26
个人简介

- 毅力与勇气是事业的双飞翼; - 在尝试中成长,在失败中奋起。 - 概览 -> 细读 -> 概览 - 书不在多,在于精。

文章分类

全部博文(83)

文章存档

2016年(2)

2015年(6)

2014年(75)

我的朋友

分类: Mysql/postgreSQL

2014-06-09 10:57:51

批量向mysql插入(文本)数据的方法有以下3种:
方法1. 

可以先将要插入的数据统一保存在 .sql 文件中,各个insert 语句直接用分号分开。之后执行命令: source .sql 文件即可。

如,将500条的insert语句用分号分开保存在a.sql 文件中,之后执行source a.sql即可一次性将该500条记录插入数据库表中。


cat word_limit.txt | awk -F"\t" '{print "insert into  tbl_sensitive_words_test  (Sensitive_Words) values (\""$1"\");"}' > test.sql
alias smsstat='mysql -h10.10.10.10 -usms -p  sms'
smsstat < test.sql




方法2.
load data local infile '/home/ill-word/word_limit.txt' into table tbl_sensitive_words_test;  
## 该方法导入文本数据,文本内容的格式必须与表结构的字段对应一致。且可在SQL语句后加入 Fields/LINES TERMINATED BY '\r\n'; 指定以 '\r\n'作为行的结尾符,默认的字段分隔符为tab.  ## 在某些mysql版本上load data有可能不能使用, 且必须保证文本文件的编码和数据库表的编码一样,否则有可能会乱码。


load data local infile '/path /abc.txt' into table tbl_ill_word;            #默认的字段分隔符为tab,可通过在该语句后加 入:   fileds terminated by 'abc' 来指定分隔符为abc。也可用:  lines terminated by '\r \n' 来指定每行的结束分隔符。


方法3.
head word_limit.txt | awk -F"\t" '{cmd="mysql -A -C -h10.10.209.61 -usms -psms sms_stat -qe \"insert into tbl_sensitive_words_test (Sensitive_Words) values (\""$2"\")\""; system(cmd)}'   ### syntax Error???再确定是否可行!


方法4.

还可以通过创建存储过程来实现。




批量导出数据到文本文件中


1. 

$    alias smsdb='mysql -h10.10.4.20 -uabc -pabc  smsa2P'

$    smsdb -Nqe "select 8 from smsa2p;" > abc.txt


2.

select * from smsa2p into outfile abc.txt fields terminated by"," enclosed by """;   ## 将看到每个字段都用","进行了分隔,且每个字段都用"""包括了起来




如何执行一个mysql的sql脚本文件


 sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为“sql脚本文件”),然后通过相关的命令执行这个sql脚本文件。基本步骤如下:
一、创建包含sql命令的sql脚本文件
    文件中包含一系列的sql语句,每条语句最后以;结尾,假设文件名为ss.sql,文件内容示例如下(使用“--”进行注释):
--创建表
create table 表名称
(                   
  Guid Varchar(38) not null primary key,  
  Title Varchar(255),       
              
) TYPE=InnoDB;

--在表A中增加字段Status
alter table A add Status TinyInt default '0';

--在表A上创建索引
create index XX_TaskId_1 on A(Id_);
--在A表中添加一条记录
Insert into A (Id,ParentId, Name) values(1,0,'名称');
--添加、修改、删除数据后,有可能需要提交事务
Commit;

二、执行sql脚本文件
方法一 使用cmd命令执行(以windows为例,unix或linux的在其类似的控制台下运行)
    格式:【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
    示例:D:\mysql\bin\mysql –uroot –p123456 -Dtest
    注意事项
      1、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
      2、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:
        “C:\Program Files\mysql\bin\mysql” –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
      3、如果需要将执行结果输出到文件,可以采用以下模式
          D:\mysql\bin\mysql –uroot –p123456 -Dtest>d:\dd.txt

方法二 进入mysql的控制台后,使用source命令执行
   1、进入mysql控制台
       D:\mysql\bin\mysql –uroot –p123456 -Dtest
   2、执行sql脚本文件
       Mysql>source 【sql脚本文件的路径全名】
阅读(1816) | 评论(0) | 转发(0) |
0

上一篇:Mysql常用函数?

下一篇:MySQL存储过程详解

给主人留下些什么吧!~~