MySQL中通过结构化文本倒腾数据
拼接为sql语句
使用mysql dump可以对表或者其它对象dump出来,可以以文本或者sql语句的形式,如果针对一张表的结果集还好说,甚至还可以使用where选项,但如果是多表关联,就不能把整个结果集导出为sql语句。传统方式为使用into outfile选项导出为本地文本文件。
可以使用sql语句拼接的方式,把多表关联的查询输出为sql insert into语句,适合于数据量比较小的情况下,通过字符串类型字段快速的倒腾。
select concat('insert into user(user_id,user_name,pswd) values(','''',user_id,''',','''',user_name,''',','''',pswd,'''',');') from user;
如果字符串中有单引号,就会报错,使用转移符号"\" ,可以使用replace函数替换掉。例如:select replace('fdfdfd''','''','\\''');
如果是Oracle数据库,使用以下拼接方式:
select 'insert into user(user_id,user_name,pswd) values('||''''||user_id||''',',''''||user_name||''',',''''||pswd||''');'from user;
转换为结构化文本文件
select into outfile可以把查询结果导入到文本文件中。官方参考:https://dev.mysql.com/doc/refman/5.7/en/select-into.html
select into outfile为文本
SELECT ... FROM TABLE_A INTO OUTFILE "/path/to/file" CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
用法说明:
MySQL中,可以使用SELECT...INTO OUTFILE语句将表的内容导出为一个文本文件。其基本的语法格式如下:
SELECT [列名] FROM table [WHERE 语句] INTO OUTFILE '目标文件' [OPTION];该语句分为两个部分。前半部分是一个普通的SELECT语句,通过这个SELECT语句来查询所需要的数据;后半部分是导出数据的。其中,“目标文件”参数指出将查询的记录导出到哪个文件中;
“OPTION”参数为可选参数选项,其可能的取值有:
FIELDS TERMINATED BY '字符串':设置字符串为字段之间的分隔符,可以为单个或多个字符。默认值是“\t”。
FIELDS ENCLOSED BY '字符':设置字符来括住字段的值,只能为单个字符。默认情况下不使用任何符号。
FIELDS OPTIONALLY ENCLOSED BY '字符':设置字符来括住CHAR、VARCHAR和TEXT等字符型字段。默认情况下不使用任何符号。
FIELDS ESCAPED BY '字符':设置转义字符,只能为单个字符。默认值为“\”。
LINES STARTING BY '字符串':设置每行数据开头的字符,可以为单个或多个字符。默认情况下不使用任何字符。
LINES TERMINATED BY '字符串':设置每行数据结尾的字符,可以为单个或多个字符。默认值是“\n”。
FIELDS和LINES两个子句都是自选的,但是如果两个子句都被指定了,FIELDS必须位于LINES的前面。
注意事项:该语法中的“目标文件”被创建到服务器主机上,因此必须拥有文件写入权限(FILE权限,grant file on ...)后,才能使用此语法。同时,“目标文件”不能是一个已经存在的文件。
SELECT...INTO OUTFILE语句可以非常快速地把一个表转储到服务器上。如果想要在服务器主机之外的部分客户主机上创建结果文件,则不能使用SELECT...INTO OUTFILE语句。
结构化文本加载到数据库
load data infile方式
load data可以快速的把文本中的结构化数据插入到表中,是select into outfile 的一个补充,当然也可以使用mysqlimport工具来导入文本数据。
官方参考:https://dev.mysql.com/doc/refman/5.7/en/load-data.html
用法:LOAD DATA INFILE "/path/to/file" INTO TABLE table_name;
FIELDS必须位于LINES的前面,多个FIELDS子句排列在一起时,后面的FIELDS必须省略;同样,多个LINES子句排列在一起时,后面的LINES也必须省略。
注意:如果导出时用到了FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'语句,那么LOAD时也要加上同样的分隔限制语句。还要注意编码问题。
用法案例:
linux下 load data导入数据:
LOAD DATA INFILE "/tmp/a.txt" INTO TABLE t_tmp FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' (a,b,c,d,e,f)
windows下稍微特殊些:
“TERMINATED BY '\r\n'”可以保证每条记录占一行。因为Windows操作系统下“\r\n”才是回车换行。如果不加这个选项,默认情况只是“\n”
导出example数据库下employee表的记录。其中,字段之间用“、”隔开,字符型数据用双引号括起来。每条记录以“>”开头。SQL代码如下:
如果在employee表中包含了中文字符,需要注明编码格式, CHARACTER SET gbk|utf8 语句,SQL代码如下:
SELECT * FROM example.employee INTO OUTFILE 'F:/tmp/emp.txt' CHARACTER SET utf8 FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';
MySQL中通过结构化文本倒腾数据相关推荐
- 知识图谱-知识抽取(三):非结构化数据【DeepDive:基于远程监督的“关系抽取”】【斯坦福开发的开源知识抽取系统,通过弱监督学习,从非结构化的文本中抽取结构化的关系数据 】
deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统.它通过弱监督学习,从非结构化的文本中抽取结构化的关系数据 .是目前人工智能学习领域的一个热门项目.原文见 http://d ...
- python文本结构化处理_在Python中标记非结构化文本数据
python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...
- 文本数据可视化_非结构化文本数据的分析和可视化
文本数据可视化 Stuck behind the paywall? Read this article with my friend link here. 卡在收费墙后面? 在这里与我的朋友链接阅读本 ...
- web系统中的结构化数据标记
Web 系统的设计要点之一是内容和表示的分离,网站以HTML发布内容,对内容进行操作的服务也只能访问 HTML.随着表现形式各异的设备在大量地增加,也大大增加了网站针对不同表示格式的数量.同时,一些新 ...
- 使用爬虫爬取两种数据:结构化/非结构化文本
一.非结构化文本的爬取 微博上有一篇关于"#学校里的男生有多温柔#"的话题,点进去一看感觉评论很真实,于是想把评论给爬下来看一看,并生成词云.刚开始思路是通过网页端微博爬取,通过开 ...
- Google开始研究Web中的结构化数据
搜索引擎,确实是一种令人喜爱的工具,她的强大,必将造福天下大众. 最近,得知Google开始研究Web中的结构化数据. Google的一个终极目标就是把一个搜索请求的结果组织成"各个方面&q ...
- access“idno”字段改为文本型_结构化文本计算示例(一)
结构化文本是很常见的文件格式,对结构化文本的计算也是很常见的需求.在实现这种计算时,一种很容易想到的办法是将文件导入数据库后再计算,但这会消耗大量时间以及昂贵的数据库资源,而且有的场合下并没有合适的数 ...
- Rockwell 罗克韦尔AB Logix 5000控制器 结构化文本语言(ST) 梯形图(LD)顺序功能图(SFC)功能块图(FBD) IEC 61131-3 手册
Logix 5000 Controllers IEC 61131-3 Compliance 1756 ControlLogix, 1756 GuardLogix, 1769 CompactLogix, ...
- PLC结构化文本设计模式和算法
前言 . 目前PLC应用学科并没有设计模式方面的教程,导致学员解题都得从零开始设计.梯形图无法发挥出PLC的真正功能,所以我们需要以结构化文本来实现设计模式.本文以普及结构化文本为目的,将教大家结构化 ...
最新文章
- 德约科维奇横扫纳达尔夺冠 加冕澳网七冠王
- mysql 删除数据后myd_Windows下的MySQL删除data文件夹后……
- 功率放大器的有记忆失真特性
- vb设置excel 字体 加粗 微软雅黑_Python操作Excel的Xlwings教程(六)
- DocuCentre S2110设置网络打印IP地址方法
- cc2640蓝牙数据接收丢包问题
- STM32官方标准固件库下载及介绍
- 性能工具之 Locust 工具 Get 与 Post 请求
- 微透镜阵列的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 我一个文科生想转行IT,为什么大部分人向我推荐软件测试
- Linux命令--tac(倒序查看文件所有内容)
- 职场生存--向上管理
- Android中通过USB接口与和PC进行通讯的demo程序
- nodejs+Vue+Elementui的校园二手旧书交易交换平台sequelize
- 百度JS实现文本语音朗读
- Qt用SVG图片作为背景图
- 3D模型欣赏:原始部落女神 自带仙气 让人眼前一亮
- BackTrack(bt5) GNOME汉化
- 任正非:不要试图做完人(转)
- ckc交易什么意思_热文:涨停是什么意思股票涨停是什么意思
热门文章
- 【干货】B站品牌营销指南.pdf(附100页pdf下载链接)
- 如何看待 2020 届校招算法岗供远大于求的情况?
- 全球首发!计算机视觉Polygon Mesh Processing总结8——Remeshing Global Structure和Correspondences
- 【采访】腾讯社交广告高校算法大赛决赛第二周最大进步队伍——拔萝卜比赛经验及心得分享
- 修改个人信息 python_python函数练习——个人信息修改
- hashmap是线程安全的吗?怎么解决?_线程安全及三种解决方案
- 跨境电商独立站最大的难题是没有免费的自然流量?
- java servlet init方法_Java HttpServlet.init方法代码示例
- Leetcode每日一题:290.word-pattern(单词规律)
- Leetcode每日一题:面试题16.19.水域大小