结果排序
- ASC为升序
- DESC为降序
- 默认为ASC
NULL值比任何值都小,所以降序排序在最下面。
- 多字段排序,排序优先级随书写顺序。
- ORDER BY 中可以使用表达式,可以使用列别名
- 可以和WHERE结合使用,先WHERE 再ORDER BY.
LIMIT 筛选分页
LIMIT N;从0开始,筛选n个结果
LIMIT N,M;从m开始,筛选n个结果
LIMIT N OFFSET M;从m开始,筛选n个结果,一般用这种
建议对未知表查询时,加上LIMIT1,防止数据过大,卡死。
UPDATE数据更新
- 更新具体值
- 一次更新多个列
- 更新的值是在原有的基础上进行修改的,数据更新不支持 ?+=?,这样的
- 没有where 更新全表。
- update table set shu = shu +5;
DELECT删除数据
- delect form table where something
- 删除全表,没有where
- 在插入新数据,自增id,在原值上增长(delect&truncate的区别)
- 查看表结构,会有AUTO_INCREMENT=n项。
TRUNCATE截断表
- 只对整张表操作,不能像delect一样,对部分数据操作
- 实际上MYSQL不对数据操作,所以DELECT更快。
- 会重置AUTO_INCREMENT项
插入查询结果
insert into table2 select distinct * from table1;
将表一中不重复的部分,插入表二。再通过rename table1 to oldtable,table1 to table2;
通过重命名表实现原子的去重操作
聚合函数
- count()数量
- sum()总和
- avg()平均
- max()最大
- min()
- 使用*,count(*)不受影响
- 也可以使用表达式做统计count(1)
- NULL不会计入结果
- count(distinct shu)去重数据量
可以和where结合,select min(shu)from table where shu >70;
GROUP BY 子句的使用
select column1,...from table group by column ;
分组查询
eg.显示每个部门的平均工资。