更新数据(限制记录数)
举例说明;UPDATE my_copy SET NAME='32' WHERE 1 = 1 LIMIT 3
只更新一部分,头几名啊这些的
删除数据【限制记录数】
清空表,重置自增长
Tips:自增长又从1开始
Truncate 表名 。--表被删除后,又重新创建。从而达到清空表,重置自增长
TRUNCATE my_copy
查询数据
字段别名
数据源
单表查询:select * from 表名
多表查询:select * from 表1 ,表2 where 表1.id = 表2.id
子查询:select * from (select 字段 from 表) as 别名 -- 必须加上别名,否则报错。
这个别名相当于表名,里面的数据是子查询查询出来的数据 , 即select * from 别名;
Where子句(直接从磁盘获取数据时就进行判断的条件)
Group by(意义是为了统计数据)
注意:分组会自动排序,他会根据group by 字段 中的字段 进行升序排序!
Select * from 表名 group by 字段1, 字段2.
–先根据字段1排序,然后在根据字段2排序!
Group_concat(字段名称)
举例: SELECT GROUP_CONCAT(`name`) FROM my_primary GROUP BY sex;
所有性别为男的放在一组,名字以逗号分开;女的也是!
回溯统计
多字段分组统计
按照班级,性别排序
(1)、先按照班级,然后性别,成为第一组
(2)、统计一班的女生,然后是男生,没有男生,所以不统计男生的,所以统计为全女生
(3)、统计二班的女生,然后统计二班的男生,然后统计二班的总人数
。。。。。。。
(end)最后统计所有班级的所有人数
Having 子句
与where子句一样,也是进行条件判断
1、
因为where是在磁盘读出数据到内存时就判断了,而having是在内存中才进行处理的。所以,统计的话,那必须是数据都读取出来了,都在内存了,所以此时可以用统计函数了。
Select 字段 as 别名 from 表名 group by 字段2 having 别名 = ‘值’
举例:SELECT `name`, `sex` AS '性别' FROM my_primary GROUP BY sex HAVING 性别='男'
Order by 子句
多字段排序: Order by 字段1 [desc / asc], 字段2 [desc / asc]
Limit子句
1. 限制长度(数据量)
Select * from 表 limit 3;
2. 限制起始位置,数量 : limit x,y
Select * from 表 limit 2,5 --一般用于分页