MySQL随笔记

目录

1.备份

2.重命名

3.截取

4.查询重复的数据


1.备份

  1. create table dim_vcs_tmp as select * from dim_vcs;  //将表dim_vcs表结构和数据复制到dim_vcs_tmp,自动创建表dim_vcs_tmp。
  2. create table dim_vcs_tmp like dim_vcs;  //先将表结构以及索引复制过来。
    insert into table dim_vcs_tmp select * from dim_vcs;//再将数据复制过来,改方法更规范一点。
        其他用法 insert into dim_vcs_tmp(a,b,c) select a,b,5 from dim_vcs;  //写入一列常量。
  3. 利用dump工具备份mysqldump -h15.75.7.133 -uroot -p dbname table1 table2....   > /home/test.sql

2.重命名

  1. RENAME TABLE dim_vcs_sxjcjda_1121_test to dim_vcs_sxjcjda_1121_altercoordinate;

3.截取

  1. UPDATE dim_vcs_sxjcjda_1121_1 set sbqjbh=SUBSTRING(sbqjbh,1,9);  //将sbqjbh从第一位截取到第九位,目的是清除部分整数型 数据导入数据库时产生 .0的后缀。有许多个相同功能的函数。

4.查询重复的数据

  1. 查询sbqjbh重复的98条数据中,但jd、wd不同的12条数据。
    1.先将sbqjbh, sbqyxtmc, jd, wd都相同的86个sbqjbh过滤出来SELECT sbqjbh FROM ( SELECT sbqjbh, sbqyxtmc, jd, wd FROM dim_vcs_sxjcjda_1121_1 GROUP BY sbqjbh, sbqyxtmc, jd, wd HAVING COUNT( * ) > 1 ) b;
    2.取出sbqjbh重复的98条数据SELECT sbqjbh FROM dim_vcs_sxjcjda_1121_1 GROUP BY sbqjbh HAVING COUNT( * ) > 1
    3.用not in过滤出坐标系不同的12个点位信息。
    4.将坐标系不同的12个点位信息在全表中找出来。
    SELECT  sbqjbh
            ,sbqyxtmc
            ,jd
            ,wd
    FROM    dim_vcs_sxjcjda_1121_1 a
    WHERE   a.sbqjbh IN ( SELECT sbqjbh FROM ( SELECT sbqjbh FROM dim_vcs_sxjcjda_1121_1 GROUP BY sbqjbh HAVING COUNT( * ) > 1 ) b WHERE b.sbqjbh NOT IN ( SELECT sbqjbh FROM ( SELECT sbqjbh, sbqyxtmc, jd, wd FROM dim_vcs_sxjcjda_1121_1 GROUP BY sbqjbh, sbqyxtmc, jd, wd HAVING COUNT( * ) > 1 ) b ) )
    ORDER BY sbqjbh
    ;

5.删除

  1. 当你不再需要该表时, 用 drop;
    当你仍要保留该表,但要删除所有记录时, 用 truncate;
    当你要删除部分记录时,用 delete,但总是得带上where condition;

猜你喜欢

转载自blog.csdn.net/u010356237/article/details/84330674