分页查询,二级条件
分页查询:
分页查询是MySQL特有的,一般其他数据库是没有的。分页查询可以从表里取一个范围的行,例如0到50行的的数据,30到100行的数据。
分页查询的关键字是LIMIT,写在查询语句的最后面。
SELECT * FROM student5 LIMIT 第几行,到第几行;
代码示例:
运行结果:
也可以一次性取好几行出来:
因为没有12行所以只取到第7行。
分页查询还可以加条件,只需要把LIMIT写在WHERE后面:
运行结果:
分页查询同时需要排序时,LIMIT需要写在排序关键字后面。
排序分页查询代码示例:
运行结果:
分组排序分页查询代码示例:
运行结果:
二级条件:
二级条件就是在前面的语句运行完后再判断一次,二级条件关键字是HAVING,二级条件需要写在WHERE和分组查询语句的后面。
代码示例:
运行结果:
有WHERE条件的二级条件代码示例:
运行结果:
IN:
In是用来判断多个值的,平时的WHERE只能判断单个值,使用in就能同时判断多个值。
代码示例:
上面这句代码的意思是符合IN括号里面的行都拿出来
运行结果:
NOT IN:
NOT IN就是排除在括号内的值,把除了括号内的值都拿出来。
代码示例:
运行结果:
ALL:
ALL是需要满足括号内的所有内容,但是mysql有些版本并不能使用。
代码示例:
ANY:
ANY则是满足括号内的任意一个的拿出来,和ALL一样有些版本并不能使用。
代码示例:
多表联合查询:
多表联合查询是通过UNION和UNION ALL关键字将两个表联合在一起,起到同时查询两个表的效果。
UNION:是把表里重复的都去掉,不显示重复的行。
代码示例:
运行结果:
UNION ALL:则是不去掉重复的,能显示所以重复的行。
代码示例:
运行结果:
表分区:
表分区就是将一张表分成多个区,以前低版本的mysql不支持表分区的时候只能创建多个表来实现分区的效果,而且多个表操作起来不如一个表分多个区方便。
表分区是mysql 5.1 以上版本才支持的,分表和分区主要是为了提升mysql的性能,在高并发状态下有良好的表现。在百万级千万级数据量的时候表分区的好处就能体现出来了。
Mysql支持四种分区:范围分区,hash分区,列表分区,子分区。
范围分区:
范围分区就是某个范围一个分区,例如0-1000一个分区,1000-2000一个分区,2000,3000一个分区,以此类推,但是主要注意的是要创建最后一个名为maxvalue的分区,这个分区是用来存储剩余的数据的。表分区的关键字是:PARTITION,范围分区的关键字则是:RANGE。
范围分区示意图:
代码示例: