基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表
本文出处:http://blog.csdn.net/u012377333/article/details/47022699
从上面的几篇文章中,能够知道怎样使用Shell创建数据库。使用Shell创建数据表,本文继续介绍Shell结合MySQL的使用--怎样使用Shell批量插入数据?
这里涉及一点MySQL其它的知识。怎样导入或者导出数据?
首先做这些之前,须要依照上面所介绍的创建好数据库和数据库表,然后就是将要查询到数据库中的数据写到CSV文件里。因为个人比較懒。选择从一个现成的数据库中导出一部分数据用于測试。
创建了一个名字叫做t_prov_city_area_street的数据表,关于怎样创建这个表能够去我的资源里面下载创建该表的sql脚本,该脚本的名字是t_prov_city_area_street.sql。然后就是使用上面介绍的方法,导出关于全部省的信息。导出方法例如以下:
<span style="font-family:Microsoft YaHei;font-size:14px;">SELECT * FROM t_prov_city_area_street WHERE level=3 INTO OUTFILE '/tmp/prov_csv' FIELDS TERMINATED BY ',';</span>
我们就会得到一个保存着全部省级信息的CSV文件prov.csv,相同能够在资源里面找到这个文件。
接下来就是重点部分了Shell脚本批量插入数据:
#!/bin/sh #Author: chisj
#Date: 2015.7.23
#Describe Insert Data TO Table 'sct_Province' #The username of mysql database
USER="root" #The password of mysql database
PASS="dragonwake" #The datebase name will be created
DATABASE="SmartCare" TABLE="sct_Province" TABLE_DATA="prov.csv" if [ -f ${TABLE_DATA} ]; then echo "File ${TABLE_DATA} Existed." else echo "File ${TABLE_DATA} Not Existed."
echo
exit 2 fi while read line;
do query=`echo $line | awk -F, '{printf("\"%s\", \"%s\", \"%s\", \"%s\"", $2, $3, $4, $5)}'`
statement=`echo "insert into ${TABLE}(ProvinceCode, ParentID, ProvinceName, Level) values($query)"`
echo $statement mysql -u $USER -p$PASS $DATABASE << EOF > /dev/null
insert into ${TABLE}(ProvinceCode, ParentID, ProvinceName, Level) values($query);
EOF done < $TABLE_DATA if [ $? -eq 0 ]; then echo "Insert Data Into $TABLE Success." fi
运行shell脚本的时候的截图,能够參考一下:
插入完毕之后。查询结果的截图:
因为我希望主键ProvinceID是自增长的。不想使用csv里面的数据,全部脚本里面有一点点的改变,就是
query=`echo $line | awk -F, '{printf("\"%s\", \"%s\", \"%s\", \"%s\"", $2, $3, $4, $5)}'`
statement=`echo "insert into ${TABLE}(ProvinceCode, ParentID, ProvinceName, Level) values($query)"`
和
query=`echo $line | awk -F, '{printf("\"%s\", \"%s\", \"%s\", \"%s\", \"%s\"", $1, $2, $3, $4, $5)}'`
statement=`echo "insert into ${TABLE} values($query)"`
以及
insert into ${TABLE}(ProvinceCode, ParentID, ProvinceName, Level) values($query);</span>
和
insert into ${TABLE} values($query);
替换就能够了。
在验证数据是否插入成功的时候。会发现有乱码,我在创建数据的时候有设置为utf8格式,为什么还会这种,后来我重新启动了mysqld服务就能够正常看到中文了。
全部的脚本和CSV文件:Shell脚本批量加入CSV数据到MySQL
基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表的更多相关文章
- 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表
本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创 ...
- MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
- Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建)
Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建) 具体案例:局域网内有两台主机,一台Linux.一台Windows,现在需要配置一台Cacti监控服务器对这两台 ...
- PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析
现在需要分析访问日志,怎么办? 比如分析D:\Servers\Apache2.2\logs\access2014-05-22.log http://my.oschina.net/cart/针对这个问题 ...
- 转MYSQL学习(四) 查询
MySQL中select的基本语法形式: select 属性列表 from 表名和视图列表 [where 条件表达式] [group by 属性名[having 条件表达式]] [order by 属 ...
- MySQL学习(四) SQL连接查询
更多情况下,我们查询的数据来源于多张表,所有有必要了解一下MySQL中的连接查询. SQL中将连接查询分成四类:交叉连接,内连接,外连接和自然连接. 数据准备 student表 -- -------- ...
- MySQL学习(四)Join 等开发常用的操作 --- 2019年2月
1.查数据太多不会把内存用光 InnoDB 的数据是保存在主键索引上,然后索引树分割保存在数据页上,数据页存在内存中/磁盘.change buffer 就是先把修改操作记录,然后读数据的时候,内存没有 ...
- 烂泥:学习tomcat之通过shell批量管理多个tomcat
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司的业务是使用tomcat做web容器,为了更有效的利用服务器的性能,我们一般部署多个 ...
- Linux 用 shell 脚本 批量 导入 csv 文件 到 mysql 数据库
前提: 每个csv文件第一行为字段名 创建的数据库字段名同csv 文件的字段名 1. 批量导入 多个 csv 文件 for file in ./*.csv;do mv $file tablename. ...
随机推荐
- windows样式(style)参考
[WTL] 窗体Style的含义比较有用的设置:(1)WS_POPUP:弹出式窗体,没有标题栏!WS_BORDER:细的黑边框WS_OVERLAPPED:一般的有标题栏的窗体,见多了.WS_CHILD ...
- python爬虫beautifulsoup4系列4-子节点
前言 很多时候我们无法直接定位到某个元素,我们可以先定位它的父元素,通过父元素来找子元素就比较容易 一.子节点 1.以博客园首页的摘要为例:<div class="c_b_p_desc ...
- EF Power Tools使用介绍
EF Power Tools可以从数据库反向生成实体及映射文件.一般在使用EF,有Database First,Code First以及Model First.常用的是Database ...
- CSS:CSS层叠样式表的概述
CSS层叠样式表:Cascading Style Sheets 介绍: 现代网页的设计原则是内容和样式分离,降低它们之间的直接相互依存关系,解耦性,同时,同样的内容,可以通过不同的CSS样式表现出来. ...
- 设计模式学习--迭代器模式(Iterator Pattern)和组合模式(Composite Pattern)
设计模式学习--迭代器模式(Iterator Pattern) 概述 ——————————————————————————————————————————————————— 迭代器模式提供一种方法顺序 ...
- Jni的Jclass JmethodID JfrieldID的差异
Jni的Jclass JmethodID JfrieldID 这三者都是java类别的属性,本质上都是指标(Pointer).透过这些指标就能快速调用java类别的函数,或存取对象的属性值.在该类别被 ...
- GPGPU OpenCL 精确字符串查找
字符串查找是信息安全.信息过滤领域的重要操作,尤其是对大文本的实时处理.这篇作为实例,使用GPU OpenCL进行精确模式串查找. 1.加速方法 (1)将少量常量数据,如模式串长度.文本长度等,保存在 ...
- Cognos权限Custom Java Provider表结构实例
select * from org_user;USER_ID USER_CODE USER_NAME FULL_NAME EMAIL PWD2 889 zhangsan 张三 123@126.com ...
- 公共DNS服务
一: 谷歌的 8.8.8.8 8.8.4.4 国内的两组 114.114.114.114 114.114.115.115
- Sword框架解析——知识采集流程页面初始化
Sword框架解析——知识采集流程页面初始化 Sword框架解析知识采集流程页面初始化 问题解答流程采集新增页面初始化 1后台t_xt_gnzy表和BLH类 2BLH类的写法前台目录树代码 3登录系统 ...