#根据原表创建表createtable table_name like table_name_yunbiao;
插入字段
INSERTINTO {table}({keys})VALUES({values}).format(table=table,keys=keys,values=values)INSERTINTO table_name ({keys})VALUES({values})--增强版插入,如果数据不存在直接插入,如果数据存在,更新数据replaceinto table_name(字段名,...)values(...)replaceinto table_name(字段名,...)select...replaceinto table_name set 字段名=value,...
删除数据
deletefrom table_name where id in(select a.id from(select id from table_name groupby id havingcount(id)>1) a)
清空表
truncatetable 表名;
删除表
drop table_name;
修改数据、表结构
更新字段
update table_name set 字段名=?,字段名=? where 条件;
修改表名
renametable 旧表名 to 新表名;altertable 旧表名 renameas 新表名;
增加表的字段
altertable table_name add 字段 数据类型;--例:Alter table_name test Add(id,int);
修改字段名
altertable 表名 change 旧字段名 新字段名 数据类型;
格式化时间戳
DATE_FORMAT(Time,'%Y-%m-%d %H:%i:%s')
查询数据
--普通查询select 字段名,...from table_name;--条件查询select 字段名,...from table_name where 条件;
查询重复数据
```sql
select*,count(*)from table groupby id havingcount(id)>1;
#多字段去重select distinct a.* from a -- 可以查询出所有的信息
#单字段去重select distinct a.id from a -- 可以查询出id不同的信息,则还是全部数据的id列(1,2,3,4)
select distinct a.name from a -- 可以查询name不同的的信息,则是三条数据(qqq,www,eee)
数据去重查询
group by去重
select * from table_name group by 去重字段名
# 例:#多字段去重select * from a group by a.* -- 可以查询出所有的信息
select * from a group by a.id -- 可以查询出id不同的信息,则还是全部数据的id列(1,2,3,4)
#单字段去重select * from a group by a.name -- 可以查询name不同的的信息,则是三条数据(qqq,www,eee)
order by
ORDER BY 语句用于根据指定的列asdf对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
order by放在from table_name后面。
如果希望按照降序对记录进行排序,可以使用 DESC 关键字。
表连接、多表查询
#内连接
inner join on
#例:select * from a_table a inner join b_table b on a.a_id = b.b_id;#左连接
left join on / left outer join on
#例:select * from a_table a left join b_table b on a.a_id = b.b_id;#右连接(右外连接)
right join on / right outer join on
#例:select * from a_table a right outer join b_table b on a.a_id = b.b_id;
判断操作
# if (条件 ,条件成立,条件不成立)# 例:if(a.sfzhm=b.GMSFHM ,'', b.XM) as gxrxm
# 如果a.sfzhm=b.GMSFHM 则:gxrxm='',如果a.sfzhm!=b.GMSFHM 则:gxrxm=b.XM,
case when 条件1 then 结果1
when 条件2 then 结果2
else 结果3 end as 字段名