使用concat做字符串拼接和数据迁移
作用:
解决一开始数据库建立不合理造成的字段冗余,从而提取部分字段,数据迁移、拼接字符串的功能。
格式:
concat(字段1,'间隔符',字段2....)
concat_ws('间隔符',字段1,字段2)
数据准备:
#创建表
create table employee(
id int not null unique auto_increment,
name varchar(20) not null,
sex enum('male','female') not null default 'male', #大部分是男的
age int(3) unsigned not null default 28,
hire_date date not null,
post varchar(50),
post_comment varchar(100),
salary double(15,2),
office int, #一个部门一个屋子
depart_id int
);
#插入记录
#三个部门:教学,销售,运营
insert into employee(name,sex,age,hire_date,post,salary,office,depart_id) values
('egon','male',18,'','老男孩驻沙河办事处外交大使',7300.33,401,1), #以下是教学部
('alex','male',78,'','teacher',1000000.31,401,1),
('wupeiqi','male',81,'','teacher',8300,401,1),
('yuanhao','male',73,'','teacher',3500,401,1),
('liwenzhou','male',28,'','teacher',2100,401,1),
('jingliyang','female',18,'','teacher',9000,401,1),
('jinxin','male',18,'','teacher',30000,401,1),
('成龙','male',48,'','teacher',10000,401,1), ('歪歪','female',48,'','sale',3000.13,402,2),#以下是销售部门
('丫丫','female',38,'','sale',2000.35,402,2),
('丁丁','female',18,'','sale',1000.37,402,2),
('星星','female',18,'','sale',3000.29,402,2),
('格格','female',28,'','sale',4000.33,402,2), ('张野','male',28,'','operation',10000.13,403,3), #以下是运营部门
('程咬金','male',18,'','operation',20000,403,3),
('程咬银','female',18,'','operation',19000,403,3),
('程咬铜','male',18,'','operation',18000,403,3),
('程咬铁','female',18,'','operation',17000,403,3)
;
操作示例:
只做字符串的拼接:
mysql> select concat('name:',name) as mingzi,concat('sex:',sex) from emp;
+-----------------+--------------------+
| mingzi | concat('sex:',sex) |
+-----------------+--------------------+
| name:egon | sex:male |
| name:alex | sex:male |
| name:wupeiqi | sex:male |
| name:yuanhao | sex:male |
| name:liwenzhou | sex:male |
| name:jingliyang | sex:female |
| name:jinxin | sex:male |
| name:成龙 | sex:male |
| name:歪歪 | sex:female |
| name:丫丫 | sex:female |
| name:丁丁 | sex:female |
| name:星星 | sex:female |
| name:格格 | sex:female |
| name:张野 | sex:male |
| name:程咬金 | sex:male |
| name:程咬银 | sex:female |
| name:程咬铜 | sex:male |
| name:程咬铁 | sex:female |
+-----------------+--------------------+
18 rows in set (0.00 sec)
数据迁移(同时进行字符串拼接):
mysql> create table aa select concat('name:',name) as mingzi,concat('sex:',sex) from emp;
Query OK, 18 rows affected (0.03 sec)
Records: 18 Duplicates: 0 Warnings: 0
mysql>
mysql> show tables;
+---------------+
| Tables_in_db2 |
+---------------+
| aa |
| big_data |
| emp |
+---------------+
3 rows in set (0.00 sec)
mysql> select * from aa ;
+-----------------+--------------------+
| mingzi | concat('sex:',sex) |
+-----------------+--------------------+
| name:egon | sex:male |
| name:alex | sex:male |
| name:wupeiqi | sex:male |
| name:yuanhao | sex:male |
| name:liwenzhou | sex:male |
| name:jingliyang | sex:female |
| name:jinxin | sex:male |
| name:成龙 | sex:male |
| name:歪歪 | sex:female |
| name:丫丫 | sex:female |
| name:丁丁 | sex:female |
| name:星星 | sex:female |
| name:格格 | sex:female |
| name:张野 | sex:male |
| name:程咬金 | sex:male |
| name:程咬银 | sex:female |
| name:程咬铜 | sex:male |
| name:程咬铁 | sex:female |
+-----------------+--------------------+
18 rows in set (0.00 sec)
使用concat做字符串拼接和数据迁移的更多相关文章
- $.ajax从后台取数据 然后做字符串拼接的例子
- 使用 SQL的 for xml path来进行字符串拼接
本篇主要讲怎么利用SQL的FOR XML PATH 参数来进行字符串拼接,FOR XML PATH的用法很简单,它会以xml文件的形式来返回数据. 我的讲解步骤: 1:构造初始数据 2:提出问题 3: ...
- StringBuilder(字符串拼接类)
StringBuilder是在using System.Text命名空间下的一个成员. 在做字符串拼接的时候,因为字符串是引用类型,新的字符串是会再内存中创建的,所以用+号拼接字符串是比较耗效率的. ...
- StringBuilder字符串拼接类
StringBuilder StringBuilder是在using System.Text命名空间下的一个成员. 在做字符串拼接的时候,因为字符串是引用类型,新的字符串是会再内存中创建的,所以用+号 ...
- HBase存储剖析与数据迁移
1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储.所以,对于结构化的SQL语言查询,HBase自身并没有接口支持.在大数据应用中,虽然也有SQL查询引擎可以查询H ...
- python语法_字符串拼接
+号可以用来做字符串拼接 print("abc"+"efg"+"def") abcefgdef 字符串(str)与数字(int)不能使用+进 ...
- C# 字符串拼接性能探索
本文通过ANTS Memory Profiler工具探索c#中+.string.Concat.string.Format.StringBuilder.Append四种方式进行字符串拼接时的性能. 本文 ...
- mybatis中使用mysql的模糊查询字符串拼接(like)
方法一: <!-- 根据hid,hanme,grade,模糊查询医院信息--> 方法一: List<Hospital> getHospitalLike(@Param(" ...
- 字符串拼接原理 javac 和 javap
一.新建一个 Test1 类 public class Test1 { public static void main(String[] args) { String a = "a" ...
随机推荐
- Hello Build To Win!我们是奶牛小分队!——记第一次团队作业
Hello Build To Win!我们是奶牛小分队! section 1 组建团队 1. 队员介绍: 姓名 学号 风格 擅长技术 编程兴趣 希望软工角色 吴建瑜 2016012024 努力学习, ...
- Spring Data Solr操作solr的简单案例
Spring Data Solr简介 虽然支持任何编程语言的能力具有很大的市场价值,你可能感兴趣的问题是:我如何将Solr的应用集成到Spring中?可以,Spring Data Solr就是为了方便 ...
- 【LA3211 训练指南】飞机调度 【2-sat】
题意 有n嫁飞机需要着陆.每架飞机都可以选择“早着陆”和“晚着陆”两种方式之一,且必须选择一种.第i架飞机的早着陆时间为Ei,晚着陆时间为Li,不得在其他时间着陆.你的任务是为这些飞机安排着陆方式,使 ...
- java程序员应该熟悉的20个有用的库(转)
优秀且经验丰富的Java开发人员的一个特点是API的广泛知识,包括JDK和第三方库.我花了很多时间学习API,特别是在阅读Effective Java 3rd Edition之后,Joshua Blo ...
- Python学习笔记_二维数组的查找判断
在进行数据处理的工作中,有时只是通过一维的list和有一个Key,一个value组成的字典,仍无法满足使用,比如,有三列.或四列,个数由不太多. 举一个现实应用场景:学号.姓名.手机号,可以再加元素 ...
- asp.net 母版页使用详解
母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用.它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形 ...
- python3--json反序列化
# Auther: Aaron Fan # 加载文件中的数据 import json with open('test.txt','r',encoding='utf-8') as f: info = j ...
- CodeForces 681C Heap Operations (模拟题,优先队列)
题意:给定 n 个按顺序的命令,但是可能有的命令不全,让你补全所有的命令,并且要求让总数最少. 析:没什么好说的,直接用优先队列模拟就行,insert,直接放入就行了,removeMin,就得判断一下 ...
- STS 闪退
# # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ILLEGAL_INSTRUCTI ...
- 学习tomcat(一)----用IDEA调试tomcat源码
一直在使用tomcat,但却不怎么熟悉tomcat的"运作流程",今天就 参照参考文章进行了代码搭建(代码的github在文末),并修改了一些操作.学习下tomcat的" ...