目录
1.备份
- create table dim_vcs_tmp as select * from dim_vcs; //将表dim_vcs表结构和数据复制到dim_vcs_tmp,自动创建表dim_vcs_tmp。
- 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; //写入一列常量。 - 利用dump工具备份mysqldump -h127.0.0.1 -uroot -p dbname table1 table2.... > /home/test.sql
2.重命名
- RENAME TABLE dim_vcs_sxjcjda_1121_test to dim_vcs_sxjcjda_1121_altercoordinate;
3.截取
- UPDATE dim_vcs_sxjcjda_1121_1 set sbqjbh=SUBSTRING(sbqjbh,1,9); //将sbqjbh从第一位截取到第九位,目的是清除部分整数型 数据导入数据库时产生 .0的后缀。有许多个相同功能的函数。
4.查询重复的数据
- 查询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.删除
- 当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时,用 delete,但总是得带上where condition;
6.多表更新,将a表某列的数据更新为b表某几行的数据
1.UPDATE table1 a,table2 b SET a.jd=b.jd , a.wd=b.wd WHERE a.sbbm=b.sbbm;
2.SELECT a.yxt_id,a.sbyxt_jd,a.sbyxt_wd FROM dim_yjyd a JOIN dim_vcs_sxjcjda_copy1 b on a.yxt_id=b.sbqjbh;
7.
exists的用法
select a.sbqjbh from dim_vcs_sxjcjda a where exists (select b.sbqjbh from table2 b where b.sbqjbh=a.sbqjbh);
更改表名
alter table table21 rename dim_vcs_sxjcjda;
更改字段名
alter table table2 drop column sjdrsj,drop column sjdryh;