mysql的一些操作

鉴于我经常性忘记一些知识点,于此记录一下!2018-09-24中秋节码代码篇~

主要内容:

  • 复制表(复制表数据,复制表结构)
  • 数据快速去重
  • 对于大数据级别的表作查找删除时的技巧
  • 在插入数据时遇到的bug(SQL:1265;;1166 ....)
  • 将excel文件内容导入mysql中,出现invalid utf8 character string错误的解决

  • heidisql导出csv文件时,存在隐藏的双引号,可通过复制到notepad中,再查找替换"即可(快捷键:ctrl+h)

  • 多表纵向连接union

1.表的复制

(1)复制表数据:(后需手动添加主键、外键等)

create table nsfc2 select * from new_nsfc2;

(2)只复制表结构:

CREATE TABLE 新表 LIKE 旧表

2.数据快速去重

(1)分组查询重复数>1且id号最小的数据

select min(aid) id,code from nsfc2 group by code having count(*)>1;

(2)将上述查询结果命名为临时表tt

(3)将原表和tt根据code相等连接,再根据原aid>id进行数据行选择;并对这些行执行删除操作

delete nsfc2 
from nsfc2,(select min(aid) id,code,name,tranceNo 
            from nsfc2 group by code having count(*)>1) tt 
where nsfc2.code=tt.code and nsfc2.aid>tt.id;

3.对于大数据级别的表作查找删除时的技巧

  若原表、查找表数据集都很大,可使用limit限制每次查询的数量(limit m,n指查询第(m+1~m+n)条)(Mysql没有top方法)

delete article from article,(select * from tt limit 0,100) aa where article.pid=aa.code;

4.在插入数据时遇到的bug(SQL:1265;;1166 ....)

(1)1265错误原因:新插入的数据超过字段设置的容量大小

(2)1166错误原因:字段名存在空格

5.将excel文件内容导入mysql中,出现invalid utf8 character string错误的解决

只需在插入时将编码设置为gbk或其他(自己尝试,不乱码就行)即可解决!

6.把四个表连接,然后根据Id统计某一列的总和

select sum(c2) from (
    SELECT c1,c2 FROM test1
    UNION all
    SELECT l1,l2 FROM test2
    union all
    select m1,m2 from test3
    union all
    select n1,n2 from test4
) as k
where c1=3

 

那就这样吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值