基于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. ...
随机推荐
- HDU 4666 Hyperspace (2013多校7 1001题 最远曼哈顿距离)
Hyperspace Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- 查找可用的谷歌IP地址
在终端下运行命令就可以: nslookup www.google.cn 就可以找到
- CISC RISC架构
参考: http://capacity.blog.163.com/blog/static/20866413120129261737102/ http://cs.stanford.edu/people/ ...
- Java垃圾回收精粹 — Part1
Java垃圾回收精粹分4个部分,本篇是第1部分.在第1部分里介绍了权衡点.对象生命周期以及全局暂停事件. 串行.并行.并发.CMS.G1.年轻代(Young Gen).新生代(New Gen).旧生代 ...
- git hub的GUI软件配置与使用
1. 安装两个软件 1. git的命令行程序--git for windows:http://git-scm.com/download/win 2. git的GUI程序--tortoisegit:ht ...
- Mac配置PHP开发环境
安装环境如下: Mac OS 10.10.1 Apache 2.4.9 PHP 5.5.14 MySQL 5.6.22 Apache配置 在Mac OS 10.10.1中是自带Apache软件的,我们 ...
- android RecyclerView (二) ItemDecoration 详解
RecyclerView 已经推出了一年多了,日常开发中也已经彻底从 ListView 迁移到了 RecyclerView,但前两天有人在一个安卓群里面问了个关于最顶上的 item view 加蒙层的 ...
- Labeled Faces in the Wild 人脸识别数据集 部分测试数据
development test set Note: images displayed are original (non-aligned/funneled) images. match pairs ...
- STM32 控制GSM模块收发信息 F407 discovery
main.c #include "stm32f4_discovery.h" #include <stdio.h> #define LED1_ON GPIO_SetBit ...
- Linux 安装tomcat 及过程中遇到的问题
Linux 安装tomcat(tomcat能用的前提是系统已经安装jdk) 1.下载linux系统版tomcat,解压后通过ftp上传到Linux服务器 例:tomcat放在 /opt/tom ...